刘 畅,王 晋,田 里,王 捷,叶净宇,秦 帆,周雨阳
(1. 国网湖北省电力有限公司电力科学研究院 能源互联网技术中心, 武汉 430077;2. 数字广西集团政企事业部, 南宁 530219;3.重庆大学 大数据与软件学院,重庆,400044;4. 电子科技大学计算机科学与工程学院, 成都 611731)
密钥协商是在不安全信道上建立会话密钥的一种重要方式。Diffie和Hellman[1]基于离散对数困难问题,为密钥分发系统(PKDS, public key distribution system)设计了两方密钥协商协议(DH协议)。该协议在公网上提供了会话密钥服务,防止来自被动攻击者的消息泄露,但不能抵抗来自主动攻击者的扰乱、删除消息等行为:如中间人攻击(MITM,man-in-the-middle)。为了抵抗中间人攻击,Matsumoto等[2]基于DH协议设计了3个密钥协商协议:MTI/A0,MTU/B0,MTI/C0。这些协议能够为通信双方建立双方的认证会话密钥,且不利用签名就能抵抗主动攻击。然而,如果一个长期密钥泄露,攻击者就能计算出两方的会话密钥。Kunz-Jacques和Pointcheval[3]提出了2个新的概念:认证密钥协商(AKA, authenticated key agreement)和带密钥确认的认证密钥协商(AKAC, AKA with key confirmation)。AKA保证只有特定的参与者能够计算出该次会话密钥。AKAC在AKA的基础上,确认了通信实体都获得该次会话密钥。Law等[4]设计了一个两方的AKA协议(MQV协议),同时利用消息认证码(MAC, message authentication code)技术设计了一个三方的AKAC协议。该协议实现了已知密钥安全、前向安全、密钥控制。Krawczyk[5]指出这些协议在CK模型[6]下是不安全的,并且在MQV协议的基础上提出了HMQV协议。为了增强安全模型中攻击者的能力,LaMacchina等[7]在CK模型的基础上提出了eCK模型,允许敌手对临时私钥进行询问。目前,eCK模型成为了AKA协议的主流安全证明模型。……