歡迎您訪問(wèn)鄭州興邦電子股份有限公司官方網(wǎng)站!
阿里巴巴誠(chéng)信通企業(yè)
全國(guó)咨詢熱線:40000-63966
興邦電子,中國(guó)水控機(jī)第一品牌

聯(lián)系興邦電子

全國(guó)咨詢熱線:40000-63966

售后:0371-55132951/55132952

工廠:河南省 鄭州市 高新區(qū)蓮花街電子電器產(chǎn)業(yè)園

一卡通密鑰管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

文章出處:http://www.xianjuhong.com 作者:彭旭榮 ,陽(yáng)王東   人氣: 發(fā)表時(shí)間:2011年11月06日

[文章內(nèi)容簡(jiǎn)介]:校園一卡通既滿足學(xué)?,F(xiàn)代化管理的需要,又滿足師生El常生活的多種需求,其電子管理功能塊將使學(xué)校實(shí)現(xiàn)電子化管理,提高工作效率,加強(qiáng)校園管理,但其IC卡的安全性是一卡通應(yīng)用的保障基礎(chǔ)。針對(duì)一卡通中多種業(yè)務(wù)集成應(yīng)用的需求,提出了多級(jí)密鑰管理系統(tǒng)的解決方案,以根密鑰、母密鑰和用戶密鑰三層密碼機(jī)制來(lái)充分保障密碼生成、保存以及l(fā)c卡使用的安全。

    作為現(xiàn)代信息平臺(tái)的熱門應(yīng)用,校園“一卡通”是集成了考勤、門禁、信息咨詢、教務(wù)服務(wù)、圖書(shū)借閱、實(shí)驗(yàn)計(jì)費(fèi)、醫(yī)療支付、學(xué)費(fèi)繳付、獎(jiǎng)學(xué)金發(fā)放、工資福利發(fā)放、科研經(jīng)費(fèi)核算等各種校園消費(fèi)的結(jié)算,甚至包括銀行金融交易等在內(nèi)的眾多服務(wù)功能“ ,可滿足不同層次的各類學(xué)校的應(yīng)用需求,深受教育行業(yè)用戶的歡迎。但是對(duì)于IC卡的應(yīng)用最重要的是IC卡的密碼安全問(wèn)題,要保證I C卡密碼的應(yīng)用安全,就必須有一個(gè)安全可靠的密鑰管理系統(tǒng)。有些IC卡的密碼管理系統(tǒng)為單層密鑰系統(tǒng),也就是直接根據(jù)一個(gè)通用的根密鑰來(lái)生成用戶消費(fèi)卡的密鑰,這種密鑰生成需要系統(tǒng)的根密鑰,根密鑰的安全性難以保證,而且難以對(duì)IC的應(yīng)用系統(tǒng)的密碼進(jìn)行擴(kuò)展,不能適應(yīng)一張IC卡 集成多種IC卡應(yīng)用系統(tǒng),他們既要有統(tǒng)一的安全體系,又有獨(dú)立密碼安全機(jī)制。既能夠?qū)崿F(xiàn)在校園的真正一一卡通,又能保證不同應(yīng)用相互之間的安全性和可靠性。本文探討構(gòu)建一種多層的密鑰安全管理機(jī)制來(lái)滿足校園一卡通的安全應(yīng)用需要。
 
    1密鑰管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 

    1.1密鑰管理系統(tǒng)的體系結(jié)構(gòu)

    密鑰管理包括密鑰的生成、裝入、傳遞、存儲(chǔ)、恢復(fù)、銷毀等內(nèi)容。一卡通生成的主密鑰稱為根密鑰, 由公司或團(tuán)體的三位領(lǐng)導(dǎo)各輸入8字節(jié)密碼,經(jīng)3DES數(shù)據(jù)加密算法按照一定規(guī)則多次加密并截取得到,存儲(chǔ)在系統(tǒng)惟一的根卡上。一卡通系統(tǒng)每個(gè)應(yīng)用對(duì)應(yīng)一個(gè)母密鑰,母密鑰由根密鑰加密8位隨機(jī)整數(shù)得到,隨機(jī)數(shù)加密存儲(chǔ)在根卡上,母密鑰加密持卡人密碼可以制作母卡,一個(gè)母密鑰可以發(fā)放多張母卡,母卡與根卡都通過(guò)持卡人的輸入的Pin碼進(jìn)行驗(yàn)證訪問(wèn),這樣保證密碼存儲(chǔ)的安全性。消費(fèi)系統(tǒng)的發(fā)卡子系統(tǒng)則是利用相應(yīng)業(yè)務(wù)的母卡來(lái)初始化用戶消費(fèi)卡。一卡通密鑰管理系統(tǒng)的實(shí)現(xiàn)結(jié)構(gòu)如圖1所示。 


圖1一卡通密鑰管理系統(tǒng)的實(shí)現(xiàn)結(jié)構(gòu)

    1.2根密鑰的生成

    由公司或團(tuán)體的三位領(lǐng)導(dǎo)各輸入8字節(jié)字符串,分別為a、b、c,轉(zhuǎn)化為字節(jié)類型為aKey、bKey、cKey。先使用bKey加密aKey得到dKey,然后用cKey加密dKey得到r,截取r的前8位則得到根密鑰rKey,存入根卡的指定位置。具體流程如圖2所示。 


圖2根密鑰的生成

    1.3根卡的生成 

    由根卡持卡人輸入8字節(jié)的密碼cOde,用COde對(duì)根密鑰進(jìn)行加密得到rcodel,截取rcodel前面16位作為一級(jí)密文rcodel 16,然后再用COde對(duì)rcodel 16進(jìn)行加密得到rcode2,截取rcode2前面l6位作為二級(jí)密文rcode216,將rcodel 16和rcode2l6寫入根卡指定位置,完成根卡的生成。具體流程如圖3所示。 


圖3根卡的制作

    1.4根卡的驗(yàn)證
 
從根卡中指定位置獲得根卡的一級(jí)密文rcodel 16和二級(jí)密文rcode216,用根卡持卡人輸入的8字節(jié)密碼對(duì)一級(jí)密文rcodel 16進(jìn)行加密得到rcodel,截取rcodel的前面l6位并將其轉(zhuǎn)化為字符串strl, 將二級(jí)密文rcode216轉(zhuǎn)化為字符串str2,比較strl和str2,若相等,則根卡驗(yàn)證成功,反之失敗。具體流程如圖4所示。 


圖4 根卡的驗(yàn)證

    1.5母密鑰的生成

    使用從根卡中得到的根密鑰加密系統(tǒng)生成的8位隨機(jī)整數(shù)得到mk,截取mk的前面8位得到母密鑰,并將母密鑰和該母密鑰的應(yīng)用類型索引一起存入根卡指定位置。具體流程如圖5所示。 


圖5母密鑰的生成

    1.6母卡的制作

    由母卡持卡人輸入8字節(jié)的密碼code,用code對(duì)母密鑰進(jìn)行加密得到mcodel,截取mcodel前面16位作為一級(jí)密文rcodel 16,然后再用code對(duì)rcodel 16進(jìn)行加密得到mcode2,截取mcode2的前面l6位作為二級(jí)密文rcode216,將rcodel16和rcode216寫入母卡指定位置,完成母卡的生成。具體流程如圖6所示。 


圖6母卡的制作

    1.7母卡的驗(yàn)證

    從母卡中指定位置獲得母卡的一級(jí)密文rcodel16和二級(jí)密文rcode216,用母卡持卡人輸入的8字節(jié)密碼對(duì)一級(jí)密文rcodel 16進(jìn)行加密得到rcodel,截取reodel的前面16位并將其轉(zhuǎn)化為字符串strl, 將二級(jí)密文rcode216轉(zhuǎn)化為字符串str2,比較strl和str2,若相等,則母卡驗(yàn)證成功,反之失敗。具體流程如圖7所示。 
    


圖7母卡的驗(yàn)證

    1.8密鑰管理實(shí)現(xiàn)

    1.8.1根密鑰的生成
    private void b— — creatRootMy——Click(object sender,
    EventArgs e)
    {
    / 字符串書(shū)寫檢查部分代碼已省略 /
    byte[】dKey Encoding.Default.GetBytes(ds.
    DesEncrypt(aKey8,bKey8,”zhanshen”));
    Array.Copy(dKey,0,temp,0,8);
    byte[】r = Encoding.Default.GetBytes(ds.
    DesEncrypt(temp,cKey8,”zhanshen”));
    Array.Copy(r,0,rKey8,0,8);//根密鑰的字節(jié)
    數(shù)組形式
    isCanOperate = true;
    groupBox2.Enabled = true
    log.Info(”根密鑰生成成功! ”);
    MessageBox.Show(”根密鑰生成成功! ”, ”提示!
    ”);
    }
    實(shí)現(xiàn)界面如圖8所示。


圖8根密鑰生成界面

    1.8.2母密鑰的生成
    DesSecurity ds= new DesSecurity();
    byte[】mk = Encoding.Default.GetBytes(ds.
    DesEncrypt(ran8,Card—root.rKey8, ”zhanshen’ ));
    //用DES算法生成母密鑰(根密鑰加密分散因子)
    Array.Copy(mk,0,mKey8,0,8);//取前面?zhèn)€字節(jié)作為母密鑰
    monisCanOperate : true:
    groupBox4.Enabled = true:
    log.Info(”母密鑰生成成功! ”);
    }
    實(shí)現(xiàn)界面如圖9所示。 
    


圖9母密鑰生成界面 

    1.9系統(tǒng)測(cè)試

    在測(cè)試過(guò)程中,根密碼和母密碼的產(chǎn)生采用分段密碼產(chǎn)生和保存機(jī)制,在應(yīng)用過(guò)程中難以復(fù)制,也在一定程度上杜絕個(gè)別人為的不安全因素。而且可以根據(jù)應(yīng)用來(lái)制作不同業(yè)務(wù)的母卡,不同業(yè)務(wù)之問(wèn)如果未經(jīng)授權(quán)是不能夠互訪的,這樣也系統(tǒng)的安全的分層管理。在加密算法中,在3D ES算法的基礎(chǔ)上增加了分散算法和隨機(jī)算法,并在加密解密過(guò)程進(jìn)行分散操作,增加r解密的難度,提高了密碼的安全性。并且系統(tǒng)具有良好可實(shí)現(xiàn)性和性能,表l是發(fā)卡的時(shí)間統(tǒng)計(jì)表。從統(tǒng)計(jì)表中可以得出該密鑰管理系統(tǒng)能夠適應(yīng)較大規(guī)模的發(fā)卡應(yīng)用。 

    2 結(jié)束語(yǔ)

    本文以密鑰管理在校園園一卡通系統(tǒng)中的一應(yīng)用為中心。研究密鑰管理系統(tǒng)在一卡通系統(tǒng)中的具體應(yīng)用模式,并以IC卡技術(shù)和密碼算法技術(shù)為基礎(chǔ),提出了一卡通系統(tǒng)的密鑰管理系統(tǒng)的解決方案。該解決方案具有較好的實(shí)用性和安全性,能夠支持豐富的校園智能卡的應(yīng)用。@

本文關(guān)鍵詞:一卡通,校園一卡通,密鑰
回到頂部