欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種智能卡的s盒隨機化方法和系統的制作方法

文檔序號:7987666閱讀:535來源:國知局
一種智能卡的s盒隨機化方法和系統的制作方法
【專利摘要】本發(fā)明涉及一種智能卡的S盒隨機化方法和系統,屬于信息安全【技術領域】。本發(fā)明所述的方法包括以下步驟:(1)初始化數組mark[]元素全部為0;(2)生成隨機數r=rand()%8,初始化cnt等于0;(3)判斷mark[r]是否等于1,如果是,令r=(r+1)%8,直到找到第一個mark[r]等于0的位置;(4)選擇與S盒對應的輸入位置和輸出位置;(5)選擇S盒,進行壓縮運算;(6)標記S盒為已參與運算過,mark[r]=1;(7)計算cnt++,如果cnt等于7,算法結束;否則進入步驟(2)繼續(xù)執(zhí)行。采用本發(fā)明所述的方法和系統可以改進DES算法,增強其抗差分功耗分析攻擊的難度,而且在COS中的實現并不復雜,抗攻擊效果好。
【專利說明】一種智能卡的S盒隨機化方法和系統
【技術領域】
[0001]本發(fā)明屬于信息安全【技術領域】,具體涉及一種智能卡的S盒隨機化方法和系統?!颈尘凹夹g】
[0002]隨著信息技術的高速發(fā)展和智能卡的日益普及,智能卡的應用已經遍布人們生活的方方面面。智能卡(smart card)又稱集成電路卡,即IC卡(integrated circuit card)。它擁有便捷安全等特點。為了保護智能卡上信息和通信的安全,在智能卡上實現了多種加密算法,對智能卡進行加密是目前有效保障智能卡安全的手段之一。DES算法是智能卡中最常用的對稱算法。安全算法可用兩種方式實現:硬件實現和軟件實現。
[0003]由于智能卡中存在大量的敏感信息,針對竊取智能卡保護數據的各種攻擊技術也在同步發(fā)展。目前國內外對智能卡的攻擊主要包括物理攻擊、邏輯攻擊和旁路攻擊。物理攻擊成本高,耗時費力,雖然成功率高但較少采用;邏輯攻擊投入較少,容易實施,但也容易防范,成功率較低。新興的旁路攻擊技術因其實施簡單且較高收益而被廣泛使用。功耗分析便是芳路分析的一種。功耗分析攻擊又可以細分為簡單功耗分析攻擊(SPA)和差分功耗分析攻擊(DPA)。在過去的十年里,這兩種攻擊手段得到了長足的發(fā)展并且取得了顯著的成功。由于其易實施且成功率高的顯著優(yōu)點,它對智能卡工業(yè)帶來了巨大的安全風險。幾乎所有的國內外智能卡安全檢測標準都將旁路攻擊作為智能卡所面臨的安全風險中的第一威脅。
[0004]旁路攻擊是利用智能卡在運算過程中泄漏出的信息進行攻擊的一種攻擊方法,其中的功耗攻擊是目前攻擊者常用的攻擊方法,以差分功耗分析(DPA)為代表的該類型攻擊手段采集的是智能卡加密運算中芯片的功率消耗信息,然后對功耗信息處理和分析,獲取關于破解的有用信息。功耗信息的獲取可以通過在智能卡的\c或者GND觸點上串聯一個電阻實現。
[0005]不論是計算機還是智能卡,其CPU在處理在進行數據處理時候,數據的計算最終都歸結到了邏輯狀態(tài)O和邏輯狀態(tài)I的操作,對O和I的處理,會有不同的功率消耗。利用專業(yè)的功耗采樣設備可以獲取智能卡在處理數據過程中功率消耗的波形,通過分析智能卡的功耗波形確定智能卡加密的區(qū)間,對加密區(qū)間大量采樣并通過后續(xù)的分析和處理達到破解智能卡加密密鑰的目的,這就是功耗攻擊。
[0006]現有的差分功耗分析(DPA)攻擊是針對智能卡較之有效的攻擊手段,該攻擊手段能夠通過大量采集智能卡DES算法加密的功耗曲線,運用統計學的分析計算得到智能卡內DES算法加密的密鑰。
[0007]現有技術文獻“基于可變S盒的隨機加密方案Random encryption scheme basedon variable S-boxes” (http://lib.cqvip.com/qk/90750X/201107/39043463.html)中提到了隨機S盒的一種速成算法,該算法生成了隨機化S盒并改變了原S盒。但是,該文獻的S盒隨機化是在AES算法上設計和實現的,而不是DES算法;而且,該文獻生成的S盒改變了原有的S盒,它是將生成的S盒替代原AES中設計好的S盒。而在DES算法中,S盒是非線性的,不可以隨意更改。[0008]另外一篇文獻“S-盒隨機化與隨機化DES鏈式結構”(http://wuxizazh1.cnk1.net/Search/JFYZ707.013.html)中利用了數學原理是“任何O到η!-1的整數m可以唯一地表不為(n_l) !+an_2(n_2) ! +…+an_i (n_i) !+…+a1Q 作者利用(Br^arr2,.^a1)序列經過處理后表示S盒的運算順序。該方法存在的問題是:首先,文獻中提出了使用“加密時間”作為隨機數,而且加密的時間是年月日,很容易被偽造隨機數生成S盒的序列,應用在智能卡中不安全。第二,作者的實現中使用到了乘方運算和模運算,在智能卡中這種運算時間復雜度比較高,消耗的功率和時間能在功耗圖中教容易的識別出來,降低了智能卡抗功耗分析攻擊的難度。
[0009]針對DPA攻擊,現有多種防御策略,比如隨機延時、噪聲干擾、S盒隨機化等等。其中S盒的隨機化策略在智能卡DES算法中的設計和具體實現尚未見文獻公開。

【發(fā)明內容】

[0010]針對現有技術中存在的缺陷,本發(fā)明的目的是提供一種智能卡的S盒隨機化方法和系統。該方法和系統能夠改進智能卡DES算法,增加智能卡抵抗DPA攻擊的難度。
[0011]為達到以上目的,本發(fā)明采用的技術方案是:一種智能卡的S盒隨機化方法,包括以下步驟:
[0012](I)初始化數組mark[]元素全部為O ;
[0013](2)生成隨機數r=rand()%8,初始化cnt等于O ;
[0014](3)判斷mark[r]是否等于I,如果是,令r= (r+1)%8,直到找到第一個mark[r]等于O的位置;
[0015](4)選擇與S盒對應的輸入位置和輸出位置;
[0016](5)選擇S盒,進行壓縮運算;
[0017](6)標記S盒為已參與運算過,mark[r]=l ;
[0018](7)計算cnt++,如果cnt等于7,算法結束;否則進入步驟(2)繼續(xù)執(zhí)行。
[0019]一種智能卡的S盒隨機化系統,包括以下模塊:
[0020]初始化模塊,用于初始化數組mark[]元素全部為O ;
[0021 ] 隨機數生成模塊,用于生成隨機數r=rand O %8,初始化cnt等于O ;
[0022]判斷模塊,用于判斷mark[r]是否等于I,如果是,令r=(r+l)%8,直到找到第一個mark [r]等于O的位置;
[0023]選擇模塊,用于選擇與S盒對應的輸入位置和輸出位置;
[0024]壓縮運算模塊,用于選擇S盒進行壓縮運算;
[0025]標記模塊,用于標記S盒為已參與運算過,mark [r]=l ;
[0026]計數模塊,用于計算cnt++,如果cnt等于7,算法結束;否則轉到隨機數生成模塊繼續(xù)執(zhí)行。
[0027]進一步,DES加密算法中每一輪的S盒運算順序是不同的,其順序由生成的隨機數決定。每一輪無論生成的隨機數相同與否,只需要生成8個隨機數。DES算法中S盒隨機化采用8字節(jié)大小的輔助數組。
[0028]進一步,步驟(2)中或隨機數生成模塊生成的隨機數是調用COS生成的真隨機數。
[0029]本發(fā)明的效果在于:采用本發(fā)明所述的方法,可以改進智能卡DES算法,使得DES 算法中S盒的運算順序隨機化,增加智能卡抵抗DPA攻擊的難度。
【專利附圖】

【附圖說明】
[0030]圖1是本發(fā)明所述方法的流程圖;
[0031]圖2是本發(fā)明所述系統的結構圖;
[0032]圖3是本發(fā)明所述系統在DES算法中的位置示意圖。
【具體實施方式】
[0033]下面結合附圖和【具體實施方式】對本發(fā)明作進一步描述。
[0034]DES算法的每一輪運算中使用到了 8個S盒,在沒有加入隨機S盒策略的DES算法中,算法中3盒的執(zhí)行的順序是固定的,按照3[0]、3[1]、3[2]、3[3]、3[4]、3[5]、3[6]、S[7]的順序運算。DPA攻擊中首先對第一個S盒S[0]的輸入進行猜測。關注S[0]輸出中的某I比特,該I比特取決與6比特的S[0]盒輸入,而進一步取決于6比特的子密鑰。因此可以猜測該6比特的子密鑰,共64種猜測可能性。每一次猜測結合采集到了大量的功耗圖的明文輸入,可以產生對應的η個S[0]盒輸出中的某I比特的值。將產生的η個S[0]盒輸出中的某I比特的值與η條能耗圖進行相關性比較,如果猜測正確,相關性比較的結果將在特定時間點出現峰值。一旦峰值得到確認,則可以確定48比特子密鑰中的6比特,用同樣的方法處理另外7個S盒,可以得到完整的48比特子密鑰。
[0035]一旦這8個S盒計算的順序無規(guī)律可循,那DPA攻擊就無法針對某個S盒猜測密鑰,增加了 DPA攻擊的難度。
[0036]如圖1所示,一種智能卡的S盒隨機化方法,包括以下步驟SI — S7:
[0037]步驟SI,初始化數組mark[]元素全部為O ;
[0038]步驟S2,生成隨機數r=rand O %8,初始化cnt等于O ;
[0039]步驟S3,判斷mark[r]是否等于I,如果是,令r= (r+1) %8,直到找到第一個mark [r]等于O的位置;
[0040]步驟S4,選擇與S盒對應的輸入位置和輸出位置;
[0041]步驟S5,選擇S盒,進行壓縮運算;
[0042]步驟S6,標記S盒為已參與運算過,mark[r]=l ;
[0043]步驟S7,計算cnt++,如果cnt等于7,算法結束;否則進入步驟S2繼續(xù)執(zhí)行。
[0044]采用上述的S盒隨機化的策略,使S盒計算的順序完全隨機化,在DES算法的每一輪運算中,產生8個0-7之間的隨機數(包括O和7),用來決定S盒的計算順序:產生一個隨機數,決定首先運行的S盒,該S盒計算完成后,產生第二個隨機數計算下一個S盒,其中包括重復判斷等方法。本實施例中,步驟S2中所生成的隨機數是調用COS生成的真隨機數。
[0045]本實施例中,一種智能卡的S盒隨機化方法的具體實現流程如下:
[0046](I)初始化數組mark []元素全部為O ;
[0047](2)生成隨機數r=rand()%8,初始化cnt等于O ;
[0048](3)判斷mark[r]是否等于I,如果是,令r= (r+1)%8,直到找到第一個mark[r]等于O的位置;
[0049](4)選擇與S盒對應的輸入位置和輸出位置;S盒的6位輸入(X。, X1, x2, x3, x4, X5),其中(Xo,X5)標識了表中的行號;(X1, X2, X3,X4)標識了其中表中的列號,根據行號和列號選擇S盒中對應的數值,S盒參見DES算法;
[0050](5)選擇S盒,進行壓縮運算;壓縮運算原理是置換操作,置換表參見DES算法;
[0051](6)標記S盒為已參與運算過,mark[r]=l ;
[0052](7)計算cnt++,如果cnt等于7,算法結束;否則進入步驟(2)繼續(xù)執(zhí)行。
[0053]如圖2所示,一種智能卡的S盒隨機化系統,包括以下模塊:
[0054]初始化模塊11,用于初始化數組mark[]元素全部為O ;
[0055]隨機數生成模塊12,用于生成隨機數r=rand()%8,初始化cnt等于O,所生成的隨機數是調用COS生成的真隨機數;[0056]判斷模塊13,用于判斷mark[r]是否等于I,如果是,令r= (r+Ι)%8,直到找到第一個mark [r]等于O的位置;
[0057]選擇模塊14,用于選擇與S盒對應的輸入位置和輸出位置;
[0058]壓縮運算模塊15,用于選擇S盒進行壓縮運算;
[0059]標記模塊16,用于標記S盒為已參與運算過,mark[r]=l ;
[0060]計數模塊17,用于計算cnt++,如果cnt等于7,算法結束;否則轉到隨機數生成模塊12繼續(xù)執(zhí)行。
[0061]如圖3所示,描述了 DES算法的流程以及隨機S盒方法應用的位置。在DES算法中,總共需要16輪重復的運算,每輪運算中都要進行8個S盒的運算。S盒隨機化方法替代了 DES算法中S盒順序運算部分,改進了 DES算法,實現了 S盒隨機化策略。
[0062]根據上述實施例可以看出,本發(fā)明所述的一種智能卡的S盒隨機化方法不改變DES中的S盒設計,只改變S盒的計算順序,S盒的隨機化通過輔助數組(8字節(jié)大小數組)降低了時間復雜度。輔助數組標記8個S盒是否已經參加過計算。在每一輪運算中,首先調用COS底層生成一個一字節(jié)的真隨機數,把該隨機數變換到O到7之間,這個數字就確定了第一個計算的S盒,計算完成之后把輔助數組中對應的位置標記為I ;接下來繼續(xù)生成一個隨機數,判斷輔助數組中該位置的S盒是否已經參加過計算,如果S盒已經參加過計算,那么重復檢查隨機數加I的S盒是否參加過計算,否則計算該S盒并在輔助數組中標記它為I。
[0063]本發(fā)明所述的方法避免了生成了重復隨機數的問題。對于一般的隨機數重復,會繼續(xù)生成隨機數一直到不重復的隨機數,但是這樣使得調用隨機數的次數大大增加,而本發(fā)明使用了輔助數組,每一輪只需要生成8個隨機數即可。
[0064]與現有技術相比,現有的S盒隨機化策略設計有的是基于DES算法考慮,但未在智能卡的基礎上設計。DES算法中S盒的結構是不能改變的,不能重新生成S盒替代DES中的S盒。因為智能卡CPU處理速度的限制,一些隨機化算法使用到的乘方和模冪運算在功耗分析中可以比較容易地觀察出來,降低了功耗分析的難度。因此,本發(fā)明綜合了上述問題的缺陷,巧妙地實現了 S盒隨機化的策略,在不更改DES算法中8個S盒的基礎上使得它們的計算順序不是由S[0]、S[1]……S[7]順序計算,而是無規(guī)律的隨機計算。另外,本發(fā)明中,隨機數的實現是在智能卡系統COS中調用底層硬件生成的真隨機數經過變化之后使用的。
[0065]本發(fā)明通過實驗室設備對加入S盒隨機化前后的攻擊對比,DES算法中加入S盒隨機化的智能卡抵抗DPA攻擊的能力明顯提高。提高智能卡抗功耗攻擊的能力,能夠更好地保護卡內密鑰和信息的安全。同時,該策略還可以應用到智能卡的其他算法中,如AES算法等。
[0066]本領域技術人員應該明白,本發(fā)明所述的方法和系統并不限于【具體實施方式】中所述的實施例,上面的具體描述只是為了解釋本發(fā)明的目的,并非用于限制本發(fā)明。本領域技術人員根據本發(fā)明的技術方案得出其他的實施方式,同樣屬于本發(fā)明的技術創(chuàng)新范圍,本發(fā)明的保護范圍由權利要求及其等同物限定。
【權利要求】
1.一種智能卡的S盒隨機化方法,包括以下步驟: (1)初始化數組mark[]元素全部為O; (2)生成隨機數r=rand()%8,初始化cnt等于O; (3)判斷mark[r]是否等于I,如果是,令r=(r+Ι)%8,直到找到第一個mark[r]等于O的位置; (4)選擇與S盒對應的輸入位置和輸出位置; (5)選擇S盒,進行壓縮運算; (6)標記S盒為已參與運算過,mark[r]=l; (7)計算cnt++,如果cnt等于7,算法結束;否則進入步驟(2)繼續(xù)執(zhí)行。
2.如權利要求1所述的一種智能卡的S盒隨機化方法,其特征是:DES加密算法中每一輪的S盒運算順序是不同的,其順序由生成的隨機數變換之后決定。
3.如權利要求1所述的一種智能卡的S盒隨機化方法,其特征是:每一輪無論生成的隨機數相同與否,只需要生成8個隨機數。
4.如權利要求1所述的一種智能卡的S盒隨機化方法,其特征是:DES算法中S盒隨機化采用8字節(jié)大小的輔助數組。
5.如權利要求1于4任一項所述的一種智能卡的S盒隨機化方法,其特征是:步驟(2)中生成的隨機數是調用COS生成的真隨機數。
6.一種智能卡的S盒隨機化系統,包括以下模塊: 初始化模塊,用于初始化數組mark []元素全部為O ; 隨機數生成模塊,用于生成隨機數r=rand()%8,初始化cnt等于O ; 判斷模塊,用于判斷mark[r]是否等于1,如果是,令r=(r+l)%8,直到找到第一個mark [r]等于O的位置; 選擇模塊,用于選擇與S盒對應的輸入位置和輸出位置; 壓縮運算模塊,用于選擇S盒進行壓縮運算; 標記模塊,用于標記S盒為已參與運算過,mark[r]=l ; 計數模塊,用于計算cnt++,如果cnt等于7,算法結束;否則轉到隨機數生成模塊繼續(xù)執(zhí)行。
7.如權利要求6所述的一種智能卡的S盒隨機化系統,其特征在于:DES加密算法中每一輪的S盒運算順序是不同的,其順序由生成的隨機數變換之后決定。
8.如權利要求6所述的一種智能卡的S盒隨機化系統,其特征在于:每一輪無論生成的隨機數相同與否,只需要生成8個隨機數。
9.如權利要求6所述的一種智能卡的S盒隨機化系統,其特征在于:DES算法中S盒隨機化采用8字節(jié)大小的輔助數組。
10.如權利要求6至9任一項所述的一種智能卡的S盒隨機化系統,其特征在于:隨機數生成模塊生成的隨機數是調用COS生成的真隨機數。
【文檔編號】H04L9/06GK103888245SQ201210557220
【公開日】2014年6月25日 申請日期:2012年12月20日 優(yōu)先權日:2012年12月20日
【發(fā)明者】宮亞明 申請人:北京握奇數據系統有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
哈尔滨市| 自贡市| 泾源县| 高平市| 高淳县| 天津市| 元朗区| 东乡县| 基隆市| 康保县| 城市| 武城县| 江陵县| 水富县| 南城县| 昌图县| 弋阳县| 高安市| 通城县| 东乌珠穆沁旗| 阿克| 深圳市| 阿拉尔市| 贵港市| 惠州市| 怀远县| 洪洞县| 恩施市| 当阳市| 吉安县| 镇原县| 沅陵县| 武平县| 舞阳县| 肇州县| 商南县| 巴里| 绥滨县| 柳江县| 邵阳县| 万源市|