月度归档: 2014年05月

OpenSSL编程-DES编程详解

一. DES加密原理 DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位(每组的第8位作为奇偶校验位),产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 轮循环,使用异或,置换,代换,移位操作四种基本运算。 二. DES API 1. 基本数据结构 2. 基本宏定义 3. 设置密钥函数 4. DES ECB模式加解密API 5. DES CBC模式加解密 […]

[阅读全文...]

OpenSSL编程-对称加密及DES/3DES简介

一. 对称加密算法 对称加密算法使用一个密钥,对给定的明文进行加密,产生密文与原明文大致相同,同时使用此密钥对所产生密文进行解密。主要分为四种加密模式: 1. 电子密码本模式 Electronic Code Book (ECB),将加密的数据分成若干组,每组大小跟加密密钥长度相同,然后分别对每组都用相同的密钥进行加密。其缺点是明文中存在重复的数据块,产生的密文也会重复,所以只能用于小块数据加密。 2. 加密块链模式 Cipher Block Chaining (CBC),将明文分成固定长度的块,然后将前面一个加密块输出的密文与下一个要加密的明文块进行异或操作,将计算结果再用 […]

[阅读全文...]