数据加密原理与实现方法
2010-02-07 22:31
411 查看
12.1 数据加密原理与实现方法
无论是网络传输中使用的安全传输协议,还是安全手段或安全措施,它们都需要使用加密算法和相应的解密算法。不了解与此相关的加密原理和算法,就很难深刻地认识各种安全传输协议,以及实现网络安全所采用的数字凭证、数字签名等技术,所以我们在本节集中介绍一下。
12.1.1 基本概念
加密方法属于计算机密码学范畴。长久以来,计算机密码学作为一门研究计算机数据加密、解密及其变换的艰深的学科,鲜为普通用户所了解。过去只有间谍及军事人员对加密技术感兴趣,并投入了大量人力、物力和财力进行秘密研究。直到最近十几年,随着计算机网络及通信技术的民用化发展,尤其是商业和金融事务的介入,密码学的研究才得到了前所未有的广泛重视。密码学涉及到很多高深的数学理论,很难在一节内容中进行比较全面的论述。这里我们仅介绍一些基础知识,让读者了解网络信息加密及数字签名、数字凭证的实现原理,并对常用加密方法的优缺点有一些基本认识。
所谓加密,就是把数据信息即明文转换为不可辨识的形式即密文的过程,目的是使不应了解该数据信息的人不能够知道和识别。将密文转变为明文的过程就是解密。加密和解密过程形成加密系统,明文与密文统称为报文。任何加密系统,不论形式如何复杂,实现的算法如何不同,但其基本组成部分是相同的,通常都包括如下4个部分:
(1) 需要加密的报文,也称为明文;
(2) 加密以后形成的报文,也称为密文;
(3) 加密、解密的装置或算法;
(4) 用于加密和解密的钥匙,称为密钥。密钥可以是数字、词汇或者语句。
报文加密后,发送方就要将密文通过通信渠道传输给接收方。传输过程中,即密文在通信渠道传输过程中是不安全的,可能被非法用户即第三方截取和窃听,但由于是密文,只要第三方没有密钥,只能得到一些无法理解其真实意义的密文信息,从而达到保密的目的。整个过程如图12.1所示。
图12.1 加密与解密过程
长久以来,人们发明了各种各样的加密方法,为便于研究,通常把这些方法分为传统加密方法和现代加密方法两大类。前者的共同特点是采用单钥技术,即加密和解密过程中使用同一密钥,所以它也称为对称式加密方法;而后者的共同特点是采用双钥技术,也就是加密和解密过程中使用两个不同的密钥,它也称为非对称式加密方法。下面就简单介绍一下这些加密方法。
12.1.2 基于单钥技术的传统加密方法
这类方法主要包括代码加密法、替换加密法、变位加密法和一次性密码簿加密法等。
(1) 代码加密法。通信双方使用预先设定的一组代码表达特定的意义,而实现的一种最简单的加密方法。代码可以是日常词汇、专用名词,也可以是某些特殊用语。例如:
密文:姥姥家的黄狗三天后下崽。
明文:县城鬼子三天后出城扫荡。
这种方法简单好用,但通常一次只能传送一组预先约定的信息,而且重复使用时是不安全的,因为那样的话窃密者会逐渐明白代码含义。
(2) 替换加密法。这种方法是制定一种规则,将明文中的每个字母或每组字母替换成另一个或一组字母。例如,下面的这组字母对应关系就构成了一个替换加密器:
明文字母:A B C D E F……
密文字母:K U P S W B……
虽然说替换加密法比代码加密法应用的范围要广,但使用得多了,窃密者就可以从多次搜集的密文中发现其中的规律,破解加密方法。
(3) 变位加密法。与前两种加密方法不同,变位加密法不隐藏原来明文的字符,而是将字符重新排序。比如,加密方首先选择一个用数字表示的密钥,写成一行,然后把明文逐行写在数字下。按照密钥中数字指示的顺序,将原文重新抄写,就形成密文。例如:
密钥:6835490271
明文:小赵拿走黑皮包交给李
密文:包李交拿黑走小给赵皮
(4) 一次性密码簿加密法。这种方法要先制定出一个密码薄,该薄每一页都是不同的代码表。加密时,使用一页上的代码加密一些词,用后撕掉或烧毁该页;然后再用另一页上的代码加密另一些词,直到全部的明文都加密成为密文。破译密文的唯一办法就是获得一份相同的密码簿。
计算机出现以后,密码簿就无需使用纸张而使用计算机和一系列数字来制作。加密时,根据密码簿里的数字对报文中的字母进行移位操作或进行按位的异或计算,以加密报文。解密时,接收方需要根据持有的密码簿,将密文的字母反向移位,或再次作异或计算,以求出明文。
数论中的“异或”规则是这样的:1^1=0,0^0=0;1^0=1,0^1=1。下面就是一个按位进行异或计算的加密和解密实例:
加密过程中明文与密码按位异或计算,求出密文:
明文:101101011011
密码:011010101001
密文:110111110010
解密过程中密文与密码按位异或计算,求出明文:
密文:110111110010
密码:011010101001
无论是网络传输中使用的安全传输协议,还是安全手段或安全措施,它们都需要使用加密算法和相应的解密算法。不了解与此相关的加密原理和算法,就很难深刻地认识各种安全传输协议,以及实现网络安全所采用的数字凭证、数字签名等技术,所以我们在本节集中介绍一下。
12.1.1 基本概念
加密方法属于计算机密码学范畴。长久以来,计算机密码学作为一门研究计算机数据加密、解密及其变换的艰深的学科,鲜为普通用户所了解。过去只有间谍及军事人员对加密技术感兴趣,并投入了大量人力、物力和财力进行秘密研究。直到最近十几年,随着计算机网络及通信技术的民用化发展,尤其是商业和金融事务的介入,密码学的研究才得到了前所未有的广泛重视。密码学涉及到很多高深的数学理论,很难在一节内容中进行比较全面的论述。这里我们仅介绍一些基础知识,让读者了解网络信息加密及数字签名、数字凭证的实现原理,并对常用加密方法的优缺点有一些基本认识。
所谓加密,就是把数据信息即明文转换为不可辨识的形式即密文的过程,目的是使不应了解该数据信息的人不能够知道和识别。将密文转变为明文的过程就是解密。加密和解密过程形成加密系统,明文与密文统称为报文。任何加密系统,不论形式如何复杂,实现的算法如何不同,但其基本组成部分是相同的,通常都包括如下4个部分:
(1) 需要加密的报文,也称为明文;
(2) 加密以后形成的报文,也称为密文;
(3) 加密、解密的装置或算法;
(4) 用于加密和解密的钥匙,称为密钥。密钥可以是数字、词汇或者语句。
报文加密后,发送方就要将密文通过通信渠道传输给接收方。传输过程中,即密文在通信渠道传输过程中是不安全的,可能被非法用户即第三方截取和窃听,但由于是密文,只要第三方没有密钥,只能得到一些无法理解其真实意义的密文信息,从而达到保密的目的。整个过程如图12.1所示。
图12.1 加密与解密过程
长久以来,人们发明了各种各样的加密方法,为便于研究,通常把这些方法分为传统加密方法和现代加密方法两大类。前者的共同特点是采用单钥技术,即加密和解密过程中使用同一密钥,所以它也称为对称式加密方法;而后者的共同特点是采用双钥技术,也就是加密和解密过程中使用两个不同的密钥,它也称为非对称式加密方法。下面就简单介绍一下这些加密方法。
12.1.2 基于单钥技术的传统加密方法
这类方法主要包括代码加密法、替换加密法、变位加密法和一次性密码簿加密法等。
(1) 代码加密法。通信双方使用预先设定的一组代码表达特定的意义,而实现的一种最简单的加密方法。代码可以是日常词汇、专用名词,也可以是某些特殊用语。例如:
密文:姥姥家的黄狗三天后下崽。
明文:县城鬼子三天后出城扫荡。
这种方法简单好用,但通常一次只能传送一组预先约定的信息,而且重复使用时是不安全的,因为那样的话窃密者会逐渐明白代码含义。
(2) 替换加密法。这种方法是制定一种规则,将明文中的每个字母或每组字母替换成另一个或一组字母。例如,下面的这组字母对应关系就构成了一个替换加密器:
明文字母:A B C D E F……
密文字母:K U P S W B……
虽然说替换加密法比代码加密法应用的范围要广,但使用得多了,窃密者就可以从多次搜集的密文中发现其中的规律,破解加密方法。
(3) 变位加密法。与前两种加密方法不同,变位加密法不隐藏原来明文的字符,而是将字符重新排序。比如,加密方首先选择一个用数字表示的密钥,写成一行,然后把明文逐行写在数字下。按照密钥中数字指示的顺序,将原文重新抄写,就形成密文。例如:
密钥:6835490271
明文:小赵拿走黑皮包交给李
密文:包李交拿黑走小给赵皮
(4) 一次性密码簿加密法。这种方法要先制定出一个密码薄,该薄每一页都是不同的代码表。加密时,使用一页上的代码加密一些词,用后撕掉或烧毁该页;然后再用另一页上的代码加密另一些词,直到全部的明文都加密成为密文。破译密文的唯一办法就是获得一份相同的密码簿。
计算机出现以后,密码簿就无需使用纸张而使用计算机和一系列数字来制作。加密时,根据密码簿里的数字对报文中的字母进行移位操作或进行按位的异或计算,以加密报文。解密时,接收方需要根据持有的密码簿,将密文的字母反向移位,或再次作异或计算,以求出明文。
数论中的“异或”规则是这样的:1^1=0,0^0=0;1^0=1,0^1=1。下面就是一个按位进行异或计算的加密和解密实例:
加密过程中明文与密码按位异或计算,求出密文:
明文:101101011011
密码:011010101001
密文:110111110010
解密过程中密文与密码按位异或计算,求出明文:
密文:110111110010
密码:011010101001
相关文章推荐
- 数据加密原理与实现方法
- [转] unix/linux下线程私有数据实现原理及使用方法
- Vue数据双向绑定原理及简单实现方法
- C# 实现 数据加密、解密方法
- unix/linux下线程私有数据实现原理及使用方法
- Vue实现双向绑定的原理以及响应式数据的方法
- .Net 加密原理,方法体加密信息对应关系的实现(一)
- unix/linux下线程私有数据实现原理及使用方法
- 依据HTTPS中TLS/SSL加密原理衍生的数据加密实现
- unix/linux下线程私有数据实现原理及使用方法
- Java数据结构之双端链表原理与实现方法
- unix/linux下线程私有数据实现原理及使用方法
- ASP.NET中重要数据加密方法及实现
- unix/linux下线程私有数据实现原理及使用方法
- Android数据加密之异或加密算法的实现方法
- 中巨伟业推出加密芯片SMEC98SP实现数据加密的方法
- [置顶] PCA原理分析和Matlab实现方法(三)
- C#实现Excel表数据导入Sql Server数据库中的方法
- join方法的实现原理
- .net实现oracle数据库中获取新插入数据的id的方法