北邮java智能卡实验报告3des加解密.docx

北邮java智能卡实验报告3des加解密.docx

ID:51894755

大小:1.07 MB

页数:10页

时间:2020-03-18

北邮java智能卡实验报告3des加解密.docx_第1页
北邮java智能卡实验报告3des加解密.docx_第2页
北邮java智能卡实验报告3des加解密.docx_第3页
北邮java智能卡实验报告3des加解密.docx_第4页
北邮java智能卡实验报告3des加解密.docx_第5页
资源描述:

《北邮java智能卡实验报告3des加解密.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、智能卡技术实验报告学院:电子工程学院班级:2011211204姓名:学号:2011210986实验四Java卡对称加密解密程序一、实验目的:建立Java卡3DES算法的加密解密程序,并进行Java卡程序的编译和调测。二、实验设备:PC机,智能卡读卡器,Java卡。三、实验内容:1.建立一个JavaCard工程2.编写3DES算法的加解密应用代码3.使用智能卡模拟器对应用代码进行调试4.使用Java卡对应用代码进行编译测试四、实验报告:1.设计一个3DES算法的加密解密小应用程序2.画出系统结构图

2、和各部分程序流程图3.完成程序的开发,然后再在Java卡上进行验证五、流程图系统结构流程:各部分流程图1)产生随机明文流程图2)3DES加密流程图3)3DES解密流程图六、演示模拟器随机产生8字节的明文:D4AA3503EC117A56,用时:1113us加密,密文:DCC74C5B43340FB7,用时:8445us解密,用时:6338us插卡产生明文:09FED7DA8FC3B90F,用时:83990us加密,产生密文:A447987D6FF5CC2C,用时:682482us解密,用时:64

3、1494us可以看出,插卡后比直接用模拟器,加密解密的时间长了很多。七、实验总结通过本次智能卡实验,我了解了对称加密的一些相关概念与知识,并学会了如何在智能卡上实现对称加解密。八、源代码packagedesthree;importjavacard.framework.*;importjavacard.security.*;importjavacardx.crypto.*;publicclassDesthreeextendsApplet{byte[]Random;byte[]ciphertext=

4、newbyte[256];byte[]translation=newbyte[256];privateDESKeydeskey;CipherCipherObj;privatebyte[]keyData1={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08};//密钥privatebyte[]keyData2={0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18};privatebyte[]keyData3={0x21,0x22,0x23,

5、0x24,0x25,0x26,0x27,0x28};protectedDesthree(){register();}publicstaticvoidinstall(byte[]bArray,shortbOffset,bytebLength){newDesthree();}publicvoidprocess(APDUapdu)throwsISOException{byte[]buffer=apdu.getBuffer();if((buffer[ISO7816.OFFSET_CLA])==0&&(b

6、uffer[ISO7816.OFFSET_INS])==(byte)(0xa4))return;if(buffer[ISO7816.OFFSET_INS]==(byte)0x84){getRandom();//返回生成的8字节随机数Util.arrayCopyNonAtomic(Random,(short)0,buffer,(short)0,(short)8);apdu.setOutgoingAndSend((short)0,(short)8);}if(buffer[ISO7816.OFFSET

7、_INS]==(byte)0x83){apdu.setIncomingAndReceive();encrypt(buffer);//加密Util.arrayCopyNonAtomic(ciphertext,(short)16,buffer,(short)0,(short)8);apdu.setOutgoingAndSend((short)0,(short)8);}if(buffer[ISO7816.OFFSET_INS]==(byte)0x82){apdu.setIncomingAndRecei

8、ve();doAuthentication(buffer);//解密}}//执行加密过程的代码privatevoidencrypt(byte[]buffer){deskey=(DESKey)KeyBuilder.buildKey(KeyBuilder.TYPE_DES,KeyBuilder.LENGTH_DES,false);deskey.setKey(keyData1,(short)0);CipherObj=Cipher.getInstance(Cipher.ALG_DES_CBC_ISO97

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。