首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Tink混合参数

Google Tink混合参数
EN

Stack Overflow用户
提问于 2021-01-21 05:59:26
回答 1查看 212关注 0票数 0

Google Tink支持“混合加密”--一种用非对称密钥加密对称密钥、用对称密钥加密明文并将两个密文捆绑为一条消息的方便方法。

但是,它似乎基本上支持两组参数组合:

代码语言:javascript
复制
EciesAeadHkdfPrivateKeyManager.eciesP256HkdfHmacSha256Aes128GcmTemplate();
EciesAeadHkdfPrivateKeyManager.eciesP256HkdfHmacSha256Aes128CtrHmacSha256Template();

在内部,这些映射到。

代码语言:javascript
复制
  public static final KeyTemplate eciesP256HkdfHmacSha256Aes128GcmTemplate() {
    return createKeyTemplate(
        EllipticCurveType.NIST_P256,
        HashType.SHA256,
        EcPointFormat.UNCOMPRESSED,
        AesGcmKeyManager.aes128GcmTemplate(),
        KeyTemplate.OutputPrefixType.TINK,
        EMPTY_SALT);
  }

AesGcmKeyManager.aes128GcmTemplate()交换为AesGcmKeyManager.aes256GcmTemplate()似乎非常简单,但createKeyTemplate是私有的,并且使用包-私有方法,EciesAeadHkdfPrivateKeyManager是最终的,总的来说,它似乎是为了防止我们干扰这些参数。这有什么原因吗?我是应该从从Tink源代码中获取的代码中重新构建我自己的修改版本,或者仅仅使用反射绕过private,还是存在隐藏的非正交性来绊倒我,使结果不安全?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-22 06:57:20

创建者将“难以误用”作为设计目标,特别是接口“安全保证”的概念。(https://github.com/google/tink/blob/master/docs/SECURITY-USABILITY.md)

“例如,如果底层加密模式要求非does,如果重用nonces,则Tink不允许用户传递非does。”

在本例中,我可以看到这是如何应用的,但是有一个不推荐的类(com.google.crypto.tink.hybrid.HybridKeyTemplates)执行您所描述的操作。它有一个公共方法createEciesAeadHkdfKeyTemplate,它接受所有内部参数(src/src/main/java/com/google/crypto/tink/hybrid/HybridKeyTemplates.java#L127)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65821910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档