專利名稱:基于橢圓曲線加密法的簽密方案的制作方法
技術領域:
本發明涉及用于基于橢圓曲線加密法加密并數字簽名數據的方 法、條件訪問系統、前端系統和智能卡。
背景技術:
條件訪問系統是公知的,并且廣泛地與當前可獲得的付費電視系 統相結合地使用。目前,這樣的系統基于服務的傳輸,所述服務被具 有機頂盒和每一個訂閱包的智能卡的用戶接收的控制字(也被稱為服 務加密密鑰)加密。典型地,這些服務由前端系統以廣播流發射。已 知這樣的實現,其中機頂盒功能被集成到如電視、個人錄影機、手機、 智能電話或計算機用品的裝置中。已知這樣的智能卡實現,其中智能 卡是在操作之前手動插入機頂盒中的獨立的卡、或集成在機頂盒中的 表面安裝裝置。已知軟件實現的智能卡作為機頂盒中的軟件模塊運 行。來自特別服務提供商的訂閱包的智能卡允許包內的加密服務被解
密和觀看。廣播流還包含授權管理消息(EMM),也被稱為密鑰管 理消息(KMM),和授權控制消息(ECM),這對于智能卡解密服 務而言是必要的。控制字是用于保護服務數據的主要安全機構,并且 相對頻繁地改變。ECM被用于以加密形式傳送控制字,因此被相對 頻繁地發送。EMM被用于傳送用于解密ECM以抽取控制字、解密 與添加或移除觀看/使用權限相關的其它數據、和/或解密其它用戶特 定數據的秘密密鑰。因此,存在不同種類的EMM,它們以不同的頻 率級別被發送,但不變的是比發送ECM的頻率稍慢或慢的多。 橢圓曲線加密法是用于對諸如EMM和ECM的消息進行加密和 數字簽名的已知技術。實現橢圓曲線加密法技術的橢圓曲線加密系統算。橢圓曲線域參數存儲在用于加密和簽名目的的前端系統中,并且 存儲在用于解密和簽名驗證目的的智能卡中。
橢圓曲線加密法典型地使用下述橢圓曲線域參數之一有限場
^P上的橢圓曲線域參數、和f^m上的橢圓曲線域參數。
^p上的橢圓曲線域參數是p、 a、 b、 G、 n和h。參數p是指定有 限場Fp的質數(prime)。參數aE,p和bE^p指定由等式y2 = x3 + a*x+b限定的橢圓曲線E ( )。參數G是橢圓曲線上的點的循 環子群的基點(Gx, Gy)。參數n是G的階,即最小的非負質數n, 從而n.G-O (O是無窮大的點)。參數h是余因子lE^pH/n。
正2、上的橢圓曲線域參數是m、 f (x) 、 a、 b、 G、 n和h。參數 m是指定有限場^"的整數。參數f (x)是指定正2、的表示的次數 m的不可約分的二進制多項式。參數ae^Vm和be^Vm在F2、中指 定由等式y2 + x*y - x3 + a*x2+b限定的橢圓曲線E (正2、)。參數g 是橢圓曲線上的點的循環子群的基點(Gx, Gy)。參數n是G的階, 即最小的非負質數n,從而n.G-O (O是無窮大的點)。參數h是
余因子|E(iym) |/n。
加密是使用算法(也已知為密碼)變換信息(也被稱為明文)以 使其對于除了那些有解密密鑰的人以外的任何人不可讀的處理。 一種 已知的基于橢圓曲線加密法的公共密鑰加密方案是橢圓曲線整體加
密方案(ECIES) 。 ECIES在例如、M.Abdalla,M.Bellare,P.Rogaway 的"DHAES: An encryption scheme based on the Diffie-Hellman problem", httD:〃www-cse.ucsd.edu/users/mihir/Dai)ers/dhies.htm1, 2001年9月18日中有描述,并且在例如ANSI X9.63和IEEE P1363A 中標準化,上述文獻通過引用全文并入本申請。在加密/解密處理中,
ECIES使用接收機的私有密鑰(由參數dreceiver表示)和公共密鑰(由 表示)。此處,參數dreceiver典型地為在區間[l, n-ll中隨 機選擇的整數。參數Qreceiver典型地等于dreceiver'G。
為了使用ECIES對明文消息加密,前端系統執行下述步驟。首
先,產生隨機數r,并且計算隨機點R-r.G,得到R- (Rx, Ry)。第二,導出共享秘密S-Px,其中P- (Px, Py) = r.Qreceiver (并且P 不是無限大的點)。笫三,諸如ISO/IEC 18033-2中限定的KDF1 或KDF2的密鑰導出函數(KDF)被用于通過計算kE - KDF (S)推 導對稱加密密鑰。第四,通過計算E (kE; message)使用加密密鑰 kE對消息力口密。第五,加密的結果被輸出作為R||encrypted_message, 即與被加密的消息相連接的隨機點R。
為了使用ECIES解密消息,智能卡執行下述步驟。第一,導出 共享秘密S = PX,其中P= (Px, Py) - dreceiver'R。第二, KDF被用 于通過計算kE = KDF (S)推導對稱加密密鑰。第三,通過計算E" (kE; encrypted_message ) 4吏用加密密鑰kE對消息解密。
數字簽名是一種用于模擬紙張上的手寫簽名的安全特性的非對 稱加密法。數字簽名提供了消息的認證。 一種已知的基于橢圓曲線加 密法的公共密鑰簽名算法是橢圓曲線數字簽名算法(ECDSA)。 ECDSA在例如ANSI X9.62, FIPS 186-2, IEEE P1363和ISO 15946-2 中被標準化,上述文獻通過引用而全部并入本申請。ECDSA在簽名/
驗證處理中使用發送者的私有密鑰(由參數d,der表示)和公共密鑰 (由參數Q卿der表示)。此處,參數d鄉der典型地為區間l,ll-l]中隨 機選擇的整數。參數Q sender
典型地等于d鄉der'G。
為了使用ECDSA數字地簽名一個消息,前端系統執行下述步 驟。第一,將消息的散列e計算為e = H (message),其中H是諸如 FIPS PUB 180-1中限定的SHA-1的加密散列函數。第二,從[l,n-l
中選擇隨機整數k。第三,計算簽名分量rsi,ture-A (mod n),其
中(Xl, yi) =k'G。如果 等于o,則重復第二步驟。第四,
計算簽名分量
^signature
=k_1*(e+rsignature*dsender)(mod n)。如果Ssignature等 于0,則重復第二步驟。第五,得到的簽名作為 I"signature||Ssignature
輸出,
即與簽名分量Ss—ture相連接的簽名分量
為了驗證使用ECDSA的消息的數字簽名,智能卡執行下述步 驟。第一,驗證簽名分量 ^signature 和簽名分量 ^signature
是l,n-l中的整
數。如果不是,則簽名無效。第二,將消息的散列e計算為e = H(message),其中H是簽名產生中使用的相同函數。第三,計算w =ssignature-1(mod n)。第四,計算w = e*w(mod n)和u2=rsignature*w(mod n)。第五,計算(x" yj = urG十u2'Qsender。第六,如果x產rsignature(mod n)則總結簽名有效;否則,無效。
加密和數字簽名數據兩者的處理也已知為簽密。
在圖1A中,示出了在應用ECIES加密之前和之后的EMM或 ECM的現有4支術例子。該例子中的未加密的ECM/EMM 10具有6 字節頭部11和50字節的凈荷12。使用ECIES和192字節的公共密 鑰對凈荷12加密。這也被認為是使用ECC-192的加密。得到的加 密的EMM/ECM20包含頭部11、48字節的隨機點R=(Rx,Ry)21和50 字節的加密的凈荷22。因此,由于隨機點R21的48字節的開銷,該 例子中的加密的EMM/ECM包20在加密之后變長了 48字節。可以 使用不同大小的公共密鑰,得到不同大小的隨機點R = (Rx,Ry)。
在圖1B中,示出了在應用ECDSA數字簽名之前和之后的加密 的EMM或ECM的現有技術例子。該例子中的加密的EMM/ECM 20 具有6字節頭部11和48字節的隨機點R(Rx,Ry)21和50字節的加密 凈荷22。使用ECDSA和192字節的公共密鑰對加密的EMM/ECM 數字簽名。這也被認為是使用ECC-192的數字簽名。得到的簽名的 并加密的EMM/ECM 30包含加密的ECM 20、 24字節的簽名分量 rsignature31和24字節的簽名分量ssignature32。因此,由于簽名分量 rsignature31的24字節的開銷和簽名分量ssignature32的24字節的開銷, 該例子中的數字簽名并加密的ECM包30在數字簽名之后變長了 48 字節。可以使用不同大小的公共密鑰,得到不同大小的簽名分量。
ECIES和ECDSA增加了消息的大小。在ECC - 192的例子中, 在應用了 ECIES和ECDSA之后, 一共向消息添加了 96字節。對于 典型的數據包大小為184字節的EMM和ECM,該開銷相當大。
在EP0874307A1中,公開了 一種用于將橢圓曲線E上的點P乘 以值k,以推導點kP的方法。該方法僅,皮公開用于二元場正"m中的 橢圓曲線。該方法包括將數k表示為存儲在寄存器中的二進制位的向量,并且形成點對(P1, P2)的序列的步驟,其中點對相差最大為P, 并且其中通過從(mP,(m+l)P)計算(2mP,(2m+l)P),或從(mP,(m+l)P) 計算((2m+l)P,(2m+2)P)來選擇點對的連續序列。可在計算期間不使用 點的y坐標來進行計算,而允許在計算結束時抽取y坐標,從而避免 在計算期間使用逆運算,并且因此加速加密處理器的運行。
EP0874307Al還公開了 一種用于加速兩方之間的簽名驗證的方法。在 EP0874307A1中,由于通過加密和數字簽名消息而對消息添加的開 銷,簽密的消息不利地具有增加的大小。
發明內容
本發明的一個目的是提供一種用于基于橢圓曲線加密法對數據 進行加密和數字簽名的改進的方法。
^f艮據本發明的一個方面,提出了 一種用于基于橢圓曲線加密法處 理數據以獲得處理結果的方法。該方法包括使用隨機點R加密數據以 獲得加密的數據的步驟。該方法還包括使用隨機點R對加密的數據數 字簽名以獲得處理結果的步驟。
因此,本發明的包括基于橢圓曲線加密法對數據加密和數字簽名 的步驟的方法使得能夠產生再使用加密步驟中計算的隨機數據的數 字簽名,使得在簽密之后能夠具有減小的數據開銷。
權利要求2的實施例有利地使得能夠得到沒有隨機點R的y坐
標Ry和簽名分量rsign^re的處理結果。
權利要求3的實施例有利地使得能夠對授權管理消息或授權控 制消息簽密。
# 據本發明的一個方面,提出了 一種用于基于橢圓曲線加密法處 理數據以獲得處理結果的方法。該方法包括使用隨機點R驗證數據的 步驟。該方法還包括使用隨機點R對數據解密以獲得處理結果的方 法。
因此,本發明的包括基于橢圓曲線加密法驗證和解密作為簽密解密,由此在兩個步驟中都使用相同的隨機點R,使得能夠減小簽密 數據中的數據開銷。
權利要求6的實施例有利地使得能夠不用隨機點R的y坐標Ry 和簽名分量rsi^t,對數據進行簽名驗證和解密。
權利要求7的實施例有利地使得能夠對簽密的授權管理消息或 簽密的授權控制消息進行簽名驗證和解密。
權利要求4和8的實施例有利地使得能夠在條件訪問系統中使用 本發明的方法。
根據本發明的一個方面,提出了一種條件訪問系統,該系統包括 前端系統和一個或多個智能卡。該條件訪問系統被配置為執行上述步 驟中的一個或多個。因此,本發明的條件訪問系統有利地使得能夠以 簽密之后的減小的數據開銷來對數據進行簽密。
根據本發明的一個方面,提出了一種前端系統。該前端系統被配 置為執行上述步驟中的一個或多個,因此,本發明的前端系統有利地 使得能夠以簽密之后的減小的數據開銷進行簽密。
根據本發明的一個方面,提出了一種智能卡。該智能卡被配置為 執行上述步驟中的一個或多個,因此,本發明的智能卡有利地使得能 夠對具有減小的數據開銷的簽密的數據進行簽密驗證和解密。
在下文中,將更詳細地描述本發明的實施例。然而,應理解為這 些實施例不可被理解為限制本發明的保護范圍。
通過參照附圖所示的示例性實施例更詳細地描述本發明的方面,
其中
圖1A示出了在應用ECIES之前和之后的ECM或EMM的現有 技術例子;
圖IB示出了在應用ECDSA之前和之后的ECM或EMM的現 有技術例子;
圖2示出了本發明的示例性實施例的條件訪問系統的示意圖;圖3示出了包括本發明的示例性實施例的對數據加密和數字簽 名的步驟的方法的步驟;
圖4示出了包括本發明的示例性實施例的驗證和解密數據的步 驟的方法的步驟;以及
圖5示出了本發明的示例性實施例的在應用ECIES和ECDSA 之前和之后的ECM或EMM。
具體實施例方式
圖1A和1B示出了背景技術部分中已討論過的、在應用ECIES (圖1A)和ECDSA (圖IB)之前和之后的ECM或EMM的現有技 術例子。
本發明典型地應用于其中EMM和ECM以簽密形式被發射的條 件訪問系統。本發明不限于條件訪問系統中的應用,并且可用于其中 數據被簽密的任何系統。
在圖2中,示出了典型的條件訪問系統100。圖2僅示出了簽密 中涉及的主要元件,未示出的其它元件可以是條件訪問系統100的一 部分。在條件訪問系統100中,前端系統110通過廣播網絡130將簽 密的EMM和簽密的ECM發射至智能卡120。智能卡120例如位于 機頂盒(未示出)中,所述機頂盒用于接收簽密的EMM/ECM并將 簽密的EMM/ECM轉發至智能卡120。盡管圖2僅示出了 一個智能卡 120,典型地,條件訪問系統中存在有多于一個的智能卡。在多個智 能卡的情況下,前端系統110能夠將EMM/ECM發射至每一個智能 卡。
前端系統110包括處理器111、存儲器112、加密模塊113和數 字簽名模塊114。使用處理器111,加密模塊113從存儲器112讀取 明文EMM。參照圖5,明文EMM 40包含頭部部分41和凈荷部分 42。可供替換地,加密模塊113可從存儲器112讀取明文。使用處理 器111,明文EMM 40的凈荷部分42使用下述的改進的ECIES方案 被加密。得到的加密EMM 50包含頭部部分41、加密的凈荷部分52和隨機點R的x坐標Rx51。下面,加密的EMM5(H皮傳遞至數字簽 名模塊114。存儲器112可被用于暫時存儲加密的EMM 50。下面, 使用處理器111,使用下述改進的ECDSA算法在數字簽密模塊114 中對加密的EMM 50數字簽名。得到的簽密的EMM 60包含頭部部 分41、加密的凈荷52、僅隨機點R的x坐標Rx 51和僅簽名的簽名 分量ssignatu" 61。簽密的EMM 60通過廣播網絡130被發射至智能卡 120。
智能卡120包括處理器121、存儲器122、簽密驗證模塊123和 解密模塊124。通過機頂盒(未示出),智能卡接收簽密的EMM 60 并將其存儲在存儲器122中。使用處理器121,從存儲器122讀取簽 密的EMM 60,并使用下述的改進的ECDSA算法在簽名驗證模塊123 中對其進行驗證。如果簽密的EMM60被驗證為可信,則使用下述的 改進的ECIES方案在解密模塊124中對簽密的EMM 60的加密的凈 荷部分52進行解密。其結果是,獲得明文EMM的凈荷部分42。
參照圖3,根據本發明加密IOOO和數字簽名2000數據使用改進 的ECIES方案和改進的ECDSA方案。為了簽密EMM,前端系統110 使用下述信息作為輸入
明文EMM40,例如,如圖5所示的,包含頭部部分41和凈荷 部分42;
橢圓曲線域參數p、 a、 b、 G、 n和h,其中h具有小值,優選 地低于5并且在下面的例子中為值1;
接收智能卡120的公共密鑰Qreceiver,該密鑰具有都在由域參數 限定的橢圓曲線上x和y坐標的隨機點;以及
發射前端系統110的私有密鑰dsender,該密鑰是一個整數。
在簽密EMM的加密部分IOOO中,在步驟1001中產生隨機數r, 并在步驟1002中計算隨機點R=r'G=(Rx,Ry)。下面,在步驟1003中 推導共享秘密S = PX,其中P=(Px,Py)=r'Qreceiver。在步驟1004中,檢 查P是否是無窮大的點。如果是,則重復步驟1001。否則,在步驟 1005中推導對稱加密密鑰kE-KDF (S)。在步驟1006中,使用加密密鑰kE對EMM 40的凈荷部分42進行加密。得到的加密的EMM 50包含頭部部分41、隨機點R的x坐標Rx 51和加密凈荷52。
在簽密EMM的數字簽名部分2000中,例如SHA-1的散列函數 被用于計算2001加密EMM 50的散列值e,即計算e = H(加密EMM 50)。在步驟2002中,如簽密EMM的加密部分1000中所使用的, 使用相同的隨機數r和x坐標Rx計算簽名分量S
signature) 即 Ssignature
被計算2002為Ssig肌tun^r-"(e+R,d鄉der)。在步驟2003中,檢查s是 否等于0。如果是,則重復步驟l。得到的簽密的EMM 60包含頭部 部分41、隨機點R的x坐標Rx 51、加密凈荷52和簽名分量Ssignature61。 參照圖4,根據本發明驗證3000和解密4000數據使用改進的 ECIES方案和改進的ECDSA方案。為了驗證和解密EMM,智能卡 120使用下述信息作為輸入
■ 簽密的EMM60,例如,如圖5所示,包含頭部部分41、隨 機點R的x坐標Rx51、加密凈荷部分52和簽名分量Ssignature61;
■ 相同的橢圓曲線域參數p、 a、 b、 G、 n和h,如簽密EMM 使用的;
■發射前端系統110的公共密鑰Qsender,該密鑰是具有由域參 數限定的橢圓曲線上的x和y坐標的隨機點;以及
■接收智能卡120的私有密鑰d自der,該密鑰是一個整數。
在驗證部分3000中,在步驟3001中驗證接收的隨機點R的x 坐標Rx51和簽名分量Ssignature61是否是范圍[l,n-l中的整數。如果不 是,則簽密EMM 60不可信,即其與如前端系統110創建的簽密EMM 不同。放棄并且不進一步處理非可信的EMM。否則,在步驟3002中, 為加密的EMM 50 (即,沒有簽名分量ssignature61的簽密的EMM 60 ) 計算散列值e = H (加密EMM 50)。此處,H是與簽名產生中使用 的相同的函數,例如,相同的SHA-1函數。在步驟3003中,計算 w=ssignature"(mod n)。在步驟3004中,計算U][ = e*w(mod n)和 u2=Rx*w(mod n)。在步驟3005中,計算(A,yO-urG十u2'Qsender。在步 驟3006中,驗證是否Xl = Rx(modn)。如果不是,則簽密EMM60不可信,即其與如前端系統110創建的簽密EMM不同。放棄并且不進 一步處理非可信的EMM。否則簽密的EMM60是可信的并且可被解密。
在解密部分4000中,從Rx計算隨機點R的y坐標Ry,并且在 步驟4001中構建點R,-(Rx,R,y)。R,y可以等于Ry或-Ry,在步驟4002
中,計算P,-(Px,P,y)-dreceiver'R,。在步驟4003中,驗證P是否為無
窮大的點。如果是,則放棄并且不進一步處理簽密的EMM。否則通 過計算KE = KDF (Px)來推導4004對稱加密密鑰KE。利用推導的 KE,在步驟4005中對簽密的EMM 60的加密的凈荷部分52解密, 并獲得明文凈荷42。
本發明不限于給出的例子。如圖3和4示出的加密部分1000、 數字簽名部分2000、驗證部分3000和解密部分4000可例如對于相同 的輸入,使用不同的計算步驟來達到相同結果。
權利要求
1.一種用于基于橢圓曲線加密法處理數據以獲得處理結果的方法,該方法包括下述步驟使用隨機點R對數據進行加密以獲得加密的數據;以及使用隨機點R對加密的數據進行數字簽名以獲得處理結果。
2. 根據權利要求1所述的方法,其中,對數據進行加密的步驟使用橢圓曲線整體加密方案,其中 隨機數r被用于計算隨機點R,并且其中隨機點R的x坐標Rx和加 密數據形成加密結果,并且其中對加密的數據進行數字簽名的步驟使用橢圓曲線數字 簽名算法,其中計算加密結果的散列,并且其中隨機數r和隨機點R 的x坐標Rx被用于計算簽名的簽名分量ssignature,并且輸出包括加密數據、僅隨機點R的x坐標Rx和僅簽名的簽名分量 ^signature的處理結果。
3. 根據權利要求1或權利要求2的方法,其中對數據進行加密的步驟包括對授權管理消息或授權控制消 息的凈荷部分進行加密以獲得加密凈荷部分,并且其中對加密數據進行數字簽名的步驟包括對授權管理消息 或授權控制消息的加密的凈荷部分和頭部部分進行數字簽名,以獲得 簽密的授權管理消息或簽密的授權控制消息。
4. 根據權利要求3所述的方法,其中該方法的各步驟在條件訪 問系統的前端系統中執行,并且該方法還包括將簽密的授權管理消息 或簽密的授權控制消息從前端系統發射至智能卡的步驟。
5. —種用于基于橢圓曲線加密法處理數據以獲得處理結果的方 法,該方法包括下述步驟使用隨機點R來驗證數據;以及使用隨機點R對數據進行解密以獲得處理結果。
6. 根據權利要求5所述的方法,其中該數據包括加密數據、僅隨機點R的x坐標Rx和僅簽名的 簽名分量Ssignatur"其中驗證數據的步驟使用橢圓曲線數字簽名算法,其中隨機點R 的x坐標Rx被用作簽名的簽名分量rsignature>而簽名分量 和^signature 被用于計算簽名的有效性;并且其中,對數據進行解密的步驟使用橢圓曲線整體加密方案,其中隨機點R的x坐標Rx被用于計算隨機點R的y坐標Ry。
7. 根據權利要求5或權利要求6所述的方法,其中,驗證數據的步驟包括驗證簽密的授權管理消息或簽密的授 權控制消息的加密的凈荷部分和頭部部分;并且其中,對數據進行解密的步驟包括解密簽密的授權管理消息 或簽密的授權控制消息的凈荷部分,以獲得解密的授權管理消息或解 密的授權控制消息。
8. 根據權利要求7所述的方法,其中該方法的步驟在條件訪問 系統的智能卡中執行,并且該方法還包括從前端系統接收簽密的授權 管理消息或簽密的授權控制消息的步驟。
9. 一種條件訪問系統,該系統包括前端系統和一個或多個智能 卡,其中該前端系統被設置為執行權利要求4所述的步驟,并且該一 個或多個智能卡被配置為執行權利要求8的步驟。
10. —種被配置為執行權利要求1 - 4中任一個所述的步驟的前 端系統。
11. 一種被配置為執行權利要求5-8中任一個所述的步驟的智能卡。
全文摘要
本發明提供了一種用于基于橢圓曲線加密法簽密數據的方法和系統。在前端系統中,使用隨機點R對數據加密,并且使用隨機點R對數據數字簽名。在對數據簽密之后,僅隨機點R的x坐標R<sub>x</sub>和僅簽名的簽名分量s<sub>signature</sub>被添加至數據。在智能卡中,使用隨機點R驗證簽密的數據,并使用隨機點R解密簽密的數據。
文檔編號H04L9/30GK101645773SQ200910159690
公開日2010年2月10日 申請日期2009年7月31日 優先權日2008年8月5日
發明者徐勝波 申請人:耶德托存取公司