分组密码加密 一、实习目的 1.理解对称加密算法的原理,熟悉常用的对称加密算法:DES、TripleDES、Blowfish; 2.以 DES 加密算法为例,掌握分组加密算法加、解密过程的实现
二、实习内容 1.[基本要求] 以 DES/DESede 为例,利用 java 中的相关类实现对指定字符串的加、解密
2.[实现提示] (1) 可以利用 java 中的 KeyGenerator 类创建对称秘钥,利用工厂类 KeyGenerator 的静态方法 getInstance()获得 KeyGenerator()类对象; (2) 方法 getInstance()的参数为字符串类型,指定加密算法的名称如:Blowfish、DES、DESede、HmacMD5 或 HmacSHA1 等; (3) 利用工厂类 Cipher 的对象可以创建密码器
同样的,getInstance()的参数为字符串类型,指定加密算法的名称
三、算法分析和流程图 DES 算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是 1972 年美国 IBM 公司研制的对称密码体制加密算法
其密钥长度为 56 位,明文按 64 位进行分组,将分组后的明文组和 56 位的密钥按位替代或交换的方法形成密文组的加密方法
DES 加密算法特点:分组比较短、密钥太短、密码生命周期短、运算速度较慢
DES 工作的基本原理是,其入口参数有三个:key、data、mode
key 为加密解密使用的密钥,data 为加密解密的数据,mode 为其工作模式
当模式为加密模式时,明文按照 64 位进行分组,形成明文组,key 用于对数据加密,当模式为解密模式时,key 用于对数据解密
Encry ptionDecrtptionDES 密钥 DES 密钥明文密文明文 四、测试数据和预期结果 1 按照规定,密钥输入移位的数