java加密与解密艺术阅读摘要(一)

来源:互联网 发布:手机网络被劫持怎么办 编辑:程序博客网 时间:2024/06/08 07:57

一、安全体系和加密机制

1.OSI安全体系模型:
物理层
数据链路层

网络层

传输层

会话层
应用层

2.TCP/IP安全体系模型:
网络接口层——通常指链路层的安全,可以通过加密方式保证数据不被窃听,通常依靠物理层加密实现,一般在通信的链路两端加设加密机,对传输的电器符号进行位流加密。

网络层——网络层是负责数据包的路由选择,确保数据能安全到达制定的目的地,通常依靠路由器的硬件来提高安全性。

传输层——解决端到端的数据传输问题,传输层提供TCP和UDP两种服务,相应的协议是SSL–>TLS–>WTLS

应用层——应用层是和应用最为紧密的,负责应用交互,以实现不同系统之间的相互通信,完成各种业务处理,提高那个相应服务。HTTPS=SSL/TLS+HTTP

二、密码学

加密算法:单向加密算法,对称加密算法,非对称加密算法。

单向加密算法:是数据完整性验证的算法。MD5,SHA算法

对称加密算法:是数据存储加密的常用算法。DES算法,AES算法,Blowfish算法

非对称加密算法:是数据传输加密的常用算法。RSA算法,DSA算法,DH算法

对称算法也可以用作数据传输加密,但非对称加密算法的密钥管理方面更具备优势。相对于对称加密算法来说,非对称加密算法安全级别更高,但是在时间效率上远远不如对称加密算法。

以密码学为基础的各种安全技术相继出现,如HTTPS协议和一系列的“数字技术”(数字摘要,数字信封,数字签名,数字证书等),这些构成了认证技术的基础。有了相应的算法,我们也需

要载体。那么,数字证书作为一种载体,可以用于数字加密解密,数字签名认证,自身有效性认证,尤其是当数字证书结合HTTPS协议应用于电子商务时,极大地提高了网络安全通信。

密码学:密码编码学和密码分析学

—–对称加密—–

古典密码:最核心和常用的技巧是移位和替代,这是对称加密算法最常用的方法。手工加密阶段

对称密码体制:一种是对明文的单个位(或字节)进行运算,称为流密码,也称为序列密码。另一种是把明文信息划分成不同的组(或块)结构,分别对组(或块)进行加密或解密,称为分组密码。

流密码:军事外交部门使用最为广泛的对称密码体制。同时,它也是手机应用平台最常用的加密手段。实现较为简单。将明文按字符(字节)逐位进行加密,解密为逆向逐为进行。加密和解密

可以是简单的位运算,如模n运算。明文加密后的密文几乎和明文保持同样的长度。

(1)同步流密码

(2)自同步流密码

使用较多的是自同步流密码,常用算法RC4和SEAL

流密码的安全性依赖于密钥生成器所产生的密钥流序列的特征,关键在于密钥生成器的设计以及信息收发两端密钥流产生的同步技术。

分组密码,多应用于网络加密,是对称机密体制中发展最为完善的密码体制。对固定长度的一组明文进行加密,这个固定长度称为分组长度。分组长度和分组算法的安全性成正比,其取值范围

实际取决于应用场景。为了保证分组算法的安全性,分组长度越长越好,越长则越难解析;为了保证分组密码的实用性,分组长度越短越好,越短则越利于操作和运算。权衡分组算法的安全性

和实用性,一般设置为56位。但随着密码学的发展,分组长度56位的分组密码已经不能保证算法的安全性。目前,多为128位的分组长度。

将明文分成若干个区块,若最后一个不足一个区块的大小,我们称之为短块,短块的处理方式有填充法,流密码加密法,密文挪用技术。

1980年,DES算法工作模式被标准化,加密算法应用的复杂性,有的强调效率,有的强调安全,有的强调容错性。根据加密时每个加密区块的关联方式来区分:

(1)电子记事本模式(ECB)

这是最基本、最易理解的工作模式,每次加密均产生独立的密文分组,每组的加密结果不会对其它组产生影响,相同的明文加密对应产生相同的密文,无初始化向量。可以认为有一个非常大的

电码本,对任意一个可能的明文分组,电码本中都有一项对应它的密文。适合加密密钥,随机数等短数据。例如安全地传递DES密钥,ECB是最合适的模式。

(2)密文链接模式(CBC)

这是目前最为广泛的工作模式,明文加密前需要与前面的密文进行异或运算后再加密。所以只要初始向量不同,相同明文加密后会产生不同的密文。适用于计算产生检测数据完整性的消息认证

码MAC。

(3)密文反馈模式(CFB)

因错误传播无界,可用于检查明文和密文的篡改。

(4)输出反馈模式(OFB)

加密冗余性较大的数据,例如语言图像。

AES还推荐出了一种新的模式

(1)计数器模式(CTR)

适用于各种加密应用。

——非对称加密—–

在非对称加密系统里,通常采用复合加密场景,即用对称加密对数据进行加密,再采用非对称加密对对称加密的密钥进行加密。通过这种复合式加密来提高效率。

RSA算法是最为常用的非对称加密算法,也是最为常用的数字签名算法。而DSA虽为非对称加密算法,但其不具备数据加密和解密的功能。这里要注意的是:签名

只能用私钥,公钥用于验证。即签名操作必须由私钥完成,验证操作只能由公钥完成。公钥和私钥成对出现,用公钥加密,则私钥解密;用私钥加密,则公钥解密。

发送方可以先对消息进行加密,再对加密后的消息进行签名处理,这样接收方在做验证处理时,如果验证通过,则解密,验证未通过,则抛弃消息。发送发也可以

先对消息进行签名,再对消息进行加密,加密和签名都应该针对于原始消息进行处理。

区别在于,当接收方在收到发送过去的消息和签名时,前者验证是针对于加密后的消息,后者验证是针对于原始消息。那么消息加密是为了保证数据传输过程中避免

被破解,签名是为了确保消息的有效性。所以对于消息本身来说并不需要加密,后者更优。(除非该消息本身就需要加密,可在内层进行对称密码加密,外层先加密,再签名)

数字证书:包括OSI安全模型里五大安全服务中的三个:数据完整性服务,签名认证服务,抗否认性服务

原创粉丝点击