智能卡技术实验报告(四)

更新时间:2024-01-10 04:22:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

智能卡技术实验报告

学院: 班级: 姓名: 学号:

实验四 Java卡对称加密解密程序

一、实验目的:

建立Java卡3DES算法的加密解密程序,并进行Java卡程序的编译和调测。

二、实验设备:

PC机,智能卡读卡器,Java卡。

三、实验内容:

1. 2. 3. 4.

建立一个JavaCard工程

编写3DES算法的加解密应用代码

使用智能卡模拟器对应用代码进行调试 使用Java卡对应用代码进行编译测试

四、实验报告:

1. 画出一个3DES算法的加密解密小应用程序 2. 画出系统结构图和各部分程序流程图

3. 完成程序的开发,然后再在Java卡上进行验证 系统结构图:

Start Install Get Buffer Y CLA=00&INS=A4? N Y INS=84? N Y INS=82? N Output 6D00 Return encryption GetRandom SetOutgoing AndSend setIncoming AndReceive

内部加密流程:

开始 生成密钥对象 设置3DES密码 生成加密对象 初始化密钥 及加密模式 加密 比较数据与加密结果 返回

五、部分代码

private void encryption(byte[]buffer){

deskey = (DESKey)KeyBuilder.buildKey(KeyBuilder.TYPE_DES,

//设置DES密钥

deskey.setKey(keyData, (short)0);

//生成加密对象

CipherObj = Cipher.getInstance(Cipher.ALG_DES_ECB_ISO9797_M1,

//初始化密钥及加密模式

CipherObj.init(deskey, Cipher.MODE_ENCRYPT);

//加密

CipherObj.doFinal(Random, (short)0, (short)8, buffer,

KeyBuilder.LENGTH_DES3_2KEY,false);

//

false);

(short)13);

ISOException.throwIt(ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED); }

//比较数据域与加密结果

if(Util.arrayCompare(buffer, (short)5, buffer, (short)13,

(short)8)!=0)

六、验证

本次调试仅采用模拟器,设置AID为“|my.des.1” (1)模拟器验证。

(2)JAVA卡验证。

五、实验总结

本文来源:https://www.bwwdw.com/article/v2zo.html

Top