传统基于公钥基础设施的密钥协商算法在支持完美前向保密时,需要频繁的密钥协商,且协商步骤复杂,还使用了耗时的非对称密钥算法,性能消耗严重,不适用于资源有限的嵌入式设备中。针对以上问题,本文优化了传统公钥基础设施密钥协商方案,密钥信息不需要频繁通过网络交换,而是双方在本地动态生成密钥,保证了每次加密密钥不同,支持了完美前向保密的特性。实验结果表明,优化后的密钥协商方案性能相比于基于传统公钥基础设施的密钥协商方案显著提升。
在密码学中密钥(key)本质是一串数字序列,是加解密运算参数,是管理秘密信息的钥匙,在明文转化为密文或是密文转化为明文时需要输入对应的密钥才能完成运算。密钥在密码学领域中占着很重要的地位,密钥在密码系统中需要严格的保管,一旦密钥泄露可能会造成严重的数据泄露事件。1883 年Kerckhoffs 提出了柯克霍夫原则(Kerckhoffs’ Principle) [1], 是当今密码学领域中基本原则之一, 意思是各种密码算法应该是允许向外公开的,不能影响数据安全性,只要是用其加密的密钥没有发生泄露,密文信息不应该被破解。
在数据传输过程中双方需要保证加密密钥一致,才能计算出正确的加解密结果,因此需要进行密钥协商,密钥协商指的是需要通信的双方在公开的网络信道中通过数据交换得到相同加密密钥的过程。在密钥协商中支持完美前向保密(Perfect Forward Secrecy, PFS) [2]特性,对密钥的安全性保护具有重要的意义,这意味着当前密钥如果发生泄露并不会影响之前的密钥安全性,保证了之前数据的安全。PFS 概念在IEEE 1363-2000 标准里加入到多种密钥共享协议中。在2014 年谷歌安全部门和其它安全公司发现了openssl 标准库中存在安全漏洞,命名为“心血漏洞”,不支持前向保密的网络站点存在严重的数据泄露风险,此漏洞的提出影响了中国几万台服务器,PFS 受到了越来越多人的重视,多家公司对PFS 提供了支持,Google 在Gmail、Google Docs 和加密搜索服务中提供了PFS,Twitter 也为用户支持了PFS,当前在所有使用HTTPS 的站点中,80%以上都一定程度上支持了PFS,可见对PFS 的支持有着重要的意义。
针对传统基于公钥体系设施(Public Key Infrastructure, PKI)密钥协商方案在支持PFS 时的性能较低, 不适用于资源受限的嵌入式设备的问题,对传统PKI 密钥协商方案进行了优化,密钥信息不需要频繁通过网络交换,而是同时在本地动态生成密钥,避免使用了耗时的非对称算法,保证了每次加密密钥不同, 支持了PFS 特性,最后通过实验测试,表明本方案相比于传统PKI 密钥协商方案显著提升。