首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ECIES:密钥推导函数与对称加密方案

ECIES:密钥推导函数与对称加密方案
EN

Cryptography用户
提问于 2018-01-16 12:38:01
回答 1查看 608关注 0票数 0

我正在使用一个椭圆曲线库,它为我提供了一个共享的秘密,使用我的秘密密钥和外国公钥。不幸的是,在编程语言中没有ECIES。

我想按以下方式实施ECIES。

  1. 将共享秘密用作随机数生成器的种子。
  2. 使用随机数生成器创建xor键
  3. 计算$cipher = message \oplus键$
  4. 使用我的私钥传输$cipher$和$cipher$签名

这种方法正确和安全吗?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2018-01-16 12:52:10

您所描述的是从泛型PRNG创建的流密码。但是,应该使用实际的流密码。PRNG是危险的,因为它们有时会被系统预先播种或重新播种.如果没有强制算法,那么底层实现也可能发生变化。否则:是的,如果正确使用,流密码当然可以用于获取消息的机密性。

在CTR (计数器)模式下的AES是一个相当安全的赌注。

你好像在用加密签名。通常使用签名后加密。加密签名的问题是有人可以重新签署密文,并声称它的所有权。另一个方面是解密后签名丢失。

因此,通常将签名加密用于不对称原语,如ECIES和ECDSA.但是,在您的特定协议中,这可能不是问题;您可能只希望允许来自一个特定的私钥/公钥的签名,并且您可以很好地保护传输中的密文。

一旦建立了密钥并对交换进行了身份验证,您还可以使用AES-GCM或其他经过验证的密码发送消息,提供消息的完整性、真实性,当然还可以提供消息的机密性。

注意,如果要创建传输协议,还有很多工作要做。在适当的地方,加密对可能的攻击向量来说稍微容易一些。如果系统最终是安全的,这取决于系统可能受到的威胁是否被阻止。

因此,我们不能告诉您您的方法是否安全;我们可以判断它是否不安全,不过:)

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

https://crypto.stackexchange.com/questions/54749

复制
相关文章

相似问题

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