2022年实验现代密码归类 .pdf
《2022年实验现代密码归类 .pdf》由会员分享,可在线阅读,更多相关《2022年实验现代密码归类 .pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、实验室名称:网络工程实验室二、实验项目名称:现代密码算法的实现三、实验学时: 2 学时四、实验原理:现代密码算法的基本原理(DES 算法, AES 算法) ;分组密码就是针对一定大小的明文,做加密解密动作。例如,在DES 系统中,每次加密或解密的分组大小均为 64 位, ,对大于 64 位的明文只要按 64 位一组进行分割,而对于小于 64 位的明文只要在后面补0 即可。五、实验目的:目的:掌握现代对称密码算法(DES 算法)的原理及用法。六、实验内容:a)熟悉 DES 密码算法的基本原理;DES 是典型的现代密码算法,遵循Feistal 结构,经过 IP 置乱、 16 轮不对称变换、 3
2、2位左右互换和 IP 逆置乱,输出密文,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - 其中每一轮的变换如下图所示:在单轮变换中, F 函数 是整个 DES 加密算法的 关键部 分,起终点有 在 s 盒:Li-132 位Ri-132 位Ci-128 位Di-128 位左移一位或两位左移一位或两位置换 /紧缩(置换 选择 2)XOR 4848 扩充 /置换(表 E)代换 /选择(S 盒)32XOR 置换(P)32LiRiCiDi4
3、8 KiF 初始 置换置换 选择 1 64 位明文64 位密 钥第 1 轮置换 选择 2 循环左移K1 第 2 轮置换 选择 2 循环左移K2 第 16 轮置换 选择 2 循环左移K16 32 位互换逆初始 置换64 位密文名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - F 函数一次运算有两个 输入数据 :一个是 32 位的中 间密文 R,另一个是 48位的中间子密钥 k。32 位的中 间密文先经过扩展置换 E,即扩增为 48
4、位,接着和另一组输 入 48位的子密钥 k 做位异或运算,所得的结果,平均分配给 8 个 S盒。每个 S 盒经过非线性 的查表运 算,将 6 位输入变换为 4 位输出,所 以经过S 变换后, 总的输出 数据位 32 位,再经过置换 P 后,得到本轮的 32 位输出。b)分析 DES 算法;根据 Java提供的 DES 函数进行编程。七、实验器材(设备、元器件) :PC微机一台八、实验步骤:a)使用 Java提供的安全算法前必须包含import java.io.*; import java.security.*; import javax.crypto.*; import javax.crypt
5、o.spec.*; b)异常的处理使用密码 时,会遇到 大量的异常,因此,必须对异常进行处理,例如:public static void main(String args) throws Exception . 或者使用 try catch 语句对语句块 进行处理。c)掌握密 钥的构造KeyGenerator kg=KeyGenerator.getInstance(DESede); kg.init(168); SecretKey k=kg.generateKey( ); Java 中 KeyGenerator 类中提供了创建 对称密 钥的方法。Java中的类一名师资料总结 - - -精品资料欢
6、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 般使用 new 操作符通过构造器创建 对象,但 KeyGenerator 类不是这样, 它预定义了一个静态方法 getInstance ( ) ,通过它获得 KeyGenerator 类型的对象。这种类成为工厂类或工厂。方法 getInstance ( )的 参数为字符串类型,指定加密算法的 名称。可以是“ Blowfish ” 、 “ DES”、 “ DESede ”、 “ HmacMD5” 或“ HmacSHA
7、1” 等。这些算法都可以实现加密, 这里我们不关心这些算法的 细节,只要知道其使用上的特点即可实现 程序设计 。该步骤 一般指定密钥的长度。如果该步骤省略 的话,会根据 算法自动使用默 kg.init(168);认的密钥长度。指定长度时,若第一步密钥生成器使用的是“ DES” 算法, 则密钥长度必须是 56位; 若是“ DESede”, 则可以是 112或 168位,其中112 位有效;若是“ AES”,可以是 128, 192 或 256 位; 若是“ Blowfish ”,则可以是 32 至 448 之间可以被 8 整除的数; “ HmacMD5”和“ HmacSHA1” 默认的密钥长度都
8、 是 64 个字节。d)掌握密 钥的保存方法序列化 方式保存FileOutputStream f=new FileOutputStream(key1.dat); ObjectOutputStream b=new ObjectOutputStream(f); b.writeObject(k); 按字节保存byte kb=k.getEncoded( ); FileOutputStream f2=new FileOutputStream(keykb1.dat); f2.write(kb); / 打印密钥编码中的 内容for(int i=0;ikb.length;i+) System.out.prin
9、t(kbi+,); e)掌握使用 Java实现对文 档的加密的 方法名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - - - - - - - 建议在另一个工程中进行文 件的加解密 处理,否者每运行一次 程序就会随机生成一次密 钥。/首先读出密钥:/以对象方式读取 密钥FileInputStream f2=new FileInputStream(key1.dat); ObjectInputStream b=new ObjectInputStream(f2)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年实验现代密码归类 2022 实验 现代 密码 归类
限制150内