在了解了密码学基本的结构后,我们可以发现,单纯的加密与解密并不能保证安全,因为所有的信息可以伪造,且在通信方不值得信赖时,可以抵赖等。下面将逐步随着风险的变化,安全系统的升级过程。

 

混合密码Hybrid Cryptosystem

先来比较总结一下公钥加密与对称加密。

项目 对称加密 公钥加密
密钥关联性 加密与解密使用同一个密钥 加密与解密使用不同的密钥
加密密钥 保密 公开
解密密钥 保密 保密
加密算法 保密/公开 公开
典例 DES\Vernam RSA
密钥配送 必须 不需
密钥个数 n ( n − 1 ) 2 \frac{n(n-1)}{2} 2n(n−1) 2n
安全认证 困难 简单
加密速度 高速 低速
经济效益
暴力解码 复杂 简单

对称加密在保证机密性的前提下仍然可用,但是需要解决密钥配送问题。而公钥加密虽然无密钥配送问题,却存在效率短板且会面临中间者攻击(MITM 攻击)。那么为了提高安保系统的健全性,我们需要的是在一定经济基础下能够尽可能让安全性更高且处理速度更快,混合密码系统便应运而生。

混合密码系统(Hybrid Cryptosystem):利用对称加密的告诉与公钥加密的安全性,两者结合使用的密码系统。本质是对于信息使用高速的对称加密,对于对称加密过程中使用的密钥本身则使用公钥加密技术来传输。
【信息保护论】Ch6. 混合密码概念导入_安全
如图所示,用伪随机数生成器生成一个随机数,将这个随机数当做即将进行的加密通信的密钥,用该临时密钥加密明文,我们将临时密钥用K表示,即 C 1 = E K ( P ) C_1=E_K(P) C1​=EK​(P)。然后我们用接收端、收信人的公钥加密该临时密钥,被加密的临时密钥只有收信人使用其私钥才能解密,即 C 2 = E k p b ( K ) C_2=E_{k_{pb}}(K) C2​=Ekpb​(K).将密文C1C2组合后,传输给对方。该组合信息即便被截获,对于截获者而言,由于没有对应私钥无法解密出临时密钥,也就无法解密出明文。解密过程则反其道而行之,可以只使用临时密钥加密信息后传输,因为临时密钥此阶段后只有双方知道,也可以重复该流程。

可以说,对于一个混合密码系统,其安全性无非体现在三个方面,也就是伪随机数生成器公钥密码对称密码三部分。如果想要提升混合密码系统的强度,也就是提升这三部分各自的强度即可。而提升强度也会面临开销问题,在此问题下,仍然要秉着平衡的原则去设计一个完整的密码系统。密码系统需要木桶理论,需要三方面长度均衡,如果出现明显的短板,就会被针对攻击,如果综合不够强,那么对应的就是定价低廉且使用频率及认可用户少。

  • 伪随机数生成器:生成的临时密钥由于是伪随机,因此总有一定规律可言,真随机数生成器依靠软件无法实现,必须使用硬件来完成,对应的就是高昂的造价。因为有规律,则一定是依照某种规律进行循环,只不过循环足够大,则在一定空间内不会重复,仅此而已,因而如果使用的伪随机数生成器品质不够好,则临时密钥本身有被推测到的可能性。
  • 对称密码:除了加密算法本身的复杂性,任何密码其安全性直接挂钩密码长度,1位的密码在二进制中只有2种可能,十进制只有十种可能,因此要密码的安全性就要提高密码的长度。同时使用恰当的块加密模式也能提高密码安全性,如CTR以及CBC等。也就说,提高公钥密码的安全性有提高密码长度、加密算法复杂度、采用加密模式等方式。
  • 公钥加密:加密算法复杂性以及密码长度的增加都会提高安全性。从长期运营的角度考虑,公钥加密的安全性最好比对称加密的安全性稍强一些才能保证混合密码系统的整体安全。

典例:同态加密(Homomorphic Encryption)
同态加密是指对明文进行环加法和乘法运算再加密,与加密后对密文进行对应的运算,结果一致。因而人们可以委托第三方对数据进行处理而不泄露信息。是可能进行机器学习和深度学习的密码技术。因为机器学习和深度学习可以用加法和乘法表示,所以利用同态加密可以在加密状态下进行机器学习和深度学习的数据分析。

优点:计算机中,所有数据本质上遵循门运算(AND.OR.NOT),加密状态下可以进行这三种运算就意味着可以在加密状态下进行所有运算。加密后的数据再进行运算后形成的数据 复杂度大幅度提高,分析将变得极其困难,对于黑客将是非常大的挑战。

缺点:存在密文扩张的问题,在对称加密中,同态加密可能会导致密文长度扩张一万倍以上,加密速度相当慢。AES 1 μ s 1μs 1μs而RSA 1 m s 1ms 1ms而同态加密需要数十毫秒。密文的乘法运算则需要数百毫秒,根据运算应用场景速度差距会很大,虽然能够针对个别优化,但是其效率是显著短板。

应用的案例1:健康保险企业云数据库,有病人的详细信息。一般的企业内职员可以轻易浏览到这些数据,那么某些高层领导也可能在列,这种情况下就会出现信息泄露的风险。此时如果将数据库进行同态加密,一般职员处理数据时使用的密文状态(增删查改、浏览),只要当确认要调出某一个体用户时才解密到明文,就能减少内部信息的泄露。

应用案例2:医疗手环。运动手环在现代已经很常见,除了最基本的手表功能还增加了很多健康相关的诊断功能,某国外高级医院中,对住院病人会有给其佩戴诊断手环的情况。住院病人的心率血压等数据以及个人信息会被存储在后台数据库,而为了保密隐私,使用同态加密技术将病人信息加密,护士等非直接负责人检索时,检索到的是加密后的运算结果,只有反映到具体责任人查看病人身体情况时,会解密到明文,责任医生可以远程观察病人身体状况并开药诊断。