專利名稱:一種新型機讀旅行證件訪問控制方法
技術領域:
本發明屬于智能卡技術領域,涉及一種證件訪問控制方法,尤其涉及一種機讀旅行證件訪問控制方法。
背景技術:
機讀旅行證件(MachineReadable Travel Documents,MRTDs)是指符合國際民航組織 anter-national Civil Aviation Organization, ICA0)推薦的 D0C9303 規范、適用于機讀閱讀的供國際旅行使用的各種證件,包括護照、鑒證、通行證和身份證等。電子機讀旅行證件中芯片操作系統是整個證件的核心,具有電子護照和往來港澳通行證雙重應用, 承擔著存儲個人信息、保障安全存取和記錄通關信息等功能,可加強出入境管理、加快通關速度、防止證件偽造和變造。電子芯片的增加,使得機讀旅行證件具有了傳統證件所沒有的易受攻擊性。恐怖分子可能非法竊取證件芯片中的數據信息、跟蹤特定乘客、或者根據芯片的信息判斷國籍引爆炸彈等嚴重恐怖犯罪等,所以機讀旅行證件的安全是關系到國家安全的一項系統工程,涉及到多個層面的安全內容,如芯片制造、COS設計、通信協議、PKI體系、 生物特征識別、應用安全和管理安全等。攻擊者通常都是從最薄弱環節入手,所以每項安全策略的制定都需要從系統的角度綜合考慮。確保機讀旅行證件的安全對維護國家安全具有非常重要的意義。
發明內容
為了解決以上問題,本發明提供一種新型機讀旅行證件訪問控制方法,該方法可廣泛應用于電子護照和港澳通行證,有效的保護了機讀旅行證件的數據安全。為了實現上述目的,本發明采用一種新型的訪問控制模式FAC,具體內容如下步驟1 建立基本控制密鑰(1)加密密鑰KeyFAC 采用密碼機生成,并在初始化過程中直接裝載到證件中;(2)MAC(消息認證碼)密鑰KeyFAC MC在相互認證時,用參數指定。步驟2 認證和建立會話密鑰(1)方式1 普通操作時,利用隨機數建立會話密鑰;(2)方式2 特殊操作時,利用ATC生成會話密鑰。步驟3:安全消息按數據是否加密可以分成兩種方式,數據加密又可分為CBC和ECB兩種方式(1)數據加密;(1. 1)CBC模式加密數據,并計算MAC ;(1. 2) ECB模式加密數據,并計算MAC ;(2)明文數據,并計算MAC。進一步地,步驟2中所述的利用隨機數建立會話密鑰具體包括以下步驟步驟一機具(IFD)向卡(ICC)發送Get Challenge 命令;
步驟二 ICC產生隨機數RND. ICC,并返回給IFD ;步驟三=IFD完成以下的操作產生RND. IFD和K. IFD ;計算S = RND. IFD RND. ICCI I K. IFD、E_IFD = E [KENC] (S)、M_IFD = MAC [Kmac (E_IFD)];發送相互認證命令(E_ IFD |M_IFD作為數據);步驟四ICC完成以下的操作檢查E_IFD的校驗值1正0 ;解密E_IFD得到S ;從S 中提取RND. ICC,檢查機具是否返回正確的RND. ICC (與保存的RND. ICC比較);產生K. ICC ; 計算 R = RND. ICC RND. IFD K. ICC、E_ICC = E [KENC] (R)、M_ICC = MAC[Kmac] (E_ICC),返回響應(E_ICC| M_ICC);步驟五IFD完成以下的操作檢查E_ICC的校驗和M_ICC ;解密E_ICC得到R ;從 R中提取RND. IFD,檢查卡是否返回正確的值(與保存的RND. IFD比較)。完成上述5個步驟之后,機具和卡擁有相同的會話密鑰和MAC密鑰 KS_ENC=KS_MAC=K.ICC eK.IFD0進一步地,步驟2中所述的利用ATC生成會話密鑰具體包括以下內容1.算法描述會話密鑰分散函數使用16個字節的ICC主密鑰MK和兩個字節的ATC作為輸入, 產生16個字節的ICC會話密鑰SK。會話密鑰分散函數為每一個ICC應用交易產生一個唯一的會話密鑰。為此,會話密鑰分散函數生成一個密鑰樹。這個樹用ICC的主密鑰作為它的根,在其上存在著眾多的中間密鑰層。每一個中間密鑰由樹中其下層的密鑰導出。在數的頂端是會話密鑰,一個會話密鑰對應一個ATC的值。會話密鑰分散函數有兩個參數H:樹的高度,也就是在樹中除了基本層以外,中間密鑰層的數量;b 分枝因子,也就是一個“父”密鑰(在樹中低一層)產生“子”密鑰的數量。在第i層密鑰的數量是仏0彡i <H。可能產生會話密鑰的數量是bH且必須超過ATC的最大值Q16-I)。設Φ是影射兩個16個字節的數組X、Y和一個整數j到一個16個字節數組的函數,定義如下Z=O(X5Yj)= (DES3(X)[Yl θ (j mod b)]||DES3(X)[YR (j mod b) 'FO'])其中Yl和Ye是兩個8個字節的數組,且Y = (YL | | Ye)。Φ的反函數Φ—1定義為
Υ=Φ_1(Χ,Ζο) = ((DESS^CX)^] Θ (j mod b)) || (DESS'^X)^] (j mod b) 'F0'))其中&和&是兩個8個字節的數組,且Z= (Zj I Zk)。定義IKu為ICC的主密鑰,因此IKu = MK。這個密鑰用來導出密鑰樹第一層的 b個中間密鑰。對于j = 0,...,b-Ι IKljj = Φ (MK, IV, j)其中IV是16個字節的初值,不需要保密。位于更高層的中間密鑰用函數Φ從它的父密鑰和祖父密鑰導出。在第i層 O彡i彡H),第j個密鑰(0彡j彡b1-!)表示為
IKiij= Φ (IKh, J/b,IKi^zb2, j)其中“/”表示整除。設X= IKH,ATC θ IKH-2,ATC/b2那么會話密鑰SK等于X。作為選項,可設置會話密鑰中每個字節的最低位,使其滿足奇校驗的要求。注意當作為下一步的輸入時,中間密鑰不必修改校驗位。2.算法實現推薦b的值為2或者4,相應H的值為16和8,這樣每個卡可完成不超過216次交易。推薦IV的值是零。下面函數的直接實現方法以偽代碼的形式給出。在這個實現方法中,(a0, B1,... , Bh^1)為交易時亥Ij ATC的b-ary表示法,因此ATC = a^+a^2+. . . +aE_2h+aE^ 且GP和P分別表示祖父密鑰和父密鑰。使用ATC的當前值,從ICC的主密鑰MK,會話密鑰SK的計算方法如下所示。
GP=MK; Ρ=Φ(ΜΚ, ν,α0);
for (i=l;i<H-l;i++) {
T=P;
P=0(P,GP,ai);
GP=T; }
SK=0(P,GP,aH-i) GP;3.主密鑰分散機制本密鑰分散機制是將PAN和PAN序列號以及16位的發行方主密鑰IMK作為輸入, 生成16位的ICC主密鑰MK,具體方法如下1、并接PAN和PAN序列號,得到X,如果X不夠8位,在其左邊補零,補齊8位,得到 Y。2、計算兩個8位的數Zl = DES3 (IMK) [Y]Zr=DES3(IMK)[Y Θ (FF|| FF|| FFII FFII FFII FFII FFII FF)]定義Z = 41 I Ze即ICC的主密鑰MK = Ζ。進一步地,步驟3所述的安全消息,采用安全報文的方式,具體包括以下內容利用前面介紹的機制建立會話密鑰后,接口設備和芯片都擁有了相同的會話密鑰。FAC的安全消息具有兩種方式
權利要求
1.一種新型機讀旅行證件訪問控制方法,其特征在于包括以下步驟 步驟1 建立基本控制密鑰;步驟2 認證和建立會話密鑰; 步驟3:安全消息; 進一步地,步驟1包括如下步驟(1)加密密鑰KeyFAC■采用密碼機生成,并在初始化過程中直接裝載到證件中;(2)MAC(消息認證碼)密鑰KeyFACMAC在相互認證時,用參數指定; 進一步地,步驟3包括如下步驟(1)數據加密;(2)明文數據,并計算MAC。
2.根據權利要求1所述的一種新型機讀旅行證件訪問控制方法,其特征在于所述步驟2包括以下兩種方式(1)方式1普通操作時,利用隨機數建立會話密鑰;(2)方式2特殊操作時,利用ATC生成會話密鑰。
3.根據權利要求2所述一種新型機讀旅行證件訪問控制方法,其特征在于所述步驟2 中的利用隨機數建立會話密鑰具體包括以下步驟步驟一機具(IFD)向卡(ICC)發送Get Challenge命令; 步驟二 ICC產生隨機數RND. ICC,并返回給IFD ;步驟三IFD完成以下的操作產生RND. IFD和K. IFD ;計算S = RND. IFD | | RND. ICCI I K. IFD、E_IFD = E [KENC] (S)、M_IFD = MAC [Kmac (E_IFD)];發送相互認證命令(E_ IFD |M_IFD作為數據);步驟四ICC完成以下的操作檢查E_IFD的校驗值M_IFD ;解密E_IFD得到S ;從S中提取RND. ICC,檢查機具是否返回正確的RND. ICC(與保存的RND. ICC比較);產生K. ICC ; 計算 R = RND. ICC RND. IFD K. ICC、E_ICC = E [KENC] (R)、M_ICC = MAC[Kmac] (E_ICC),返回響應(E_ICC| M_ICC);步驟五IFD完成以下的操作檢查E_ICC的校驗和M_ICC ;解密E_ICC得到R ;從R中提取RND. IFD,檢查卡是否返回正確的值。
4.根據權利要求2所述一種新型機讀旅行證件訪問控制方法,其特征在于所述步驟2 中的利用ATC生成會話密鑰具體包括以下步驟步驟一算法設計; 步驟二 算法實現; 步驟三主密鑰分散機制。
5.根據權利要求4所述的一種新型機讀旅行證件訪問控制方法,其特征在于所述主密鑰分散機制是將PAN和PAN序列號以及16位的發行方主密鑰IMK作為輸入,生成16位的ICC主密鑰MK,具體方法如下(1)并接PAN和PAN序列號,得到X,如果X不夠8位,在其左邊補零,補齊8位,得到Y;(2)計算兩個8位的數。
6.根據權利要求1或2所述一種新型機讀旅行證件訪問控制方法,其特征在于所述步驟3中的數據加密包含以下兩種方式(1)CBC模式加密數據,并計算MAC ;(2)ECB模式加密數據,并計算MAC。
全文摘要
本發明提供一種新型機讀旅行證件訪問控制方法,該方法可廣泛應用于電子護照和港澳通行證,有效的保護了機讀旅行證件的數據安全。本發明采用一種新型的訪問控制模式FAC,具體包括建立基本控制密鑰認證和建立會話密鑰;安全消息。與現有技術相比,本發明的優點在于1、FAC訪問控制加密密鑰采用密碼機生成,并在機讀旅行證件的初始化過程中直接裝載到證件中;基本訪問控制MAC密鑰使用參數指定,不單獨生成。2、定義了兩種可選的會話密鑰建立方式利用隨機數建立會話密鑰和利用ATC產生會話密鑰。
文檔編號G06K7/00GK102236770SQ20101015079
公開日2011年11月9日 申請日期2010年4月20日 優先權日2010年4月20日
發明者于銳, 張之津, 張小波, 李勝廣, 李莉, 薛藝澤 申請人:公安部第一研究所, 北京中盾安全技術開發公司