本發明專利技術公開了一種標量的規則NAF序列的生成方法,包括以下步驟:根據需求選擇規則NAF序列的窗口大小w,列出相應窗口大小下規則NAF序列的格式;列出非0項的所有可能,根據大小順序重新編碼到連續的正整數集合上來;根據標量k的最低位記錄其奇偶性并調整最低位得到奇數的k’,若k[0]=1,則k’=k,否則,k’=k+1;從低到高將k’分成每w位一組,找出位數最高的非0組,并在其最高位的前面加一個1,將新的k’從高到低移一位,去掉最低位,這樣就得到了經過重新編碼并省略原規則NAF序列中的0之后的窗口為w的規則NAF序列。本發明專利技術既能夠節省計算時間又能夠節約存儲空間。
【技術實現步驟摘要】
標量的規則NAF序列的生成方法
本專利技術涉及信息安全領域,特別是涉及一種標量的規則NAF(非相鄰表示型)序列的生成方法。
技術介紹
橢圓曲線密碼系統(ECC)具有安全性高、計算量小、處理速度快、存儲空間小、帶寬要求低等特點。與RSA公鑰體制相比,ECC非常適合于資源有限的嵌入式移動環境,如智能卡(smartcard)上的密碼芯片。傳統上,對密碼芯片的攻擊主要是對實現的算法從數學角度進行分析,如差分分析和線性分析。但自從旁路攻擊(SideChannelAttacks)被提出以后,人們越來越多的開始關注芯片的實現,以及針對芯片所面臨的攻擊所采取的抗攻擊措施。旁路攻擊是一種利用密碼芯片在運算過程中無意泄露出的信息,比如指令執行時間、功耗、電磁輻射等信息,對芯片進行攻擊的一種方法。與傳統的攻擊方法相比,其密鑰的搜索空間大大小于差分密鑰分析和線性密鑰分析。按攻擊特點的不同,旁路攻擊可以分為時間攻擊、功耗分析攻擊和電磁輻射攻擊等幾種類型。功耗分析技術分為簡單功耗分析(SPA)和差分功耗分析(DPA),SPA是指根據功耗曲線上所呈現的特殊特征來推測密鑰信息,DPA利用的是操作數的變化所引起的微小的功耗變化,需要通過對大量功耗曲線進行統計分析最終得出密鑰信息。標量乘是ECC最重要最耗時的運算,對ECC的功耗攻擊也主要集中在對標量乘運算的攻擊,快速而安全的實現標量乘對于ECC來講至關重要。設E(Fq)是定義在有限域Fq上的橢圓曲線,P(x,y)是E(Fq)上的點。若Fq是二元域,則-P=(x,x+y);若Fq的特征大于3,則-P=(x,-y)。因此橢圓曲線點的減法和點的加法一樣有效。這使得人們可以使用標量k的帶符號數學表示,一種特別有用的帶符號數學表示是非相鄰表示型(NAF),對于一個標量k有唯一的NAF表示。Width-wNAF算法是帶有預計算表的NAF算法的一種擴展形式,它具有連續的w位數中非零的個數最多為1的特點,因此常用于標量乘的快速實現。每一個標量k都有唯一的Width-wNAF表示,而非0位的位置也與標量k本身的數值有直接的關系,這不利于抗簡單功耗分析(SPA)攻擊。一種有效抵御SPA攻擊的方法是為標量k產生規則的Width-wNAF表示,在這種規則Width-wNAF序列中每w位數中一定會也只會在特定的位置產生非0位,因而非0位的位置與標量k本身的數值沒有直接的關系,在標量乘的功耗曲線上也就沒有明顯的特征可供SPA所利用。其算法如下:輸入:正整數k,窗口寬度w輸出:k的規則序列窗口NAF表示kw1.r=0,i=0,r0=w2.若k為偶數,則k=k+13.當k大于1時,重復執行3.1u[i]=(kmod2w+1)-2w3.3kw[r+ri-1]=0,...,kw[r+1]=0,kw[r]=u[i]3.4r=r+ri,i=i+1,ri=w4.kw[n]=0,...,kw[r+1]=0,kw[r]=15.返回kw[n],kw[n-1],...,kw[0]由于該方法只能處理奇數的標量,對于偶數標量可以做加1處理,最后在標量乘結束后再進行調整就可以了:(k+1)P-P。這個方法首先是要根據所選擇的窗口大小w為標量k計算規則的NAF序列并存儲,根據窗口大小計算需要預計算的點并存儲,然后再進行標量乘計算,最后根據標量k的奇偶性決定是否需要對結果進行調整。相同二進制長度的標量k的規則NAF序列可能因k實際數值的不同而長度不同。
技術實現思路
針對上述技術中的現狀,本專利技術所要解決的技術問題是提供一種標量的規則NAF序列的生成方法,既能夠節約計算時間又能夠節約存儲空間。為解決上述技術問題,本專利技術的標量的規則NAF序列的生成方法,包括如下步驟:步驟1、根據需求選擇規則NAF序列的窗口大小w,w為大于1的正整數,列出相應窗口大小下規則NAF序列的格式;步驟2、列出非0項X的所有可能,根據大小順序重新編碼到連續的正整數X’集合上來,消除負數的表示,并記住實際非0項X與正整數X’之間的對應關系;步驟3、根據標量k的最低位記錄其奇偶性并調整最低位得到奇數的k’,若k[0]=1,則k’=k,否則,k’=k+1;步驟4、從低到高將k’分成每w位一組,找到位數最高的非0組,并在其最高位的前面加一個1,將新的k’從高到低移一位,去掉最低位,得到經過重新編碼并省略原規則NAF序列中的0之后的窗口為w的規則NAF序列;步驟5、在標量乘k’P計算過程中從新的規則NAF序列中從高到低取出的每個X’,對應w個倍點運算D和一個點加運算A,而點加的點由X’對應的X確定。采用本專利技術的方法產生的標量k的規則NAF序列,簡化了標量k的規則NAF序列產生流程:不需要特殊的計算,省略規則NAF序列的計算過程;不需要額外的存儲空間,省略額外存儲規則NAF序列的存儲空間,首尾的處理和整個序列的移位也可以在使用過程中解決掉,這樣既能夠節約時間又能夠節約存儲空間。在同一窗口寬度w下為相同二進制長度的標量k產生相同長度的規則NAF序列,以統一標量乘計算時間和完全消除SPA信息的泄露。附圖說明下面結合附圖與具體實施方式對本專利技術作進一步詳細的說明:附圖是規則序列的變化示意圖。具體實施方式標量乘是ECC最重要最耗時的運算,對ECC的攻擊也主要集中在對標量乘運算的攻擊,快速而安全的實現標量乘一直是業界努力的方向。所述標量的規則NAF序列的生成方法是涉及橢圓曲線密碼中標量乘的安全而快速的具體實現方法。為了提高標量乘的執行速度和抗SPA攻擊,目前主要采用對標量進行帶符號的規則化變換后再進行標量乘運算,這樣在功耗曲線上看到的是點加和倍點運算規律的出現,不會有SPA信息的泄露,通過窗口大小的選擇也可以減少點加運算的次數,有效提高執行速度。標量的規則化變換通常需要規則NAF序列的計算過程,規則化后的變量是帶符號的整數,且可能比標量的二進制表示的位數要多,因此需要額外的存儲空間來存放標量的規則NAF序列。所述標量的規則NAF序列的生成方法通過省略原規則NAF序列中的0和對非0項進行重新編碼來實現,整個過程不需要計算,也不會增加位數,這樣的產生方法可以省去規則NAF序列產生過程中的計算時間,也不需要額外的存儲空間來存放規則NAF序列。下面以窗口w=4為例(結合附圖所示),詳細說明標量的規則NAF序列的生成方法的實現過程。步驟一、選擇窗口w=4的規則NAF序列,默認數值按左高右低排列,其格式為:000X000X000X…000X。步驟二、窗口w=4的規則NAF序列中非0的X∈{-15,-13,-11,-9,-7,-5,-3,-1,1,3,5,7,9,11,13,15},一一對應到如下集合X’∈{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}。步驟三、根據標量k的最低位記錄其奇偶性并調整最低位得到奇數的k’,若k[0]=1,則k’=k,否則,k’=k+1。步驟四、從低到高將k’分成每4位一組,找到位數最高的非0組,并在其最高位的前面加一個1,將新的k’從高到低移一位,去掉最低位,這樣就得到了經過重新編碼并省略原規則NAF序列中的0之后的窗口為4的規則NAF序列:X’X’X’…X’。步驟五、在標量乘k’P計算過程中從新的規則NAF序列中從高到低取出的每個X’對應運算本文檔來自技高網...

【技術保護點】
一種標量的規則NAF序列的生成方法,其特征在于,包括如下步驟:步驟1、根據需求選擇規則NAF序列的窗口大小w,w為大于1的正整數,列出相應窗口大小下規則NAF序列的格式;步驟2、列出非0項X的所有可能,根據大小順序重新編碼到連續的正整數X’集合上來,消除負數的表示,并記住實際非0項X與正整數X’之間的對應關系;步驟3、根據標量k的最低位記錄其奇偶性并調整最低位得到奇數的k’,若k[0]=1,則k’=k,否則,k’=k+1;步驟4、從低到高將k’分成每w位一組,找到位數最高的非0組,并在其最高位的前面加一個1,將新的k’從高到低移一位,去掉最低位,這樣就得到了經過重新編碼并省略原規則NAF序列中的0之后的窗口為w的規則NAF序列;步驟5、在標量乘k’P的計算過程中,從新的規則NAF序列中從高到低取出的每個X’對應w個倍點運算D和一個點加運算A,而點加的點由X’對應的X確定。
【技術特征摘要】
1.一種標量的規則NAF序列的生成方法,其特征在于,包括如下步驟:步驟1、根據需求選擇規則NAF序列的窗口大小w,w為大于1的正整數,列出相應窗口大小下規則NAF序列的格式;步驟2、列出非0項X的所有可能,根據大小順序重新編碼到連續的正整數X’集合上來,消除負數的表示,并記住實際非0項X與正整數X’之間的對應關系;步驟3、根據標量k的最低位記錄其奇偶性并調整最低位得到奇數的k’,若k[0]=1,則k’=k,否則,k’=k+1;步驟4、從低到高將k’分成每w位一組,找到位數最高的非0組,...
【專利技術屬性】
技術研發人員:徐云秀,顧海華,
申請(專利權)人:上海華虹集成電路有限責任公司,
類型:發明
國別省市:上海,31
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。