加密基础
这部分包括以下内容:
1 采用私有加密算法如何?
2 强弱密码技术的分析
3 ipsec中的加密算法
4 认证的角色
5 ssl,tls和ssh
6 关于加密算法的更多知识
这部分讨论基本的加密技术和涉及的问题,它构成了下面对加密学和vpn完整性讨论的基础。
非常简单的加密算法是打乱了字母表排列的顺序。参看以下范例:
加密算法是按字母升序的顺序进行的,把a改为b,m改为n等。
解密算法是按字母降序的顺序进行的,把b改为a,n改为m等。
参看以下范例:
this is a secret message
对加密者而言,知道这是明文文件。经过上面加密算法处理后,改为t到u, h到i等,组成加密文本:
uijt jt b tfdsfu nfttbhf
这种算法可在希望彼此秘密通讯的各组员间共享。但是,如果一名组员离开了该组,就必须给该组设计一个全新的算法,从而保证了组通讯的安全性。
因此不能把这样的固定算法透漏给除预期接收人之外的任何人。
目前所有的加密算法使用的都是密钥。在用密钥加密的算法里,算法本身可让人了解,但是,没有适当的密钥谁也不可能轻易解开发给其他人的信息。
在上面例子的算法中,密钥是加密和解密过程中字母转动的顺序数。考虑到英语中有26个字母,可用的最大循环是25。可以组合的数目限制就是我们所知的算法密钥空间。
自然,以上算法非常简单,密钥空间很有限制。任何有纸,笔和算法知识的人能够用指定密钥在几分钟内击溃加密信息,方法是测试所有的可能组合直至出现看似正常的文本。
通过测试所有可能组合的方法解开信息,密钥空间越大,攻破所需的时间就更长。
如果所有破译专家使用以上算法进行破译的字母是2个,如字母vq,无从得知是转换一步得到“up”,或是转换两步得到“to”。
有了更多的加密文本,就可以更容易地解决上面这种摸棱两可的情况。两个加密词"vq aqw"在上面指定的情况下可以分别解密成“to you" 和"up zpv"。在此,我们已经了解到正确的顺序数是2。
您不应该用同一个密钥给太多的数据加密。如果可能,应该一次更换一个密钥。
上面情景中指定的字母循环示范很难满足现实情况,但能很清楚地说明加密的基本概念。
目前最佳的加密算法都是全公开的。即:它们的安全性不依靠对设计保密来控制。算法的强度依赖于密钥的安全性。
对于所有实际用途,用这种算法攻破加密信息的方法是,尝试使用所有可能的密钥逐一测试,直至找到正确的解开信息的密钥。这就是所知的强力攻击加密信息。
具有确定确切密钥的能力,意味着必须知道信息解密后期望看到的内容。如果设置自动工具在英文里搜索单词,如果原始信息是用瑞典语写的,就无论如何也找不到正确密钥。考虑到这一点,如果能够猜测到通过vpn连接的数据流类型,就可以更容易地侵入vpn连接。
强力攻击需要的时间取决于已有的密钥空间,在很大程度上更取决于运气。
40位的密钥空间可以形成1,099,511,627,776个独特组合。我们认为这么大的密钥空间足够安全了,但近来先进的计算机技术能够大大加快攻破速度。一个学生通过使用几台教室里配置的标准pc,用指定的足够复杂的加密算法,在一周内就可以攻破这样的密钥。一个庞大的组织或国家,访问多台超型计算机,也有可能在最短的时间内攻破密钥。
密钥长度每增加一个比特,都会使独立的组合数增加一倍。以上面的学生为例,46位的密钥意味着彻底搜索将花费他整整一年的时间,更确切地说就是64周。攻破50位的密钥恐怕要用10年的时间。
以上计算加密强度的测量方法并不精确。如果一种算法不够复杂(即较快),有人能够用同样的时间段尝试更多组合,即需要一个更长的密钥。如果算法更复杂,从保密看,更短的密钥也能够提供同样的保护性。