要建立基于椭圆曲线的密码体制,需要有类似因子分解两个素数之积或者求离散对数这样的困难问题。

如果对于方程【密码学原理】椭圆曲线密码学,其中【密码学原理】椭圆曲线密码学,对给定的【密码学原理】椭圆曲线密码学【密码学原理】椭圆曲线密码学计算【密码学原理】椭圆曲线密码学是容易的,但是对给定的【密码学原理】椭圆曲线密码学【密码学原理】椭圆曲线密码学计算【密码学原理】椭圆曲线密码学是困难的,我们认为这就是椭圆曲线的离散对数问题。

用椭圆曲线密码实现Diffie-Hellman**交换

椭圆曲线的方程为【密码学原理】椭圆曲线密码学或者【密码学原理】椭圆曲线密码学,选择大整数【密码学原理】椭圆曲线密码学和参数【密码学原理】椭圆曲线密码学,其中【密码学原理】椭圆曲线密码学为素数【密码学原理】椭圆曲线密码学,或者形为【密码学原理】椭圆曲线密码学的整数。椭圆群【密码学原理】椭圆曲线密码学,在【密码学原理】椭圆曲线密码学中挑选基点【密码学原理】椭圆曲线密码学【密码学原理】椭圆曲线密码学的阶为一个非常大的数【密码学原理】椭圆曲线密码学,点【密码学原理】椭圆曲线密码学的阶【密码学原理】椭圆曲线密码学使得【密码学原理】椭圆曲线密码学成立的最小正整数。

Alice和Bob之间完成**交换的过程如图所示

【密码学原理】椭圆曲线密码学

要**这种体制,攻击者必须由【密码学原理】椭圆曲线密码学【密码学原理】椭圆曲线密码学算出【密码学原理】椭圆曲线密码学,但这个是困难的。

这里的**是一对数字。

椭圆曲线加密和解密

首先将明文【密码学原理】椭圆曲线密码学编码为形如【密码学原理】椭圆曲线密码学的点【密码学原理】椭圆曲线密码学,并对点【密码学原理】椭圆曲线密码学加密和解密。

Alice选择一个私钥【密码学原理】椭圆曲线密码学,产生公钥【密码学原理】椭圆曲线密码学

Alice将【密码学原理】椭圆曲线密码学加密后发送给Bob,A随机选择一个正整数【密码学原理】椭圆曲线密码学,产生密文【密码学原理】椭圆曲线密码学【密码学原理】椭圆曲线密码学

Bob对密文解密,需要用第二个点减去第一个点与Bob的私钥之积:

【密码学原理】椭圆曲线密码学

Alice通过将【密码学原理】椭圆曲线密码学【密码学原理】椭圆曲线密码学相加来伪装消息【密码学原理】椭圆曲线密码学,只有ALice知道【密码学原理】椭圆曲线密码学所以除了Alice其他人不能伪装【密码学原理】椭圆曲线密码学,但是在伪装后的消息中包含了线索,所以在已知私钥【密码学原理】椭圆曲线密码学的时候可以除去伪装。

要**这种体制,攻击者必须由【密码学原理】椭圆曲线密码学【密码学原理】椭圆曲线密码学算出【密码学原理】椭圆曲线密码学,但这个是困难的。

【密码学原理】椭圆曲线密码学

相关文章: