要建立基于椭圆曲线的密码体制,需要有类似因子分解两个素数之积或者求离散对数这样的困难问题。
如果对于方程,其中,对给定的和计算是容易的,但是对给定的和计算是困难的,我们认为这就是椭圆曲线的离散对数问题。
用椭圆曲线密码实现Diffie-Hellman密钥交换
椭圆曲线的方程为或者,选择大整数和参数,其中为素数,或者形为的整数。椭圆群,在中挑选基点,的阶为一个非常大的数,点的阶使得成立的最小正整数。
Alice和Bob之间完成密钥交换的过程如图所示
要破解这种体制,攻击者必须由和算出,但这个是困难的。
这里的密钥是一对数字。
椭圆曲线加密和解密
首先将明文编码为形如的点,并对点加密和解密。
Alice选择一个私钥,产生公钥
Alice将加密后发送给Bob,A随机选择一个正整数,产生密文:
Bob对密文解密,需要用第二个点减去第一个点与Bob的私钥之积:
Alice通过将和相加来伪装消息,只有ALice知道所以除了Alice其他人不能伪装,但是在伪装后的消息中包含了线索,所以在已知私钥的时候可以除去伪装。
要破解这种体制,攻击者必须由和算出,但这个是困难的。