加密相关的一点东东,学习ing

3DES加密介绍
数据加密标准(Data Encryption Standard)是IBM公司1977年为美国政府研制的一种算法。DES是以56位密钥为基础的密码块加密技术(密钥实际上有 64 位,但密钥有 8 位是奇偶校验位。因为奇偶校验位是密钥其它位的函数,它们不提供附加的密码安全性,意味着 DES 密钥实际只有 56 位在起作用)。它的加密过程一般如下:
①一次性把64位明文块打乱置换。
②把64位明文块拆成两个32位块;
③用机密DES密钥把每个32位块打乱位置16次;
④使用初始置换的逆置换。
但在实际应用中,DES的保密性受到了很大的挑战,1999年1月,EFF和分散网络用不到一天的时间,破译了56位的DES加密信息。DES的统治地位受到了严重的影响,为此,美国推出DES的改进版本
三重加密(tripleDataEncryptionStandard)即在使用过程中,收发双方都用三把密钥进行加解密,无疑这种3*56式的加密方法大大提升了密码的安全性(加上奇偶效验位,一共是3*64=192位,即24个字节),按现在的计算机的运算速度,这种破解几乎是不可能的。

相关内容的介绍
ECB模式
在现有的对称加密算法中,主要有4种加密处理模式,这4种加密处理模式一般是针对块加密算法而言的,如DES算法。这4种加密模式罗列如下:

模式中文描述 英文名称(Openssl缩写)
电子密码本模式 Electronic Code Book(ECB)
加密块链模式 Cipher Block Chaining(CBC)
加密反馈模式 Cipher Feedback Mode(CFB)
输出反馈模式 Output Feedback Mode(OFB)

这里只介绍电子密码本模式。
这种模式是最早采用和最简单的模式,它将加密的数据分成若干组,每组的大小跟加密密钥长度相同,然后每组都用相同的密钥进行加密。比如DES算法,一个64位的密钥,如果采用该模式加密,就是将要加密的数据分成每组64位的数据,如果最后一组不够64位,那么就补齐为64位,然后每组数据都采用DES算法的64位密钥进行加密。下图:
_______________________
My name |is Drago|nKing
———————–
上图”My name is DragonKing”这句话每8个字符(64位)作为一块,然后使用一个相同的64位的密钥对每个块进行加密,最后一块不足64位,就补齐后再进行加密。

PKCS7方式
为使我们上面提到的加密工具和技术真正发挥作用,我们必须制定一系列相互关联的、被公众认可、可以互操作的加密标准。这就是我们将要介绍的”公共密钥加密标准”(PKCS)。
PKCS是一系列非正式的厂商标准,它由RSALaboratories、Apple、Digital、Lotus、Microsoft、MIT、NorthernTelecom、Novell、Sun等在1991年联合发表。
PKCS涵盖了RSA加密、Diffie-Hellman密钥交换机制、基于密码的加密、扩展认证机制、加密消息定义、私钥信息定义、证书请求定义等多方面的内容。
现有标准
.PKCS-1RSA加密标准。
.PKCS-2参见注释。
.PKCS-3Diffie-Hellman密钥交换标准。
.PKCS-4参见注释。
.PKCS-5基于密码的加密标准。
.PKCS-6扩展认证定义标准。
.PKCS-7加密消息定义标准。
.PKCS-8私钥信息定义标准。
.PKCS-9选定属性类型。
.PKCS-10证书请求定义标准。
.PKCS-11加密令牌接口标准。
.PKCS-12个人信息交换定义标准。
.PKCS-13椭圆曲率加密标准。
.PKCS-15加密令牌信息格式标准(草案)。
注释PKCS-2及PKCS-4已经结合进PKCS-1标准中,与本书内容相关的包括PKCS-1、PKCS-7、PKCS-10、PKCS-12标准。
PKCS-1描述了使用RSA公钥加密机制加密数据的方法,主要用于为构造数字签名及
PKCS-7中描述的数字信封。PKCS-1同时描述了RSA公钥及私钥的语法定义,其公钥的定义与X.509标准一致。
PKCS-7描述了加密消息定义标准。它定义了多种加密消息的语法,其中包括带与不带数字签名的加密消息。PKCS-7已成为”安全多用途因特网邮件扩展”(SMIME)标准的基石。SMIME主要用于加密基于浏览器的电子邮件。PKCS-7同时也可以用于其他的标准如PKCS-12定义的应用中。
PKCS-10定义了用于请求证书的语法。证书请求包括一个唯一的名字、一个公钥和一组扩展的可选属性,所有这些信息均由证书的请求者进行数字签名保护。新的请求会被送到一个负责将证书请求转为X.509证书的验证机构处。
PKCS-12定义了个人信息的输入、输出语法。个人信息包括个人私钥、认证证书、其他密钥及扩展属性。网络浏览器之类支持PKCS-12的应用程序,可以允许其用户输入或输出一组个人信息。同样,本标准也可以用于从智能卡、智能令牌等设备输入、输出数据。
如果您对PKCS系列标准感兴趣,我们建议您去美国RSADataSecurity,Inc.公司的网站
看一看,具体网址是:http://www.rsa.com/rsalabs/pubs/PKCS/

Base64编码
Base64是MIME邮件中常用的编码方式之一。它的主要思想是将输入的字符串或数据编码成只含有{‘A’-‘Z’, ‘a’-‘z’, ‘0’-‘9’, ‘+’, ‘/’}这64个可打印字符的串,故称为”Base64”。
Base64编码的方法是,将输入数据流每次取6 bit,用此6 bit的值(0-63)作为索引去查表,输出相应字符。这样,每3个字节将编码为4个字符(3×8 → 4×6);不满4个字符的以’=’填充。

Written on September 12, 2005