使用的算法
10.1 选择一个算法
选择算法时的几种替代方案:
1)、选择一个已经被许许多多密码学家验证过的,并且公布的算法
2)、选择一个信誉非常好的密码学算法厂商
3)、选择一个信誉名声非常好,并且能力非常强的咨询师
4)、选择相信政府
5)、选择自己写算法(相信自己的能力很强)
这些选择,最好的就是第一条,这本书中的所有算法都是公开发布,并且经过实践检验的。其他的例如,厂商、咨询师、政府、个人,都是不靠谱的,要么有人为的原因,要么有机器的原因,或多或少的会有一切安全的问题,并且这些问题并没有大量的检验,难以知晓问题在哪。
说到底,算法一般选择的就是公开经过验证的加密算法
10.2 公钥密码对比对称密码
非对称加密和对称加密谁好谁坏的争论由来已久,各执一词。但是实际上,两者是各具优点,各有缺点。
对称加密算法:它最好的地方就是快。加密的数据量可以非常的大,可以成倍于公钥加密。另外它不会受到选择密文攻击。但是就是密钥在传递的过程中,非常的危险,很可能被拦截。
公钥加密算法:他的好处就是密钥保管和海量协议。对于密钥的安全性来说,是毋庸置疑的,但是相对于对称加密就是会非常的慢。
总结,两者都是各有各的好处,并不能放在一起进行比较,如果单论某类算法的优点,这样很显然是不公平。
10.3 加密传输信道
在理论上,加密的过程在OSI通信模型上可以实现。
实际上,却要分层讨论。如果在低层,例如1-2层,此时的加密被称为:链路逐段加密(link-by-link encryption),如果在更高的层上,则可以称为:端加密(end-to-end encryption)
1) 链路逐段加密
物理层是这类加密最好的选择。这一层的加密,是将数据,路线信息,协议信息,等等都进行加密。这种算法影响巨大,因为所有的信息都被加密,密码学家根本不知道任何的信息,这种就叫做:traffic-flow security(敌人不仅仅被拒绝信息,并且还被拒绝信息的来源,信息的多少)。
这种加密,不依靠通信管理科技,密钥管理也是非常的简单,仅仅是一条线路上两个端点需要一个普通的密钥,这两个端点可以自由更改自己线上的密钥。如下如所示:
这个模式的缺点也是显而易见的。1、所有的数据都会被加密,安全新非常强,但是数据量会非常的大, 传输过程会相当的不易。2、因为节点与节点之间有密钥,如果节点之间的密钥被破解了,这样就会显得不安全了。
端加密
这种方式一般将加密设备放在网络层和传输层之间。所以装备必须理解下三层的数据,加密传输层单元,并且发送给底层。
这种方式就是开头一次加密,结尾一次解密。缺点也就是数据的相关信息并没有被加密,一个优秀的密码学家可以通过这些零零散散的相关信息知道更加多得东西。密钥管理也是非常的困难,每一个用户都要保证他们保护好自己的密钥。
10.4 硬件加密对比软件加密
硬件
1)、速度
硬件加密的速度是远远超过软件加密的。一般来说,加密算法是非常的复杂,在通用的处理器上处理,效率会非常的低下。所以如果同样的算法用软件运行,速度一般是比不上硬件加密的算法的。
另外,加密算法非常的占用计算的任务,如果主处理器全都被软件运行占用,那么资源的利用率就会非常的低,将算法转移到一个专用的芯片上,是不是就更加节省资源了呢?
2)、安全
算法运行在一台没有硬件保护的计算机上,那么谁都可以参与修改其中的算法而不被检测到。但是如果有硬件检测,那么这些操作都会被检测出来,按情况阻止。各种不同的硬件,具有不同的保护功能。例如密钥的保护,信息防篡改…
3)、易安装
许多加密应用是不兼容普通的计算机的。例如某个人想要加密电话谈话,传真,数据连接,那么计算机的作用就不是特别明显了。但是硬件加密,可以将硬件直接安装到电话上,传真机上,调制解调器上。安装可谓方便至极。
软件
软件的缺点就是硬件的优点,但是软件的优点也是有的,总结来说就是几个:灵活性,可移植性(portability),使用方便,更新方便。
软件的这些优点,使得其在普通人范围内使用范围非常的广,使用人数非常的多,你只需要加密一个文件,其机密性没有高到某个不能被查看的地步,所以就没有必要去特地买一个硬件来加密这个文件,只需要使用一个加密软件,或者压缩包加密即可,简单有效,且有一定的安全性。
10.5 压缩、编码、加密
压缩和加密一起使用的两个原因:
1、密码分析依赖明文中的冗余利用,压缩可以有效的减少文中的冗余。
2、加密十分的消耗时间,在加密之前先进行压缩可以减少整个进程时间。
记住需要加密前压缩,如果加密算法好,那么明文将不可再被压缩。
10.6 检查加密
怎么侦查一个加密文件?现在流行的加密算法有一个明确的头。可以通过这个头,查看这个文件的类型,是否被压缩,反正能够了解相当多的信息。
10.7 密文中隐藏密文
Alice,Bob两个罪犯,P是明文,D是假明文,C是密文,K是真密钥,K’是假密钥
A加密明文P:
P?K=C
Alice和Bob分享K,Bob就可以解密:
C?K=P
警察强迫他们俩交出密钥,但是他们交出了假的密钥:
K’=C?D
警察解密得到了假的消息:
C?K’=D
这是一次加密,K是随机的,所以K’是假的是不能被证明的。如果Alice和Bob再将D里面的消息弄得比较像回事的话,那直接就不可能察觉他们给的是假的密钥,假的消息。
10.8 破坏信息
磁盘中的文件表面上的删除,不是真的删除,仅仅只是删除了电脑上打开这个文件的入口而已,可以使用相关的软件进行查找,修复,最终找回原本删除的文件。
在电脑中,即使你没有特地主动的保存明文,你的电脑也会自动的做这件事。
所以总结来说,就是如果你想要删除电脑上的文件,你就不得不删除磁盘上的所有文件,或者使用新的文件将所有磁盘重新覆盖