`
runfeel
  • 浏览: 905558 次
文章分类
社区版块
存档分类
最新评论

雷神的微软平台安全宝典---第二章 RSA和AES

 
阅读更多

RSA是一种非对称加密算法,这意味着它需要一个密钥加密数据,另一个不同的密钥解密数据。这种加密算法的计算量不容小视,通常会导致处理器资源紧张,而且使用相同长度的密钥加密和解密数据的速度也比对称加密算法慢。因此人们通常选择的策略是使用AES算法加密文件数据,RSA算法则被用来加密AES算法的密钥:用公有密钥加密AES密钥,用私有密钥解密AES密钥。每当一个用户被加入到拥有加密文件权限的用户列表中时,系统就会生成一个新的AES密钥,然后用每个用户的(RSA)公有密钥对这个AES密钥加密,得到对应这个用户的加密过的AES密钥,只有这个用户可以对这个加密过的AES密钥解密。

之所以采取这种策略,是因为目前RSA加密算法一次能加密的最大数据量受制于密钥长度。1024比特的密钥能够加密大约116字节的数据,这确实不够多,即使是使用2048比特的密钥也只能加密大约245字节的数据。当然,根本原因也正是RSA算法所要求的必须用公有密钥加密的数据才能被对应的私有密钥解密。AES算法则没有最大数据量的限制,AES密钥只用来加密数据分组,任意长度的文件都可以被AES加密算法分组、加密后写入到新的文件中。这种混合使用RSA和AES的模式会导致两种类型的攻击,一种是针对RSA密钥,另一种是针对AES密钥。如果能够破解AES密钥,则加密它的RSA密钥的强度就变得无关紧要,而这正是使用强密钥的原因。下面的例子就是一个256比特的AES密钥,经过2048比特的RSA密钥加密后再用base64编码:

f57O+Lw5e7ZPmrvAmM4j5ykL6vUbjoo8jWMAOXY4uRgtqVJBiKmAjbEzN
C7q21E5deKfjFkDt2sYqYDE6T0DRwUOS1wr1ivXqVVVkvyOS/62cBeLP
Eitl0FoVnGPKbhOfDlujTsp9yw1Z9N2APLwh/Zyzgp8GAK2nZvzBt6oE
Vjtvz1K1GxZYGg4QxZ7AWAIfAU2eXTpoHC/wuYSed3EV62or8pYnFHen
NF94sLdqZcOBmE2tatXhCTUN/mTgaMqZJuuTIPRd+dHVMBeVYDw8v4sD
oPN2DwjDJvSdAnu59rQohnYHEtHTb9ssW8fKVAWN+ZCDIaPC69dKq672
C6q4A==

实际密钥本身要比这个例子小的多,但是你要有正确的认识,简单使用bananadog做为密码生成AES密钥,要比不使用单词密码组合的强密钥更容易被暴力破解。2048比特的RSA密钥本质上是很难破解的,以下就展示了一个用base64编码过的2048比特私有密钥,对应的公有密钥可以用一个C#版本的RSA加密服务平台生成:

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
</EncPrivateKey><KeyHash>8k9pO0ZLN8zNUYkx7xH8zNdqctqXkn/
LV6EQLruN6JY=</KeyHash><KeyNaCl>MuIDM+EhC/21c1rzE6Y3nQ==

对这个密钥暴力破解需要花很长时间,这个时间基本上是个天文数字。即使考虑到硬件发展的“摩尔定律”,分解一个2048比特的RSA密钥仍然被认为是不可能的,可以想象,当这个密钥被破解的时候,我们每个人都可以在宇宙尽头的餐馆拥有一个靠窗的座位(《宇宙尽头的餐馆》是一部科幻小说,《银河系漫游指南》的姊妹篇,行文幽默,推荐阅读)。当然,这只是现在的情况,没有人知道将来会是什么情况。图 2.3 的示意图展示了这种模型,AES只是做为一种对称加密算法被列出,当然也可以配置成其它加密算法,比如椭圆曲线加密算法。我设计并实现了一个针对文件加密的公开平台,是一个免费的windows应用程序,我称之为 Thor’s Godly Privacy (TGP)。

提示:
因为种种原因,我不喜欢Gnu Privacy Guard标准,同样也不喜欢与之对应的商业版的Pretty Good Privacy(PGP),所以我写了TGP。TGP使用了不同的加密数据传递方法和密钥分发方式,关于TGP更多的细节可以访问这个网站:
www.hammerofgod.com/tgp.aspx

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics