天天看点

信息加密

一、什么是加密

自古至今人们一直在寻找各种办法进行信息的保密和身份,比如,将布条缠绕在木棒上,再书写信息;使用长短不同的竹棒表示不同的军事信息;用明矾水写书信,收信者将书信浸湿阅读;藏头诗、对暗号等等。

随着时代的变迁,人们对加密有了更深的理解和探索研究。密码”或“加密系统”用于“加密”数据。对于原始的未加密的数据,我们称之为“明文”,对于加密的结果,我们称之为“密文”,通过称为“解密”的过程,我们把密文恢复成原始的明文。例如:

信息加密

凯撒密码

是运用得替换思想,消息的加密是通过将当前字母替换为在常规字母表中第n个位置之后的那个字母来完成。用密钥“2”加密明文消息:

信息加密

A→D B→E C→F D→G E→H......

替换思想还是存在易于解密的缺陷,所以后来总结出来了理想的加密系统:过去的明文和密文攻击者可以知道,加密和解密的算法对方可以知道,只要密钥不泄露,对方就无法破解新的密文,可以公开除了密钥之外的整个密码系统的一切内容。

信息加密

二、古典加密举例:

培根加密(Baconian Cipher)

是一种替换密码,16 世纪由英国哲学家兰西斯.培根(知识就是力量口号的提出者)创造,每个明文字母被一个由5字符组成的序列替换,最初的加密方式就是由'A'和'B'组成序列替换明文(也可以用别的字母),比如字母'D'替换成"aaabb"。

信息加密

摩斯电码

是一种信号的代码而且它时通时断,这样的信号代码经过不同的排列顺序从而表现出不同的英文字母、数字以及标点符号等。

信息加密
信息加密

根据字母的点数和横数来代表相应的字母

信息加密

当铺密码

通常使用汉字来隐藏信息,专门用来加密数字,不需要密钥,明文信息包含在加密后的密文中。较常见的当铺密码有两种一种是将数字映射到对应笔画的汉字,另外一种是利用汉字的字形特征,当前汉字有多少笔画出头就转化成数字几。例如:

“由人俱乙口一中”和“大中口由人由工”均表示的5201314

键盘密码

利用键盘的特性制作的密码,常见有计算机的键盘和手机的键盘,,加密的方式有坐标法和顺序法。

方式1:按键盘顺序编码A-Z

方式2 :按行列坐标将字母转换为数字,例如Q=11、M=73

方式3:按键盘顺序将字母转换为数字,QWERTY= 123456

       纵观整个20世纪,密码技术在重大的世界性事件中扮演了非常重要的角色。在20世纪后期,密码技术逐渐成为商业上以及业务往来中通信的关键性技术,并且一直到今天仍是如此。第一次世界大战Zimmermann电报事件,第二次世界大战偷袭珍珠港”事件和破解德国恩尼格玛密码机。

       采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。

信息加密

三、对称加密

对称加密算法有DES、DESede、AES、Blowfish,以及RC2和RC4算法,还有其他第三方提供的软件包提供的Bouncy Castle 提供的IDEA算法

这里面DES算是最经典的算法,DESede是DES算法的变种,AES算是DES算法的替代者;

DES算法

1.基于DES算法的消息传递模型

信息加密

2. DES算法实现

Java提供的仅支持56位密匙长度,作为补充Bouncy Castle提供64位的长度支持,再吃基础上配合不同的填充方式用来显著提供系统的安全性。如下:

信息加密

基于口令加密–PBE

PBE算法综合了对称加密算法和消息摘要算法的优势,形成了对称加密算法的一个特例。这个算法是一种口令由用户自己掌管,采用随机数(这里我们叫盐)杂凑多重加密等方式保证数据的安全。PED使用口令代替了密匙。常见的PED算法如:PBEWithMD5AndDES

1.基于PBE算法的消息通信模型

信息加密

2.PBE算法实现

信息加密

具体的实现和上面DES类似,只是注意需要生成盐。

四、公钥密码学与RSA

       公钥密码出现前,几乎所有的密码体制都是基于替换和置换这些初等方法,轮转机和DES是密码学发展的重要标志,但是还是基于替换和置换。

公钥密码学与其前的密码学完全不同。首先,公钥算法是基于数学函数而不是基于替换和置换,更重要的是公钥密码是非对称的,它使用两个独立的密钥,使用两个密钥在消息的保密性、密钥分配和认证领域有着重要的意义。

公钥密码体制的基本原理

公钥加密

信息加密
  1. Alice将明文用Bob的私钥加密传送
  2. 只有用Bob的私钥才能解锁

私钥加密

信息加密
  1. 用Alice的私钥加密明文
  2. 所有人都可以用Alice的公钥进行解密

继续阅读