版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、智能卡技術(shù)實(shí)驗(yàn)報(bào)告 學(xué)院: 電子工程學(xué)院班級(jí): 2011211204姓名: 學(xué)號(hào): 2011210986實(shí)驗(yàn)四 Java卡對(duì)稱加密解密程序一、實(shí)驗(yàn)?zāi)康模航ava卡3DES算法的加密解密程序,并進(jìn)行Java卡程序的編譯和調(diào)測(cè)。二、實(shí)驗(yàn)設(shè)備:PC機(jī),智能卡讀卡器,Java卡。三、實(shí)驗(yàn)內(nèi)容:1. 建立一個(gè)JavaCard工程2. 編寫3DES算法的加解密應(yīng)用代碼3. 使用智能卡模擬器對(duì)應(yīng)用代碼進(jìn)行調(diào)試4. 使用Java卡對(duì)應(yīng)用代碼進(jìn)行編譯測(cè)試四、實(shí)驗(yàn)報(bào)告:1. 設(shè)計(jì)一個(gè)3DES算法的加密解密小應(yīng)用程序2. 畫出系統(tǒng)結(jié)構(gòu)圖和各部分程序流程圖3. 完成程序的開發(fā),然后再在Java卡上進(jìn)行驗(yàn)證五、流程
2、圖系統(tǒng)結(jié)構(gòu)流程:各部分流程圖1) 產(chǎn)生隨機(jī)明文流程圖2) 3DES加密流程圖 3)3DES解密流程圖六、演示模擬器隨機(jī)產(chǎn)生8字節(jié)的明文:D4AA3503EC117A56,用時(shí):1113us加密,密文:DCC74C5B43340FB7,用時(shí):8445us解密,用時(shí):6338us插卡產(chǎn)生明文:09FED7DA8FC3B90F,用時(shí):83990us加密,產(chǎn)生密文:A447987D6FF5CC2C,用時(shí):682482us解密,用時(shí):641494us可以看出,插卡后比直接用模擬器,加密解密的時(shí)間長(zhǎng)了很多。七、實(shí)驗(yàn)總結(jié)通過(guò)本次智能卡實(shí)驗(yàn),我了解了對(duì)稱加密的一些相關(guān)概念與知識(shí),并學(xué)會(huì)了如何在智能卡上實(shí)現(xiàn)對(duì)稱
3、加解密。八、源代碼package desthree;import javacard.framework.*;import javacard.security.*;import javacardx.crypto.*;public class Desthree extends Appletbyte Random;byte ciphertext=new byte256;byte translation=new byte256;private DESKey deskey;Cipher CipherObj; private byte keyData1=0x01, 0x02, 0x03, 0x04, 0x
4、05, 0x06, 0x07, 0x08;/密鑰private byte keyData2=0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18;private byte keyData3=0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28;protected Desthree()register();public static void install(byte bArray, short bOffset, byte bLength)new Desthree();public void process(APDU
5、 apdu)throws ISOExceptionbyte buffer = apdu.getBuffer();if(bufferISO7816.OFFSET_CLA)=0 && (bufferISO7816.OFFSET_INS)=(byte)(0xa4)return;if(bufferISO7816.OFFSET_INS=(byte)0x84)getRandom();/返回生成的8字節(jié)隨機(jī)數(shù)Util.arrayCopyNonAtomic(Random, (short)0, buffer, (short)0, (short)8);apdu.setOutgoingAndSend
6、(short)0,(short)8);if(bufferISO7816.OFFSET_INS=(byte)0x83)apdu.setIncomingAndReceive();encrypt(buffer); /加密Util.arrayCopyNonAtomic(ciphertext, (short)16, buffer, (short)0, (short)8);apdu.setOutgoingAndSend(short)0,(short)8); if(bufferISO7816.OFFSET_INS=(byte)0x82)apdu.setIncomingAndReceive();doAuthe
7、ntication(buffer); /解密/執(zhí)行加密過(guò)程的代碼private void encrypt(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_ISO9797_M1, false);CipherObj.init(deskey, Cipher.MODE_ENCRYPT);C
8、ipherObj.doFinal(buffer, (short)5, (short)8, ciphertext, (short)0);deskey.setKey(keyData2, (short)0);CipherObj = Cipher.getInstance(Cipher.ALG_DES_CBC_ISO9797_M1, false);CipherObj.init(deskey, Cipher.MODE_DECRYPT);CipherObj.doFinal(ciphertext, (short)0, (short)8, ciphertext, (short)8);deskey.setKey(
9、keyData3, (short)0);CipherObj = Cipher.getInstance(Cipher.ALG_DES_CBC_ISO9797_M1, false);CipherObj.init(deskey, Cipher.MODE_ENCRYPT);CipherObj.doFinal(ciphertext, (short)8, (short)8, ciphertext, (short)16);/執(zhí)行解密過(guò)程的代碼private void doAuthentication(byte buffer)deskey = (DESKey)KeyBuilder.buildKey(KeyBu
10、ilder.TYPE_DES,KeyBuilder.LENGTH_DES,false);deskey.setKey(keyData3, (short)0);CipherObj = Cipher.getInstance(Cipher.ALG_DES_CBC_ISO9797_M1, false);CipherObj.init(deskey, Cipher.MODE_DECRYPT);CipherObj.doFinal(buffer, (short)5, (short)8, translation, (short)0);deskey.setKey(keyData2, (short)0);Cipher
11、Obj = Cipher.getInstance(Cipher.ALG_DES_CBC_ISO9797_M1, false);CipherObj.init(deskey, Cipher.MODE_ENCRYPT);CipherObj.doFinal(translation, (short)0, (short)8, translation, (short)8);deskey.setKey(keyData1, (short)0);CipherObj = Cipher.getInstance(Cipher.ALG_DES_CBC_ISO9797_M1, false);CipherObj.init(d
12、eskey, Cipher.MODE_DECRYPT);CipherObj.doFinal(translation, (short)8, (short)8, translation, (short)16);if(Util.arrayCompare(translation, (short)16, Random, (short)0, (short)8)!=0)ISOException.throwIt(ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED);/獲取隨機(jī)數(shù)private void getRandom()if(Random=null)Random = JCSystem.makeTransientByteArray(short
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 馬戲團(tuán)合作協(xié)議書
- 2025年個(gè)人別墅測(cè)繪項(xiàng)目合同范本
- 2025版房地產(chǎn)開發(fā)項(xiàng)目施工合同交底書范本2篇
- 2025-2030全球三氟化銪行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球高折射率光纖行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球滑動(dòng)軸承襯套行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球落地護(hù)眼燈行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)微膠囊熱致變色顏料行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 石料破碎加工合同范本
- 2025版?zhèn)€人股權(quán)交易保密協(xié)議書4篇
- 中國(guó)末端執(zhí)行器(靈巧手)行業(yè)市場(chǎng)發(fā)展態(tài)勢(shì)及前景戰(zhàn)略研判報(bào)告
- 北京離婚協(xié)議書(2篇)(2篇)
- 2025中國(guó)聯(lián)通北京市分公司春季校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 康復(fù)醫(yī)學(xué)科患者隱私保護(hù)制度
- Samsung三星SMARTCAMERANX2000(20-50mm)中文說(shuō)明書200
- 2024年藥品質(zhì)量信息管理制度(2篇)
- 2024年安徽省高考地理試卷真題(含答案逐題解析)
- 廣東省廣州市2024年中考數(shù)學(xué)真題試卷(含答案)
- 高中學(xué)校開學(xué)典禮方案
- 內(nèi)審檢查表完整版本
- 3級(jí)人工智能訓(xùn)練師(高級(jí))國(guó)家職業(yè)技能鑒定考試題及答案
評(píng)論
0/150
提交評(píng)論