橢圓曲線迪菲-赫爾曼金鑰交換

来自testwiki
跳转到导航 跳转到搜索

橢圓曲線迪菲-赫爾曼密钥交換Template:Lang-en,縮寫為Template:Lang),是一種匿名的Template:Le(Key-agreement protocol),這是迪菲-赫尔曼密钥交换的變種,採用橢圓曲線密码学來加強性能与安全性。在這個協定下,雙方利用由橢圓曲線密码学建立的公鑰與私鑰對,在一個不安全的通道中,建立起安全的共有加密資料[1][2][3]臨時ECDH(ECDH Ephemeral,ECDHE)能夠提供前向安全性

密鑰建立協議

Template:See also 假设爱丽丝与鲍勃需要建立共享密钥,但他们之间唯一的信道可能被第三方伊夫窃听,此时可以使用椭圆曲线密码学。首先,需要事先提前约定域参数(質数域Fp时为(p,a,b,G,n,h),二元域F2时为(m,f(x),a,b,G,n,h)),它是公开信息,定义了所使用的椭圆曲线;然后,双方准备符合条件的密钥(在区间[1,n1]随机一个整数作为私钥d,并与基点G相乘得到点Q=dG,即公钥),此时爱丽丝的密钥为(dA,QA),鲍勃的密钥为(dB,QB);接着,双方将自己的公钥QAQB发送给对方;

爱丽丝计算点(xk,yk)=dAQB,鲍勃计算点(xk,yk)=dBQA,这就得到了双方的共享秘密xk(即该点的x坐标)。由于dAQB=dAdBG=dBdAG=dBQA,因此双方得到的xk是相等的。在实际应用中,常使用xk和其他相关参数作为一个Template:Link-en的输入,密钥为其输出。

在这个过程中,伊夫知道椭圆曲线的域参数,但爱丽丝只透露了她的公钥QA,伊夫无法获得她的私钥dA,除非伊夫能够解决椭圆曲线上的离散对数问题,这个问题被认为是困难的。同理,鲍勃的私钥也是安全的。若伊夫要计算出双方的共享秘密xk,就需要求解Template:Link-en,而计算离散对数是此問題的已知最优解法,伊夫無法用其他方式直接解出共享秘密。

但是,如果双方使用的随机数生成器存在安全隐患,伊夫就可能预测私钥dAdB。此外,上述的密钥交换是匿名的,双方没有进行身份验证。如果攻击者有能力篡改信息,就能冒充双方的身份。因此,有必要用其他的方式进行身分验证,例如公钥基础设施

量子计算机

如果攻击者拥有大型量子计算机,那么他可以使用秀尔算法解决离散对数问题,从而破解私钥和共享秘密。目前的估算认为:破解256位素数域上的椭圆曲线,需要2330个量子比特与1260亿个托佛利门[4]相比之下,使用秀尔算法破解2048位的RSA则需要4098个量子比特与5.2万亿个托佛利门。因此,椭圆曲线会更先遭到量子计算机的破解。目前还不存在建造如此大型量子计算机的科学技术,因此椭圆曲线密码学至少在未来十年(或更久)依然是安全的。但是密码学家已经积极展开了后量子密码学的研究。其中,Template:Link-en(SIDH)有望取代当前的常规椭圆曲线密钥交换(ECDH)。

註釋

Template:Reflist

Template:密碼學