專利名稱:使用橢圓曲線的信息傳輸系統(tǒng)、加密設(shè)備和解密設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及秘密信息傳輸技術(shù),該技術(shù)將密碼術(shù)用于信息安全。
背景技術(shù):
近幾年中,密碼術(shù)用于各個領(lǐng)域,以安全地進行通信,而不向第三方暴露通信內(nèi)容。
例如,當傳送存儲介質(zhì),例如DVD時,其中DVD上記錄了諸如音樂或電影的內(nèi)容,或者當向許多用戶通過網(wǎng)絡(luò)傳輸該內(nèi)容時,該內(nèi)容被加密,以防止未授權(quán)使用。
主要具有兩種類型的密碼術(shù)秘密密鑰密碼術(shù)和公共密鑰密碼術(shù)。在秘密密鑰密碼術(shù)中,加密和解密使用相同的密鑰。因此,發(fā)送器(執(zhí)行加密)和接收器(執(zhí)行解密)必須預先共享密鑰。而在公共密鑰密碼術(shù)中,加密和解密使用不同的密鑰,并且解密密鑰保密,而加密密鑰公開。
DES(數(shù)據(jù)加密標準)是一種秘密密鑰密碼術(shù)。DES是塊密碼,它使用明文、密文和密鑰,其中明文、密文和密鑰每個都是64比特長。在DES中,首先對明文塊進行初始置換,該初始置換改變比特的順序,使得相鄰比特被以大約32個比特分隔開。然后對置換后的塊進行16輪相同的轉(zhuǎn)換。
橢圓曲線ElGamal是一種公共密鑰密碼術(shù)。通過將有限域內(nèi)ElGamal密碼的乘法運算應(yīng)用于橢圓曲線上的加法運算,來構(gòu)建橢圓曲線ElGamal。
橢圓曲線ElGamal如下所述接收器(用于執(zhí)行解密)秘密地持有橢圓曲線ElGamal的秘密密鑰ks。
發(fā)送器(用于執(zhí)行加密)持有與秘密密鑰ks對應(yīng)的公共密鑰KP
KP=ks*G其中G是橢圓曲線ElGamal中橢圓曲線上的基點,ks*G是通過將G與其自身相加(ks-1)倍所獲得橢圓曲線上的點。
這樣,該發(fā)送器通過下述方式從明文KC產(chǎn)生密文EKC。
(步驟1)產(chǎn)生隨機數(shù)字k,計算PC=k*G。
(步驟2)計算k*KP。
(步驟3)將明文KC轉(zhuǎn)換為橢圓曲線上的點P_KC=f(KC)。將在后面解釋這里使用的轉(zhuǎn)換函數(shù)f。
(步驟4)計算C=P_KC+k*KP。
(步驟5)將PC和C作為密文EKC發(fā)送。
該接收器通過下述方式從密文EKC中產(chǎn)生解密文本KC’。
(步驟1)利用密文EKC中包含的PC,計算ks*PC。
(步驟2)計算P_KC’=C-ks*PC,并將P_KC’轉(zhuǎn)換為整數(shù),以獲得解密文本KC’=f-1(P_KC’)。這里,f-1是轉(zhuǎn)換函數(shù)f的逆。解密文本KC’預期等于明文KC,這是由于以下原因由于ks*PC=ks*k*G=k*KP成立,P_KC’=C-ks*PC=P_KC+k*KP-ks*PC=P_KC這樣,點P_KC’等于點P_KC。相應(yīng)的,KC’等于KC。
轉(zhuǎn)換函數(shù)f將整數(shù)轉(zhuǎn)換為橢圓曲線上對應(yīng)的點,其中該整數(shù)具有的比特長度小于橢圓曲線的定義域。而逆轉(zhuǎn)換函數(shù)f-1將橢圓曲線上的點轉(zhuǎn)換為對應(yīng)的整數(shù),其中該整數(shù)具有的比特長度小于定義域。轉(zhuǎn)換函數(shù)f是單射函數(shù)(injection)??梢允褂萌魏魏瘮?shù),只要f-1(f(v))=v,其中v是整數(shù)。在Neal Koblitz的A Course in Number Theory andCryptography,Springer-Verlag,1987,pp.162-163中詳細描述了轉(zhuǎn)換函數(shù)。
下面分析上述橢圓曲線ElGamal密碼中密文的數(shù)據(jù)長度。
為了簡單起見,令橢圓曲線的定義域是160個比特,這是橢圓曲線密碼術(shù)中通常推薦的參數(shù)。
密文EKC由點C和PC組成。點C和PC每個都由x坐標和y坐標構(gòu)成。相應(yīng)的,點C和PC每個都是320比特長。所以,密文EKC是320+320=640比特(=80字節(jié))。
DES產(chǎn)生的密文的長度等于明文,而橢圓曲線ElGamal產(chǎn)生的密文是明文大小的四倍。
這樣,當與其他密碼術(shù)諸如DES進行比較時,橢圓曲線ElGamal實現(xiàn)了更高等級的安全性,但是它具有的問題是當密鑰長度相等時,密文的長度更長。
注意,傳統(tǒng)技術(shù)描述于下列文獻中T.Okamoto & H.Yamamoto,Modern Encryption,Sangyo Tosho,1997;Henri Cohen,A Course inComputational Algebraic Number Theory(Graduate Texts in Mathematics,vol 138),Springer-Verlag,1993,pp.31-33;Michael Rosing,ImplementingElliptic Curve Cryptography,Manning,1998,pp180-181;Neal Koblitz,A Course in Number Theory and Cryptography,Springer-Verlag,1987,pp.162-163;以及美國專利No.6199086。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種信息傳輸系統(tǒng)、一種加密設(shè)備、一種解密設(shè)備、一種加密方法、一種解密方法和一種計算機可讀程序,使得當使用橢圓曲線密碼術(shù)時,密文的長度能夠減小。
上述目的可以通過一種信息傳輸系統(tǒng)實現(xiàn),該信息傳輸系統(tǒng)利用作為安全性基礎(chǔ)的橢圓曲線離散對數(shù)問題,保密地傳輸信息,該信息傳輸系統(tǒng)包括加密設(shè)備和解密設(shè)備,加密設(shè)備包括存儲單元,用于存儲明文;加密單元,用于對明文執(zhí)行橢圓曲線加密,以及產(chǎn)生密文,該密文包括橢圓曲線上的加密點的x坐標,該加密點是通過橢圓曲線加密而產(chǎn)生的;輸出單元,用于輸出密文,并且解密設(shè)備包括獲取單元,用于獲得密文;解密單元,用于利用獲取的密文中包含的x坐標,計算橢圓曲線上加密點的y坐標,并利用加密點和獲取的密文中包含的其他信息,執(zhí)行橢圓曲線解密,以產(chǎn)生解密的文本。
根據(jù)這種結(jié)構(gòu),加密設(shè)備輸出密文,該密文包括橢圓曲線點的x坐標,但不包括橢圓曲線點的y坐標。解密設(shè)備根據(jù)接收的密文中包含的x坐標,計算橢圓曲線點的y坐標,并利用計算的橢圓曲線點執(zhí)行解密。這樣,可以減小被傳輸?shù)拿芪牡臄?shù)據(jù)長度。
這里,加密設(shè)備中的存儲單元中存儲的明文可以是標量,其中加密單元包括隨機數(shù)產(chǎn)生單元,用于產(chǎn)生隨機數(shù),該隨機數(shù)是標量;第一計算單元,用于將橢圓曲線上的基點乘以該隨機數(shù);第二計算單元,用于將橢圓曲線上的公共密鑰點乘以該隨機數(shù);轉(zhuǎn)換單元,用于對明文應(yīng)用轉(zhuǎn)換函數(shù),以產(chǎn)生橢圓曲線上的明文點,其中該轉(zhuǎn)換函數(shù)用于將標量轉(zhuǎn)換為橢圓曲線上的對應(yīng)點;第三計算單元,用于通過明文點和相乘后的公共密鑰點相加,計算求和點;以及產(chǎn)生單元,用于產(chǎn)生密文,該密文包括求和點以及相乘后的基點的x坐標,其中相乘后的基點是加密點。
這里,第三計算單元可以判斷預定條件是否滿足,如果判斷是肯定的,那么設(shè)定明文點和相乘后的公共密鑰點的和作為求和點,如果判斷是否定的,那么設(shè)定明文點和相乘后的公共密鑰點的和的對應(yīng)負點作為求和點。
這里,可以通過下式在有限域GF(P)上定義橢圓曲線y2=x3+a×x+b其中p是素數(shù),其中第三計算單元判斷相乘后的基點的y坐標是否小于(p-1)/2,作為預定條件。
這里,解密設(shè)備中的獲取單元可以從上述的加密設(shè)備獲取密文,其中解密單元包括平方根計算單元,用于將所獲取的密文中包含的x坐標代入式y(tǒng)2=x3+a×x+b中,以得到兩個解y,選擇兩個解y中小于(p-1)/2的一個,并產(chǎn)生第一解密點,該第一解密點由所獲取的密文中包含的x坐標和選擇作為y坐標的解y組成;標量乘法單元,用于將第一解密點乘以秘密密鑰,以產(chǎn)生第二解密點,該秘密密鑰是標量,公共密鑰點是通過將橢圓曲線上的基點乘以秘密密鑰而已經(jīng)產(chǎn)生的;解密的文本計算單元,用于從所獲得的密文中包含的求和點中減去第二解密點,并對作為減法結(jié)果所獲得的點應(yīng)用逆轉(zhuǎn)換函數(shù),以產(chǎn)生解密的文本,該逆轉(zhuǎn)換函數(shù)用于將橢圓曲線上的點轉(zhuǎn)換為對應(yīng)的標量。
根據(jù)這些結(jié)構(gòu),本發(fā)明能夠應(yīng)用于GF(p)上的橢圓曲線。
這里,加密設(shè)備中的存儲單元中存儲的明文可以是標量,其中加密單元包括隨機數(shù)產(chǎn)生單元,用于產(chǎn)生隨機數(shù),該隨機數(shù)是標量;第一計算單元,用于將橢圓曲線上的基點乘以隨機數(shù);第二計算單元,用于將橢圓曲線上的公共密鑰點乘以隨機數(shù);轉(zhuǎn)換單元,用于對明文應(yīng)用轉(zhuǎn)換函數(shù),以產(chǎn)生橢圓曲線上的明文點,該轉(zhuǎn)換函數(shù)用于將標量轉(zhuǎn)換為橢圓曲線上的對應(yīng)點;第三計算單元,用于利用明文點和相乘后的公共密鑰點相加,計算求和點;以及產(chǎn)生單元,用于產(chǎn)生密文,該密文包括求和點以及相乘后的基點的x坐標,該相乘后的基點是加密點。
這里,第三計算單元可以判斷預定條件是否滿足,如果判斷是肯定的,那么設(shè)定明文點和相乘后的公共密鑰點的和作為求和點,如果判斷是否定的,那么設(shè)定明文點和相乘后的公共密鑰點的和的對應(yīng)負點作為求和點。
這里,可以通過下式在有限域GF(2m)上定義橢圓曲線y2+xy=x3+ax2+b其中m是自然數(shù),GF(2m)上的生成多項式用根為α的f(x)表示,其中,作為預定條件的是第三計算單元判斷相乘后的基點的y坐標的α生成多項式中的項αs的系數(shù)是否等于相乘后的基點的x坐標的α生成多項式中的項αs的系數(shù),其中s表示相乘后的基點的x坐標的α生成多項式中的非零系數(shù)項中的最低次數(shù)。
這里,解密設(shè)備中的獲取單元可以從上述加密設(shè)備獲取密文,其中解密單元包括檢測單元,用于檢測所獲得的密文中包含的x坐標的α生成多項式中的非零系數(shù)項中的最低次數(shù)s;求解單元,用于將所獲得的密文中包含的x坐標代入式y(tǒng)2+xy=x3+ax2+b中,以得到兩個解y,從兩個解y中選擇一個解y,該解的α生成多項式包括的項αs的系數(shù)等于所獲得的密文中包含的x坐標的α生成多項式中的項αs的系數(shù),以及產(chǎn)生第一解密點,該第一解密點由所獲得的密文中包含的x坐標和選擇作為y坐標的解y組成;標量乘法單元,用于將第一解密點乘以秘密密鑰,以產(chǎn)生第二解密點,該秘密密鑰是標量,公共密鑰點是通過將橢圓曲線上的基點乘以秘密密鑰而已經(jīng)產(chǎn)生的;以及解密的文本計算單元,用于從所獲得的密文中包含的求和點中減去第二解密點,并對作為減法結(jié)果所獲得的點應(yīng)用逆轉(zhuǎn)換函數(shù),以產(chǎn)生解密的文本,該逆轉(zhuǎn)換函數(shù)用于將橢圓曲線上的點轉(zhuǎn)換為對應(yīng)的標量。
根據(jù)這些結(jié)構(gòu),本發(fā)明還應(yīng)用于GF(2m)上的橢圓曲線。
這里,通過下式在有限域GF(p)上定義橢圓曲線y2=x3+a×x+b其中p是素數(shù),其中加密設(shè)備中的存儲單元中存儲的明文是標量,并且加密單元包括隨機數(shù)產(chǎn)生單元,用于產(chǎn)生隨機數(shù),該隨機數(shù)是標量;第二計算單元,用于將橢圓曲線上的公共密鑰點乘以隨機數(shù);轉(zhuǎn)換單元,用于對明文應(yīng)用轉(zhuǎn)換函數(shù),以產(chǎn)生橢圓曲線上的明文點,該轉(zhuǎn)換函數(shù)用于將標量轉(zhuǎn)換為橢圓曲線上的對應(yīng)點;第三計算單元,用于將明文點和相乘后的公共密鑰點相加,以獲得求和點;第一計算單元,用于判斷求和點的y坐標是否小于(p-1)/2,如果判斷是肯定的,則將橢圓曲線上的基點乘以隨機數(shù),如果判斷是否定的,則將橢圓曲線上的基點乘以隨機數(shù)的對應(yīng)負數(shù);產(chǎn)生單元,用于產(chǎn)生密文,該密文包括相乘后的基點以及求和點的x坐標,其中求和點是加密點。
這里,解密設(shè)備中的獲取單元可以從上述加密設(shè)備中獲得密文,其中解密單元包括平方根計算單元,用于將所獲得的密文中包含的x坐標代入式y(tǒng)2=x3+a×x+b中,以得到兩個解y,選擇兩個解y中小于(p-1)/2的一個,并產(chǎn)生第一解密點,該第一解密點由所獲得的密文中包含的x坐標和選擇作為y坐標的解y組成;標量乘法單元,用于將所獲得的密文中包含的相乘后的基點乘以秘密密鑰,以產(chǎn)生第二解密點,該秘密密鑰是標量,公共密鑰點是通過將橢圓曲線上的基點乘以秘密密鑰而已經(jīng)產(chǎn)生的;以及解密的文本計算單元,用于從第一解密點中減去第二解密點,并對作為減法結(jié)果所獲得的點應(yīng)用逆轉(zhuǎn)換函數(shù),以產(chǎn)生解密的文本,該逆轉(zhuǎn)換函數(shù)用于將橢圓曲線上的點轉(zhuǎn)換為對應(yīng)的標量。
根據(jù)這些結(jié)構(gòu),本發(fā)明可以應(yīng)用于GF(p)上的橢圓曲線。
這里,通過下式可以在有限域GF(p)上定義橢圓曲線y2=x3+a×x+b其中p是素數(shù),其中加密設(shè)備中的存儲單元中存儲的明文是標量,并且加密單元包括隨機數(shù)產(chǎn)生單元,用于產(chǎn)生隨機數(shù),該隨機數(shù)是標量;第一計算單元,用于將橢圓曲線上的基點乘以該隨機數(shù);第二計算單元,用于將橢圓曲線上的公共密鑰點乘以該隨機數(shù);第三計算單元,用于將明文和相乘后的公共密鑰點的x坐標進行異或運算;以及產(chǎn)生單元,用于產(chǎn)生密文,該密文包括作為異或運算結(jié)果獲得的異或值以及相乘后的基點的x坐標,其中相乘后的基點是加密點。
這里,解密設(shè)備中的獲取單元可以從上述的加密設(shè)備中獲得密文,其中解密單元包括平方根計算單元,用于將所獲得的密文中包含的x坐標代入式y(tǒng)2=x3+a×x+b中,以得到兩個解y,從兩個解y選擇小于(p-1)/2的一個,并產(chǎn)生第一解密點,該第一解密點由所獲得的密文中包含的x坐標和選擇作為y坐標的解y組成;標量乘法單元,用于將第一解密點乘以秘密密鑰,以產(chǎn)生第二解密點,該秘密密鑰是標量,公共密鑰點是通過將橢圓曲線上的基點乘以秘密密鑰而已經(jīng)產(chǎn)生的;以及解密的文本計算單元,用于對所獲得的密文中包含的異或值和第二解密點的x坐標進行異或運算,以產(chǎn)生解密的文本。
根據(jù)這些結(jié)構(gòu),被傳輸?shù)拿芪牡臄?shù)據(jù)長度可以進一步減小。
這里,加密設(shè)備中的存儲單元中存儲的明文可以是內(nèi)容密鑰,其中加密單元通過對內(nèi)容密鑰進行加密產(chǎn)生密文,加密設(shè)備還包括內(nèi)容加密單元,用于利用內(nèi)容密鑰對內(nèi)容進行加密;以及內(nèi)容輸出單元,用于輸出加密的內(nèi)容。
這里,解密設(shè)備中的獲取單元可以從上述加密設(shè)備中獲得密文和加密的內(nèi)容,其中解密單元對密文進行解密,以產(chǎn)生解密的文本,該解密的文本是解密的內(nèi)容密鑰,解密設(shè)備還包括內(nèi)容解密單元,用于利用解密的內(nèi)容密鑰,對加密的內(nèi)容進行解密,以產(chǎn)生解密的內(nèi)容;以及內(nèi)容再現(xiàn)單元,用于再現(xiàn)解密的內(nèi)容。
根據(jù)這些結(jié)構(gòu),當利用內(nèi)容密鑰對內(nèi)容進行加密,以及利用內(nèi)容密鑰對加密的內(nèi)容進行解密時,作為被傳輸密文的加密的內(nèi)容密鑰的數(shù)據(jù)長度會減小。
這樣,通過省略密文中橢圓曲線點的y坐標,可以減小被傳輸密文的數(shù)據(jù)長度。
圖1表示本發(fā)明的第一實施例涉及的內(nèi)容傳送系統(tǒng)的結(jié)構(gòu);圖2表示圖1所示的內(nèi)容傳送設(shè)備的結(jié)構(gòu)的模塊圖;圖3表示從內(nèi)容傳送設(shè)備中的發(fā)送/接收單元發(fā)送至每個內(nèi)容接收設(shè)備的傳輸信息的數(shù)據(jù)結(jié)構(gòu);圖4表示圖1所示的內(nèi)容接收設(shè)備的結(jié)構(gòu)的模塊圖;圖5表示圖1所示的內(nèi)容傳送系統(tǒng)整體運行的流程圖;圖6表示通過圖2所示的內(nèi)容傳送設(shè)備中的密鑰信息產(chǎn)生單元產(chǎn)生加密的內(nèi)容密鑰信息EKC的運算的流程圖;圖7表示通過密鑰信息產(chǎn)生單元中的密鑰加密單元產(chǎn)生加密的內(nèi)容密鑰EKCi的運算的流程圖;圖8表示通過圖4所示的內(nèi)容接收設(shè)備中的密鑰解密單元產(chǎn)生解密的內(nèi)容密鑰KC’的運算的流程圖;圖9表示本發(fā)明的第二實施例中從內(nèi)容傳送設(shè)備中的發(fā)送/接收單元發(fā)送至每個內(nèi)容接收設(shè)備的傳輸信息的數(shù)據(jù)結(jié)構(gòu);圖10表示通過第二實施例的內(nèi)容傳送設(shè)備中的密鑰信息產(chǎn)生單元中的密鑰加密單元產(chǎn)生加密的內(nèi)容密鑰EKCi的運算的流程圖;圖11表示通過第二實施例的內(nèi)容接收設(shè)備中的密鑰解密單元產(chǎn)生解密的內(nèi)容密鑰KC’的運算的流程圖;圖12表示本發(fā)明的第三實施例的內(nèi)容傳送設(shè)備中的密鑰信息產(chǎn)生單元的結(jié)構(gòu)的模塊圖;圖13表示在第三實施例中從內(nèi)容傳送設(shè)備中的發(fā)送/接收單元發(fā)送至每個內(nèi)容接收設(shè)備的傳輸信息的數(shù)據(jù)結(jié)構(gòu);圖14表示第三實施例的內(nèi)容接收設(shè)備中的密鑰解密單元的結(jié)構(gòu)的模塊圖;圖15表示通過圖12所示的密鑰信息產(chǎn)生單元產(chǎn)生加密的內(nèi)容密鑰信息EKC的運算的流程圖;圖16表示通過圖14所示的密鑰解密單元產(chǎn)生解密的內(nèi)容密鑰KC’的運算的流程圖。
本發(fā)明的最佳實施方式1.第一實施例下面描述本發(fā)明第一實施例涉及的內(nèi)容傳送系統(tǒng)10。
1.1內(nèi)容傳送系統(tǒng)10的結(jié)構(gòu)圖1表示內(nèi)容傳送系統(tǒng)10的結(jié)構(gòu)。如圖所示,內(nèi)容傳送系統(tǒng)10大致由一個內(nèi)容傳送設(shè)備100和n個內(nèi)容接收設(shè)備2001,2002,...,200i,...,200n組成。這里,n是自然數(shù)。例如,當n=1000000時,內(nèi)容傳送系統(tǒng)10包括1000000個內(nèi)容接收設(shè)備。內(nèi)容傳送設(shè)備100經(jīng)由因特網(wǎng)20連接至內(nèi)容接收設(shè)備2001,2002,...,200n。
內(nèi)容傳送設(shè)備100產(chǎn)生作為數(shù)字電影作品等的內(nèi)容C的內(nèi)容密鑰KC,并根據(jù)秘密密鑰密碼的加密算法Enc1,利用內(nèi)容密鑰KC對內(nèi)容C進行加密,以產(chǎn)生加密的內(nèi)容EC。內(nèi)容傳送設(shè)備100也根據(jù)公共密鑰密碼的加密算法Enc2對內(nèi)容密鑰KC進行加密,以產(chǎn)生加密的內(nèi)容密鑰信息EKC,并將加密的內(nèi)容EC和加密的內(nèi)容密鑰信息EKC經(jīng)由因特網(wǎng)20發(fā)送至每個內(nèi)容接收設(shè)備2001,2002,...,200n。
內(nèi)容接收設(shè)備2001經(jīng)由因特網(wǎng)20從內(nèi)容傳送設(shè)備100接收加密的內(nèi)容EC和加密的內(nèi)容密鑰信息EKC,并根據(jù)公共密鑰密碼的解密算法Dec2對加密的內(nèi)容密鑰信息EKC進行解密,以產(chǎn)生解密的內(nèi)容密鑰KC’。然后內(nèi)容接收設(shè)備2001根據(jù)秘密密鑰密碼的解密算法Dec1,利用解密的內(nèi)容密鑰KC’,對加密的內(nèi)容EC進行解密,以產(chǎn)生解密的內(nèi)容C’,并再現(xiàn)解密的內(nèi)容C’。其他內(nèi)容接收設(shè)備2002,...,200n與內(nèi)容接收設(shè)備2001相同。
這里,解密算法Dec1是用于解密根據(jù)加密算法Enc1產(chǎn)生的密文的算法,解密算法Dec2是用于解密根據(jù)加密算法Enc2產(chǎn)生的密文的算法。
應(yīng)該注意到,內(nèi)容接收設(shè)備2001,2002,...,200n中每個的參考標記的下標是設(shè)備ID號,該號碼用于唯一地識別內(nèi)容接收設(shè)備。例如,內(nèi)容接收設(shè)備200i由設(shè)備ID號“i”唯一識別。
1.2橢圓曲線密碼術(shù)以及橢圓曲線參數(shù)在內(nèi)容傳送系統(tǒng)10中,橢圓曲線密碼術(shù)用作上述公共密鑰密碼。T.Okamoto & H.Yamamoto,Modern Encryption,Sangyo Tosho,1997中詳細的描述了橢圓曲線密碼術(shù)。下面簡要解釋在內(nèi)容傳送系統(tǒng)10中使用的橢圓曲線E1的參數(shù)。
令橢圓曲線E1由下式定義y2=x3+a×x+b其中x和y是變量,a和b是常數(shù)。同時,a×x表示a和x相乘。常數(shù)a和b是自然數(shù)。單個橢圓曲線E1由a和b這些常數(shù)確定。通常,橢圓曲線E1定義在定義域GF(pm)上,該定義域是有限域,其中p是素數(shù),m是自然數(shù)。為了簡單起見,令m=1,使得橢圓曲線E1的定義域是GF(p)。
1.3橢圓曲線離散對數(shù)問題離散對數(shù)問題用作公共密鑰密碼術(shù)的安全性的基礎(chǔ)。離散對數(shù)問題的代表示例是定義在有限域上的問題以及定義在橢圓曲線上的問題。在Neal Koblitz,A Course in Number Theory and Cryptography,Springer-Verlag,1987中詳細描述了離散對數(shù)問題。
橢圓曲線離散對數(shù)問題如下所述。
令E(GF(p))是定義在有限域GF(p)上的橢圓曲線,已知當E的階數(shù)可以被一個大的素數(shù)整除時,則橢圓曲線E上的點G被設(shè)為基點。這樣,問題是找到整數(shù)x,使得Y=x*G其中如果這樣的整數(shù)x存在,那么Y是E上給定的點。
離散對數(shù)問題有助于公共密鑰密碼學的安全性的原因是在具有大量元素的有限域GF(p)上進行上述x的計算非常困難。
1.4內(nèi)容傳送設(shè)備100的結(jié)構(gòu)圖2表示內(nèi)容傳送設(shè)備100的結(jié)構(gòu)的模塊圖。在圖中,內(nèi)容傳送設(shè)備100包括發(fā)送/接收單元101、內(nèi)容密鑰產(chǎn)生單元102、內(nèi)容加密單元103、公共密鑰存儲單元104、密鑰信息產(chǎn)生單元105、內(nèi)容存儲單元106和控制單元107??刂茊卧?07連接至輸入單元108和顯示單元109。
內(nèi)容傳送設(shè)備100實際上是通過計算機系統(tǒng)實現(xiàn)的,該計算機系統(tǒng)包括微處理器、ROM、RAM、硬盤單元和通信單元。計算機可讀程序存儲在RAM或硬盤單元中。內(nèi)容傳送設(shè)備100的功能由微處理器根據(jù)計算機可讀程序的運行實現(xiàn)。
(1)公共密鑰存儲單元104公共密鑰存儲單元104預先分別存儲內(nèi)容接收設(shè)備2001,2002,...,200n的公共密鑰KP1,KP2,...,KPn。
公共密鑰KP1,KP2,...,KPn中的每一個都是按照如下計算出的橢圓曲線E1上的點KP1=ks1*GKP2=ks2*G...
KPn=ksn*G其中ks1,ks2,...ksn分別是內(nèi)容接收設(shè)備2001,2002,...,200n的秘密密鑰,G是橢圓曲線ElGamal中橢圓曲線E1上的基點。在該描述中,a*B表示橢圓曲線上的點,該點通過將橢圓曲線上的點B自身相加(a-1)遍得到。例如,ks1*G是通過將基點G自身相加(ks1-1)遍得到的橢圓曲線E1上的點。此后,該運算稱為橢圓曲線點乘(也可以稱為橢圓曲線求冪/標量乘法)。
(2)內(nèi)容存儲單元106內(nèi)容存儲單元106預先存儲內(nèi)容C,該內(nèi)容C是數(shù)字電影作品等。根據(jù)MPEG2(運動圖像專家組2)標準,將數(shù)字作品的視頻數(shù)據(jù)和音頻數(shù)據(jù)壓縮,產(chǎn)生內(nèi)容C,其中MPEG2標準定義了視頻和音頻壓縮/編碼技術(shù)。
(3)內(nèi)容密鑰產(chǎn)生單元102內(nèi)容密鑰產(chǎn)生單元102為內(nèi)容存儲單元106中存儲的內(nèi)容C產(chǎn)生160比特隨機數(shù),并設(shè)定產(chǎn)生的隨機數(shù)為內(nèi)容密鑰KC。內(nèi)容密鑰產(chǎn)生單元102將內(nèi)容密鑰KC輸出至內(nèi)容加密單元103和密鑰信息產(chǎn)生單元105。
(4)內(nèi)容加密單元103內(nèi)容加密單元103從內(nèi)容存儲單元106中讀取內(nèi)容C,并從內(nèi)容密鑰產(chǎn)生單元102接收內(nèi)容密鑰KC。
內(nèi)容加密單元103根據(jù)秘密密鑰密碼的加密算法Enc1,利用內(nèi)容密鑰KC,對內(nèi)容C進行加密,以產(chǎn)生加密的內(nèi)容EC=Enc1(KC,C)這里,Enc1(KC,C)是利用內(nèi)容密鑰KC,將秘密密鑰密碼的加密算法Enc1應(yīng)用于內(nèi)容C產(chǎn)生的密文。例如,DES可以用作秘密密鑰密碼。其他的秘密密鑰密碼,諸如AES(高級加密標準)也同樣適用。T.Okamoto & H.Yamamoto,Modern Encryption,Sangyo Tosho,1997中詳細描述了秘密密鑰密碼術(shù)。
內(nèi)容加密單元103將加密的內(nèi)容EC輸出至發(fā)送/接收單元101。
(5)密鑰信息產(chǎn)生單元105密鑰信息產(chǎn)生單元105包括密鑰加密單元111、計數(shù)器設(shè)定單元112、計數(shù)器增長單元113、計數(shù)器判斷單元114、輸出單元115、密鑰控制單元116、參數(shù)存儲單元117和計數(shù)器118,如圖2所示。
參數(shù)存儲單元117預先存儲基點G、常數(shù)a、常數(shù)b以及素數(shù)p。
計數(shù)器設(shè)定單元112將計數(shù)器118中的計數(shù)器i設(shè)定為1。
密鑰加密單元111按照下述方式產(chǎn)生對應(yīng)于內(nèi)容接收設(shè)備200i的加密的內(nèi)容密鑰EKCi。
(a)產(chǎn)生160比特隨機數(shù)ki。
(b)從參數(shù)存儲單元117中讀取基點G、常數(shù)a和素數(shù)p,并利用隨機數(shù)ki、基點G、常數(shù)a和素數(shù)p計算PCi=ki*G
這里,橢圓曲線點乘如下執(zhí)行。
以100*P為例,100*P可以表示為100*P=2(2(P+2(2(2(P+2P)))))這表示通過對橢圓曲線上的點P進行6次雙倍運算和2次加法運算,可以計算100*P。
這樣,通過加法和雙倍運算實現(xiàn)橢圓曲線點乘。
令橢圓曲線E1定義為y2=x3+a×x+b給定橢圓曲線E1上的兩個點P=(x1,y1)和Q=(x2,y2),則R=(x3,y3)是橢圓曲線E1上的點,使得R=P+Q。
當P≠Q(mào)時,R=P+Q是利用下述加法公式的加法運算x3={(y2-y1)/(x2-x1)}2-x1-x2y3={(y2-y1)/(x2-x1)}(x1-x3)-y1另一方面,當P=Q時,R=P+Q=P+P=2×P,使得R=P+Q是利用下述雙倍公式的雙倍運算x3={(3x12+a)/2y1}2-2x1y3={(3x12+a)/2y1}(x1-x3)-y1注意到,上述運算是在有限域GF(p)上進行的,其中橢圓曲線E1定義在該有限域上。
關(guān)于橢圓曲線算法的細節(jié),參見“Efficient Elliptic CurveExponentiation”in Miyaji,Ono & Cohen Advances in Cryptology-Proceedings of ICICS’97,Lecture Notes in Computer Science,Springer-Verlag,1997,pp.282-290.
(c)從公共密鑰存儲單元104讀取公共密鑰KPi,并利用隨機數(shù)ki、公共密鑰KPi、常數(shù)a和素數(shù)p計算ki*KPi這里,如上所述執(zhí)行橢圓曲線點乘。
(d)從內(nèi)容密鑰產(chǎn)生單元102接收內(nèi)容密鑰KC,并利用轉(zhuǎn)換函數(shù)f,將內(nèi)容密鑰KC轉(zhuǎn)換成橢圓曲線E1上的點P_KC=f(KC)。轉(zhuǎn)換函數(shù)f在后面將詳細解釋。
(e)計算P_KC+ki*KPi(f)從參數(shù)存儲單元117讀取素數(shù)p,并判斷點PCi的y坐標y(PCi)是否滿足y(PCi)<(p-1)/2如果y(PCi)<(p-1)/2,設(shè)定Ci=P_KC+ki*KPi如果y(PCi)≥(p-1)/2,設(shè)定Ci=-(P_KC+ki*KPi)(g)將點PCi的x坐標x(PCi)和點Ci作為加密的內(nèi)容密鑰EKCi輸出至輸出單元115。
計數(shù)器判斷單元114判斷計數(shù)器i是否為n。
如果計算器判斷單元114判斷出i≠n,則計算器增長單元113將計數(shù)器i增加1。此后,重復上述步驟(a)至(g)。
如果計算器判斷單元114判斷出i=n,輸出單元115將加密的內(nèi)容密鑰EKC1,EKC2,EKC3,...,EKCn作為加密的內(nèi)容密鑰信息EKC,輸出至發(fā)送/接收單元101。
密鑰控制單元116控制密鑰信息產(chǎn)生單元105中的結(jié)構(gòu)元件。
上述步驟(a)至(g)對傳統(tǒng)的橢圓曲線ElGamal密碼進行了改進。它與傳統(tǒng)的橢圓曲線ElGamal密碼的不同之處在于下述幾點。在傳統(tǒng)橢圓曲線ElGamal密碼中,密文由Ci和PCi組成,在該實施例改進的密碼中,密文由Ci和PCi的x坐標組成。換言之,該實施例的主要特點是在加密的內(nèi)容密鑰信息EKC中完全沒有(甚至1比特)包含與PCi的y坐標相關(guān)的信息。
(6)發(fā)送/接收單元101發(fā)送/接收單元101從內(nèi)容加密單元103接收加密的內(nèi)容EC,并從密鑰信息產(chǎn)生單元105接收加密的內(nèi)容密鑰信息EKC。發(fā)送/接收單元101將加密的內(nèi)容EC和加密的內(nèi)容密鑰信息EKC經(jīng)由因特網(wǎng)20發(fā)送至每個內(nèi)容接收設(shè)備2001,2002,...,200n。
圖3表示傳輸信息301的數(shù)據(jù)結(jié)構(gòu),該傳輸信息從發(fā)送/接收單元101發(fā)送至每個內(nèi)容接收設(shè)備2001,2002,...,200n。如圖所示,傳輸信息301由加密的內(nèi)容EC302和加密的內(nèi)容密鑰信息EKC303組成。加密的內(nèi)容密鑰信息EKC303包括n個加密的內(nèi)容密鑰311,312,...,313。第i個加密的內(nèi)容密鑰,即EKCi,包括x(PCi)(PCi的x坐標)和Ci。
x(PCi)和Ci的長度是固定的。具體地,x(PCi)是160個比特長,而Ci是320個比特長。在加密的內(nèi)容密鑰信息EKC中,按照分配給n個內(nèi)容接收設(shè)備2001,2002,...,200n的設(shè)備ID號的次序排列n個加密的內(nèi)容密鑰,以至于n個加密的內(nèi)容密鑰和n個內(nèi)容接收設(shè)備2001,2002,...,200n一一對應(yīng)。這樣,與內(nèi)容接收設(shè)備對應(yīng)的加密的內(nèi)容密鑰可以由分配給該內(nèi)容接收設(shè)備的設(shè)備ID號指定。
例如,x(PG1)(PC1的x坐標)和C1組成對應(yīng)于設(shè)備ID號是“1”的內(nèi)容接收設(shè)備2001的加密的內(nèi)容密鑰EKC1,可以通過從加密的內(nèi)容密鑰信息EKC的起始位置處抽取出480(=160+320)個比特獲得該x(PC1)和C1。
通常,x(PCi)(PCi的x坐標)和Ci組成對應(yīng)于設(shè)備ID號是“i”的內(nèi)容接收設(shè)備200i的加密的內(nèi)容密鑰EKCi,可以通過從加密的內(nèi)容密鑰信息EKC的起始位置處的第(1+(i-1)×480)個比特開始抽取出480個比特獲得該x(PCi)和Ci。
(7)控制單元107、輸入單元108以及顯示單元109控制單元107控制內(nèi)容傳送設(shè)備100中的結(jié)構(gòu)元件。
輸入單元108從內(nèi)容傳送設(shè)備100的操作者接收輸入的信息或指令,并向控制單元107輸出接收的信息或指令。
顯示單元109在控制單元107的控制下,顯示各種信息。
1.5內(nèi)容接收設(shè)備2001,2002,...,200n的結(jié)構(gòu)內(nèi)容接收設(shè)備2001,2002,...,200n具有相同的結(jié)構(gòu)。下面描述內(nèi)容接收設(shè)備200i的結(jié)構(gòu)作為示例。
圖4表示內(nèi)容接收設(shè)備200i的結(jié)構(gòu)的模塊圖。如圖所示,內(nèi)容接收設(shè)備200i包括發(fā)送/接收單元201、秘密密鑰存儲單元202、內(nèi)容解密單元203、密鑰解密單元204、再現(xiàn)單元205、控制單元206、輸入單元207、監(jiān)視器208、揚聲器209和參數(shù)存儲單元210。
與內(nèi)容傳送設(shè)備100類似,內(nèi)容接收設(shè)備200i實際上由計算機系統(tǒng)實現(xiàn),該計算機系統(tǒng)包括微處理器、ROM以及RAM。計算機可讀程序存儲在RAM中。內(nèi)容接收設(shè)備200i的功能由微處理器根據(jù)該計算機可讀程序的運行來實現(xiàn)。
應(yīng)該注意到,參考標記“200i”的下標“i”是設(shè)備的ID號,用于唯一識別內(nèi)容接收設(shè)備200i。
(1)秘密密鑰存儲單元202和參數(shù)存儲單元210秘密密鑰存儲單元202預先秘密地存儲160比特的秘密密鑰ks1。只有密鑰解密單元204可以訪問秘密密鑰存儲單元202。
秘密密鑰ksi對應(yīng)于公共密鑰KPi。如上所述,公共密鑰KPi可以通過下式計算KPi=ksi*G參數(shù)存儲單元210預先存儲基點G、常數(shù)a、常數(shù)b和素數(shù)p。
(2)發(fā)送/接收單元201發(fā)送/接收單元201經(jīng)由因特網(wǎng)20從內(nèi)容傳送設(shè)備100接收加密的內(nèi)容EC和加密的內(nèi)容密鑰信息EKC。發(fā)送/接收單元201向內(nèi)容解密單元203輸出加密的內(nèi)容EC,向密鑰解密單元204輸出加密的內(nèi)容密鑰信息EKC。
(3)密鑰解密單元204密鑰解密單元204包括平方根計算單元211、標量乘法單元212和內(nèi)容密鑰計算單元213,如圖4所示。
(平方根計算單元211)平方根計算單元211預先存儲分配給內(nèi)容接收設(shè)備200i的設(shè)備ID號“i”。
平方根計算單元211從發(fā)送/接收單元201接收加密的內(nèi)容密鑰信息EKC,并讀取設(shè)備ID號“i”。如上所述,平方根計算單元211利用設(shè)備ID號“i”,指定加密的內(nèi)容密鑰信息EKC中,對應(yīng)于內(nèi)容接收設(shè)備200i的x(PCi)(PCi的x坐標)。平方根計算單元211從加密的內(nèi)容密鑰信息EKC中抽取出x(PCi)。
然后,對于x(PCi),平方根計算單元211在GF(p)上找到z=x(PCi)3+a×x(PCi)+b的兩個平方根rt。
這里,兩個平方根rt中的一個小于(p-1)/2,另一個不小于(p-1)/2。平方根計算單元211選擇小于(p-1)/2的平方根rt。然后平方根計算單元211利用抽取的x(PCi)和選擇的rt,設(shè)定PCi’=(x(PCi),rt)平方根計算單元211向標量乘法單元212輸出PCi’。
Henri Cohen,A Course in Computational Algebraic Number Theory(Graduate Texts in Mathematics,Vol.138),Springer-Verlag,1993,pp.31-33中詳細描述了平方根計算。
下面解釋當p=3 mod 4時,如何在GF(p)上找到平方根rt。其他平方根計算方法的詳細介紹,參見上述Cohen的文獻。
這里,“d mod e”表示d除以e的余數(shù)。
z的平方根rt是z((p+1)/4)或者-z((p+1)/4)。
通常,z(p-1)=1 mod p成立。這樣,z(p+1)=z2mod p這使得z((p+1)/4)=(z2)1/4=z1/2是z的平方根。
(標量乘法單元212)標量乘法單元212從秘密密鑰存儲單元202讀取秘密密鑰ksi,從平方根計算單元211接收PCi’。標量乘法單元212也從參數(shù)存儲單元210讀取常數(shù)a和素數(shù)p,并利用常數(shù)a、素數(shù)p以及秘密密鑰ksi,通過將PCi’乘以ksi,計算點ksi*PCi’這里,如上所述執(zhí)行橢圓曲線點乘。
標量乘法單元212向內(nèi)容密鑰計算單元213輸出點ksi*PCi’。
(內(nèi)容密鑰計算單元213)內(nèi)容密鑰計算單元213從標量乘法單元212接收點ksi*PCi’,并利用加密的內(nèi)容密鑰信息EKC中的加密的內(nèi)容密鑰EKCi中包含的Ci,計算P_KC’=Ci-ksi*PCi’然后,內(nèi)容密鑰計算單元213將P_KC’轉(zhuǎn)換為整數(shù),以獲得解密的內(nèi)容密鑰KC’=f1(P_KC’)這里,f-1是轉(zhuǎn)換函數(shù)f的逆。通過這種方式獲得的解密的內(nèi)容密鑰KC’預期等于內(nèi)容密鑰KC。內(nèi)容密鑰計算單元213向內(nèi)容解密單元203輸出解密的內(nèi)容密鑰KC’。
(4)內(nèi)容解密單元203內(nèi)容解密單元203從發(fā)送/接收單元201接收加密的內(nèi)容EC,從密鑰解密單元204接收解密的內(nèi)容密鑰KC’。內(nèi)容解密單元203根據(jù)秘密密鑰密碼的解密算法Dec1,利用解密的內(nèi)容密鑰KC’,對加密的內(nèi)容EC進行解密,以產(chǎn)生解密的文本C’=Dec1(KC’,EC)這里,Dec1(KC’,EC)是利用解密的內(nèi)容密鑰KC’,將秘密密鑰密碼的解密算法Dec1應(yīng)用于加密的內(nèi)容EC得到的解密的文本。
內(nèi)容解密單元203向再現(xiàn)單元205輸出解密的內(nèi)容C’。
(5)再現(xiàn)單元205、控制單元206、輸入單元207、監(jiān)視器208以及揚聲器209再現(xiàn)單元205從內(nèi)容解密單元203接收解密的內(nèi)容C’,從解密的內(nèi)容C’獲得視頻數(shù)據(jù)和音頻數(shù)據(jù)。再現(xiàn)單元205將視頻數(shù)據(jù)和音頻數(shù)據(jù)轉(zhuǎn)換為模擬視頻信號和音頻信號,并分別將它們輸出至監(jiān)視器208和揚聲器209。
監(jiān)視器208從再現(xiàn)單元205接收模擬視頻信號,并顯示圖像。
揚聲器209從再現(xiàn)單元205接收模擬音頻信號,并輸出聲音。
控制單元206控制內(nèi)容接收設(shè)備200i的結(jié)構(gòu)元件。
輸入單元207從內(nèi)容接收設(shè)備200i的用戶接收指令,并向控制單元206輸出接收到的指令。
1.6.轉(zhuǎn)換函數(shù)f和逆轉(zhuǎn)換函數(shù)f-1以下解釋轉(zhuǎn)換函數(shù)f和逆轉(zhuǎn)換函數(shù)f-1。
轉(zhuǎn)換函數(shù)f將整數(shù)轉(zhuǎn)換至橢圓曲線E1上對應(yīng)的點,其中該整數(shù)具有的比特長度比定義域GF(p)小。而逆轉(zhuǎn)換函數(shù)f-1將橢圓曲線E1上的點轉(zhuǎn)換成對應(yīng)的整數(shù),其中該整數(shù)具有的比特長度比定義域GF(p)小。轉(zhuǎn)換函數(shù)f是單射函數(shù)。只要滿足下述兩個條件,可以使用任何函數(shù)f-1(f(v))=v其中v是整數(shù);以及f-1(-P)=f-1(P)其中P是橢圓曲線E1上的點。轉(zhuǎn)換的詳細描述參見Neal Koblitz,A Course in Number Theory and Cryptography,Springer-Verlag,1987,pp.162-163。
下面解釋Koblitz在上述文獻中描述的轉(zhuǎn)換方法。
(1)定義域GF(p)的比特長度用lenp表示,v的比特長度用lenp-10表示。也就是,v比定義域GF(p)小10比特。令c=0以及x_fv=c||v。這樣,判斷(x_fv)3+a×x_fv+b是否是GF(p)上的二次剩余。
(2)如果判斷是肯定的,則找到(x_fv)3+a×x_fv+b的平方根y_fv,并設(shè)定f(v)=(x_fv,y_fv)。
(3)如果判斷是否定的,將c增加1,并設(shè)定x_fv=c||v。然后再次判斷(x_fv)3+a×x_fv+b是否是GF(p)上的二次剩余。如果判斷是肯定的,則找到(x_fv)3+a×x_fv+b的平方根y_fv,并設(shè)定f(v)=(x_fv,y_fv)。如果判斷是否定的,則將c增加1,并執(zhí)行相同的判斷。如此重復直到得到(x_fv)3+a×x_fv+b是GF(p)上的二次剩余。
接下來解釋逆轉(zhuǎn)換函數(shù)f-1(P_fv)。
當P_fv=(x_fv,y_fv)時,將f-1(P_fv)設(shè)定為用x_fv的低(lenp-10)個比特表示的數(shù)。根據(jù)該方法,很明顯f-1(f(v))=v而且,由于f-1(P_fv)是P_fv的x坐標的低比特,則很明顯f-1(-P)=f-1(P)如上所述,轉(zhuǎn)換函數(shù)f和逆轉(zhuǎn)換函數(shù)f-1并不限制于Koblitz在上述文獻中描述的那些,只要函數(shù)f是單射函數(shù),f-1(f(v))=v成立,其中v是整數(shù),以及f-1(-P)=f-1(P)成立,其中P是橢圓曲線E1上的點。
1.7.解密的內(nèi)容密鑰KC’等于內(nèi)容密鑰KC的原因如果f-1(P_KC’)=f-1(P_KC),則解密的內(nèi)容密鑰KC’等于內(nèi)容密鑰KC。f-1(P_KC’)=f-1(P_KC)成立的原因如下。
定義在GF(p)上的橢圓曲線上,P=(x1,y1)的對應(yīng)負點-P通常用-P=(x1,-y1)給出。平方根rt滿足rt2=x(PCi)3+a×x(PCi)+b類似地,點PCi的y坐標y(PCi)滿足y(PCi)2=x(PCi)3+a×x(PCi)+b因此,y(PCi)=rt或者y(PCi)=-rt如果y(PCi)=rt,即,y(PCi)<(p-1)/2,那么PCi=PCi’。
代入PCi=PCi’以及Ci=P_KC+ki*KPi得到P_KC’=Ci-ksi*PCi’=P_KC+ki*KPi-ksi*PCi這里,ki*KPi=ki*ksi*G=ksi*PCi使得P_KC’=P_KC所以f-1(P_KC’)=f-1(P_KC)
成立。
另一方面,如果y(PCi)=-rt,即,y(PCi)≥(p-1)/2,那么PCi’=-PCi。代入PCi’=-PCi以及Ci=-(P_KC+ki*KPi)得到P_KC’=Ci-ksi*PCi’=-(P_KC+ki*KPi)-ksi*(-PCi)=-P_KC已知f-1(-P_KC)=f-1(P_KC)那么f-1(P_KC’)=f-1(P_KC)成立。
如上所述,f-1(P_KC’)=f-1(P_KC)成立,使得解密的內(nèi)容密鑰KC’等于內(nèi)容密鑰KC。
1.8.內(nèi)容傳送系統(tǒng)10的運行下面描述內(nèi)容傳送系統(tǒng)10的運行。
(1)內(nèi)容傳送系統(tǒng)10的整體運行圖5表示內(nèi)容傳送系統(tǒng)10整體運行的流程圖。
在內(nèi)容傳送設(shè)備100中,內(nèi)容密鑰產(chǎn)生單元102產(chǎn)生內(nèi)容密鑰KC(S101),內(nèi)容加密單元103利用內(nèi)容密鑰KC對內(nèi)容C加密,以產(chǎn)生加密的內(nèi)容EC(S102)。而且,密鑰信息產(chǎn)生單元105產(chǎn)生加密的內(nèi)容密鑰信息EKC(S103)。發(fā)送/接收單元101將加密的內(nèi)容EC和加密的內(nèi)容密鑰信息EKC經(jīng)由因特網(wǎng)20發(fā)送至每個內(nèi)容接收設(shè)備2001,2002,...,200n(S104)。
在作為內(nèi)容接收設(shè)備2001,2002,...,200n示例的內(nèi)容接收設(shè)備200i中,發(fā)送/接收單元201經(jīng)由因特網(wǎng)20從內(nèi)容傳送設(shè)備100接收加密的內(nèi)容EC和加密的內(nèi)容密鑰信息EKC(S104)。密鑰解密單元204利用存儲在秘密密鑰存儲單元202中的秘密密鑰ksi,對加密的內(nèi)容密鑰信息EKC中包含的加密的內(nèi)容密鑰EKCi進行解密,以產(chǎn)生解密的內(nèi)容密鑰KC’(S105)。內(nèi)容解密單元203利用解密的內(nèi)容密鑰KC’,對加密的內(nèi)容EC進行解密,以產(chǎn)生解密的內(nèi)容C’(S106)。再現(xiàn)單元205再現(xiàn)解密的內(nèi)容C’(S107)。
(2)產(chǎn)生加密的內(nèi)容密鑰信息EKC的運算圖6表示通過內(nèi)容傳送設(shè)備100中的密鑰信息產(chǎn)生單元105,產(chǎn)生加密的內(nèi)容密鑰信息EKC的運算的流程圖。該運算對應(yīng)于圖5中的步驟S103。
計數(shù)器設(shè)定單元112設(shè)定計數(shù)器i為1(S121)。
密鑰加密單元111產(chǎn)生對應(yīng)于內(nèi)容接收設(shè)備200i的加密的內(nèi)容密鑰EKCi(S122)。計數(shù)器判斷單元114判斷是否i=n(S123)。如果i≠n,計數(shù)器增長單元113將i增加1(S124)。然后運算返回至步驟S122。
如果i=n,輸出單元115將加密的內(nèi)容密鑰EKC1,EKC2,EKC3,...,EKCn作為加密的內(nèi)容密鑰信息EKC,輸出至發(fā)送/接收單元101(S125)。
(3)產(chǎn)生加密的內(nèi)容密鑰EKCi的運算圖7表示通過密鑰信息產(chǎn)生單元105中的密鑰加密單元111,產(chǎn)生加密的內(nèi)容密鑰EKCi的運算流程圖。該運算對應(yīng)于圖6中的步驟S122。
密鑰加密單元111產(chǎn)生隨機數(shù)ki(S141),并計算PCi=ki*G(S142)。密鑰加密單元111也計算ki*KPi(S143)。密鑰加密單元111將內(nèi)容密鑰KC轉(zhuǎn)換成橢圓曲線Ei上的點P_KC=f(KC)(S144)。然后密鑰加密單元111計算P_KC+ki*KPi(S145)。
這之后,密鑰加密單元111判斷PCi的y坐標y(PCi)是否滿足y(PCi)<(p-1)/2(S146)。如果y(PCi)<(p-1)/2,那么密鑰加密單元111設(shè)定Ci=P_KC+ki*KPi(S148)。否則,密鑰加密單元111設(shè)定Ci-(P_KC+ki*KPi)(S147)。
密鑰加密單元111將PCi的x坐標x(PCi)和Ci作為加密的內(nèi)容密鑰EKCi輸出(S149)。
(4)產(chǎn)生解密的內(nèi)容密鑰KC’的運算圖8表示通過內(nèi)容接收設(shè)備200i中的密鑰解密單元204產(chǎn)生解密的內(nèi)容密鑰KC’的運算流程圖。該運算對應(yīng)于圖5中的步驟S105。
平方根計算單元211關(guān)于加密的內(nèi)容密鑰EKCi中包含的x(Pci)計算x(PCi)3+a×x(Pci)+b的兩個平方根rt(S161)。平方根計算單元211從兩個平方根rt中選擇滿足rt<(p-1)/2的平方根rt(S162)。然后平方根計算單元211產(chǎn)生PCi’=(x(PCi),rt)(S163)。
然后,標量乘法單元212通過將PCi’乘以ksi,計算點ksi*PCi’(S164)。
接下來,內(nèi)容密鑰計算單元213計算P_KC’=Ci-ksi*PCi’(S165)。然后內(nèi)容密鑰計算單元213將P_KC’轉(zhuǎn)換為整數(shù),以產(chǎn)生解密的內(nèi)容密鑰KC’=f-1(P_KC’)(S166)。
這樣解密的內(nèi)容密鑰KC’預期等于內(nèi)容密鑰KC。
1.9.第一實施例的效果下面分析內(nèi)容傳送系統(tǒng)10中加密的內(nèi)容密鑰EKCi的數(shù)據(jù)長度。
為了簡單起見,假定橢圓曲線E1的定義域GF(p)是160個比特長,該長度是橢圓曲線密碼術(shù)中通常推薦的。
對應(yīng)于內(nèi)容接收設(shè)備200i的加密的內(nèi)容密鑰EKCi由點Ci和點PCi的x坐標即x(PCi)組成。Ci由長度都是160比特的x坐標和y坐標組成,所以Ci是320比特長。PCi的x坐標是160比特長。因此,加密的內(nèi)容密鑰EKCi是320+160=480比特(=60字節(jié))。
傳統(tǒng)技術(shù)中每個加密的內(nèi)容密鑰的數(shù)據(jù)長度是80字節(jié)。相應(yīng)地,與傳統(tǒng)技術(shù)相比,第一實施例的內(nèi)容傳送系統(tǒng)10使得每個加密的內(nèi)容密鑰的數(shù)據(jù)長度減小到3/4。
假設(shè)內(nèi)容接收設(shè)備的數(shù)目n是1000000。根據(jù)第一實施例,加密的內(nèi)容密鑰信息EKC的數(shù)據(jù)長度是60×1000000=60000000字節(jié)(=60兆字節(jié))。而根據(jù)傳統(tǒng)技術(shù),加密的內(nèi)容密鑰信息的數(shù)據(jù)長度是80×1000000=80000000字節(jié)(=80兆字節(jié))。
這樣,與傳統(tǒng)技術(shù)相比,第一實施例的內(nèi)容傳送系統(tǒng)10使得加密的內(nèi)容密鑰信息的數(shù)據(jù)長度減小了20兆字節(jié)。
2.第二實施例下面描述本發(fā)明第二實施例涉及的內(nèi)容傳送系統(tǒng)10b(未示出)。
內(nèi)容傳送系統(tǒng)10b具有與第一實施例的內(nèi)容傳送系統(tǒng)10類似的結(jié)構(gòu)。下面重點描述與內(nèi)容傳送系統(tǒng)10的不同之處。
和內(nèi)容傳送系統(tǒng)10一樣,內(nèi)容傳送系統(tǒng)10b大致由一個內(nèi)容傳送設(shè)備100b和n個內(nèi)容接收設(shè)備200b1,200b2,...,200bi,...,200bn組成。內(nèi)容傳送設(shè)備100b經(jīng)由因特網(wǎng)20連接至每個內(nèi)容接收設(shè)備200b1,200b2,...,200bn。
2.1.內(nèi)容傳送設(shè)備100b的結(jié)構(gòu)內(nèi)容傳送設(shè)備100b具有與內(nèi)容傳送設(shè)備100類似的結(jié)構(gòu)。具體而言,內(nèi)容傳送設(shè)備100b包括發(fā)送/接收單元101、內(nèi)容密鑰產(chǎn)生單元102、內(nèi)容加密單元103、公共密鑰存儲單元104、密鑰信息產(chǎn)生單元105b、內(nèi)容存儲單元106和控制單元107??刂茊卧?07連接至輸入單元108和顯示單元109(未示出)。
也就是說,內(nèi)容傳送設(shè)備100b與內(nèi)容傳送設(shè)備100的不同之處在于密鑰信息產(chǎn)生單元105由密鑰信息產(chǎn)生單元105b代替。
下面重點描述與內(nèi)容傳送設(shè)備100的不同之處。
(1)密鑰信息產(chǎn)生單元105b密鑰信息產(chǎn)生單元105b具有與密鑰信息產(chǎn)生單元105類似的結(jié)構(gòu)。詳細地,密鑰信息產(chǎn)生單元105b包括密鑰加密單元111b、計數(shù)器設(shè)定單元112、計數(shù)器增長單元113、計數(shù)器判斷單元114、輸出單元115、密鑰控制單元116、參數(shù)存儲單元117以及計算器118(未示出)。
也就是說,密鑰信息產(chǎn)生單元105b與密鑰信息產(chǎn)生單元105的不同之處在于密鑰加密單元111被密鑰加密單元111b代替。下面重點描述與密鑰信息產(chǎn)生單元105的不同之處。
密鑰加密單元111b以下述方式產(chǎn)生對應(yīng)于內(nèi)容接收設(shè)備200bi的加密的內(nèi)容密鑰EKCi。
(a)產(chǎn)生160比特隨機數(shù)ki。
(b)從參數(shù)存儲單元117讀取基點G、常數(shù)a以及素數(shù)p,并利用隨機數(shù)ki、基點Gi、常數(shù)a和素數(shù)p計算PCi=ki*G(c)從公共密鑰存儲單元104讀取公共密鑰KPi,并利用隨機數(shù)ki、公共密鑰KPi、常數(shù)a和素數(shù)p計算ki*KPi(d)從內(nèi)容密鑰產(chǎn)生單元102接收內(nèi)容密鑰KC,并利用內(nèi)容密鑰KC,對于ki*KPi,計算si=KC xor x(ki*KPi)這里,x(ki*KPi)是ki*KPi的x坐標,xor是異或運算的運算符。而且,si是標量。
(e)將x(PCi)(PCi的x坐標)和si作為加密的內(nèi)容密鑰EKCi輸出至輸出單元115。
(2)輸出單元115輸出單元115將加密的內(nèi)容密鑰EKC1,EKC2,EKC3,...,EKCn作為加密的內(nèi)容密鑰信息EKC輸出至發(fā)送/接收單元101。
(3)發(fā)送/接收單元101發(fā)送/接收單元101從內(nèi)容加密單元103接收加密的內(nèi)容EC,并從密鑰信息產(chǎn)生單元105b接收加密的內(nèi)容密鑰信息EKC。發(fā)送/接收單元101將加密的內(nèi)容EC和加密的內(nèi)容密鑰信息EKC經(jīng)由因特網(wǎng)20發(fā)送至每個內(nèi)容接收設(shè)備200b1,200b2,...,200bn。
圖9表示從發(fā)送/接收單元101發(fā)送至每個內(nèi)容接收設(shè)備200b1,200b2,...,200bn的傳輸信息321的數(shù)據(jù)結(jié)構(gòu)。
如上所示,傳輸信息321由加密的內(nèi)容EC 322和加密的內(nèi)容密鑰信息EKC 323組成。加密的內(nèi)容密鑰信息EKC 323由n個加密的內(nèi)容密鑰331,332,...,333組成。第i個加密的內(nèi)容密鑰,即EKCi,由x(PCi)(PCi的x坐標)和si組成。
(4)與第一實施例的不同之處第二實施例與第一實施例的不同之處在于密文由x(PCi)(點PCi的x坐標)和標量si組成,取代了x(PCi)和點Ci。在第二實施例中,和第一實施例一樣,加密的內(nèi)容密鑰信息EKC中完全沒有包括(甚至1比特)PCi的y坐標的信息。
2.2.內(nèi)容接收設(shè)備200b1,200b2,...,200bn的結(jié)構(gòu)內(nèi)容接收設(shè)備200b1,200b2,...,200bn具有和內(nèi)容接收設(shè)備2001,2002,...,200n類似的結(jié)構(gòu)。
下面解釋內(nèi)容接收設(shè)備200bi的結(jié)構(gòu),作為內(nèi)容接收設(shè)備200b1,200b2,...,200bn的代表示例,重點在于內(nèi)容接收設(shè)備200i的不同之處。
內(nèi)容接收設(shè)備200bi具有與內(nèi)容接收設(shè)備200i類似的結(jié)構(gòu)。詳細地,內(nèi)容接收設(shè)備200bi包括發(fā)送/接收單元201、秘密密鑰存儲單元202、內(nèi)容解密單元203、密鑰解密單元204b、再現(xiàn)單元205、控制單元206、輸入單元207、監(jiān)視器208、揚聲器209以及參數(shù)存儲單元210。
也就是說,內(nèi)容接收設(shè)備200bi與內(nèi)容接收設(shè)備200bi的不同之處在于密鑰解密單元204被密鑰解密單元204b取代。
(1)密鑰解密單元204b密鑰解密單元204b包括平方根計算單元211、標量乘法單元212和內(nèi)容密鑰計算單元213b(未示出)。
也就是說,密鑰解密單元204b與密鑰解密單元204的不同之處在于內(nèi)容密鑰計算單元213被內(nèi)容密鑰計算單元213b代替。
平方根計算單元211對于加密的內(nèi)容密鑰EKCi中包含的x(PCi),計算GF(p)上的z=x(PCi)3+a×x(PCi)+b的平方根rt,并如前所述,設(shè)定PCi’=(x(PCi),rt)如上所述,標量乘法單元212通過將PCi’乘以秘密密鑰存儲單元202中存儲的秘密密鑰ksi,計算點ksi*PCi’內(nèi)容密鑰計算單元213b從標量乘法單元212接收點ksi*PCi’,并利用接收的點ksi*PCi’,計算sixor x(ksi*PCi’)內(nèi)容密鑰計算單元213b設(shè)定計算結(jié)果為解密的內(nèi)容密鑰KC’KC’=sixor x(ksi*PCi’)2.3.內(nèi)容傳送系統(tǒng)10b的運行下面描述內(nèi)容傳送系統(tǒng)10b的運行。
內(nèi)容傳送系統(tǒng)10b的運行與內(nèi)容傳送系統(tǒng)10的運行類似,所以下面重點描述與內(nèi)容傳送系統(tǒng)10的不同之處。
內(nèi)容傳送系統(tǒng)10b的整體運行與圖5所示的相同,所以這里省略關(guān)于整體運行的解釋。
通過內(nèi)容傳送設(shè)備100b中的密鑰信息產(chǎn)生單元105b產(chǎn)生加密的內(nèi)容密鑰信息EKC的運算與圖6所示的相同,所以這里省略它的解釋。
(1)產(chǎn)生加密的內(nèi)容密鑰EKCi的運算圖10表示通過密鑰信息產(chǎn)生單元105b中密鑰加密單元111b產(chǎn)生加密的內(nèi)容密鑰EKCi的運算流程圖。該運算與圖6中步驟S122對應(yīng)。
該密鑰加密單元111b產(chǎn)生160比特隨機數(shù)ki(S201)。密鑰加密單元111b從參數(shù)存儲單元117讀取基點G、常數(shù)a和素數(shù)p,并利用隨機數(shù)ki、基點G、常數(shù)a和素數(shù)p計算PCi=ki*G(S202)。密鑰加密單元111b還從公共密鑰存儲單元104讀取公共密鑰KPi,并利用隨機數(shù)ki、公共密鑰KPi、常數(shù)a和素數(shù)p計算ki*KPi(S203)。密鑰加密單元111b利用從內(nèi)容密鑰產(chǎn)生單元102接收的內(nèi)容密鑰KC,對于ki*KPi,計算si=KC xor x(ki*KPi)(S204)。密鑰加密單元111b將x(PCi)(PCi的x坐標)和si作為加密的內(nèi)容密鑰EKCi輸出至輸出單元115(S205)。
(2)產(chǎn)生解密的內(nèi)容密鑰KC’的運算圖11表示通過內(nèi)容接收設(shè)備200bi中的密鑰解密單元204b產(chǎn)生解密的內(nèi)容密鑰KC’的運算流程圖。該運算對應(yīng)圖5中的步驟S105。
平方根計算單元211對于加密的內(nèi)容密鑰EKCi中包含的x(PCi),計算x(PCi)3+a×x(PCi)+b的兩個平方根rt。平方根計算單元211從兩個平方根rt中選擇滿足rt<(p-1)/2的平方根rt。然后平方根計算單元211產(chǎn)生PCi’=(x(PCi),rt)(S221)。
這之后,標量乘法單元212通過將PCi’乘以ksi,計算點ksi*PCi’(S222)。
內(nèi)容密鑰計算單元213b從標量乘法單元212接收點ksi*PCi’,并利用接收的點ksi*PCi’,計算sixor x(ksi*PCi’)。內(nèi)容密鑰計算單元213b設(shè)定計算結(jié)果作為解密的內(nèi)容密鑰KC’(S223)。
這樣的解密的內(nèi)容密鑰KC’預期等于內(nèi)容密鑰KC。
2.4.解密的內(nèi)容密鑰KC’等于內(nèi)容密鑰KC的原因當x(ksi*PCi’)=x(ksi*PCi)=x(ksi*ki*G)=x(ki*KPi)成立時,解密的內(nèi)容密鑰KC’=sixor x(ksi*PCi’)等于內(nèi)容密鑰KC。下面給出x(ksi*PCi’)=x(ki*KPi)成立的原因。
在定義在GF(p)上的橢圓曲線上,點P=(x1,y1)的對應(yīng)負點-P通常用-P=(x1,-y1)給出。平方根rt滿足rt2=x(PCi)3+a×x(PCi)+b類似的,點PCi的y坐標y(PCi)滿足y(PCi)2=x(PCi)3+a×x(PCi)+b因此,y(PCi)=rt或者y(PCi)=-rt如果y(PCi)=rt,那么PCi=PCi’。因此x(ksi*PCi’)=x(ksi*PCi)成立。
另一方面,如果y(PCi)=-rt,那么PCi’=-PCi。因此ksi*PCi’=-ksi*PCi由于x(P)=x(-P),x(ksi*PCi’)=x(-ksi*PCi)=x(ksi*PCi)成立。
相應(yīng)的,x(ksi*PCi’)=x(ksi*KPi)成立。因此,解密的內(nèi)容密鑰KC’等于內(nèi)容密鑰KC。
2.5.第二實施例的效果下面分析內(nèi)容傳送系統(tǒng)10b中加密的內(nèi)容密鑰EKCi的數(shù)據(jù)長度。
為了簡單起見,假定橢圓曲線E1的定義域GF(p)是160比特長,該長度是橢圓曲線密碼術(shù)中通常推薦的。
對應(yīng)于內(nèi)容接收設(shè)備200bi的加密的內(nèi)容密鑰EKCi由一個標量si和點PCi的x坐標即x(PCi)組成。標量si是160比特長。類似的,點PCi的x坐標是160比特長。因此,加密的內(nèi)容密鑰EKCi是160+160=320比特(=40字節(jié))。
根據(jù)傳統(tǒng)技術(shù),每個加密的內(nèi)容密鑰的數(shù)據(jù)長度是80字節(jié)。相應(yīng)地,與傳統(tǒng)技術(shù)相比,第二實施例的內(nèi)容傳送系統(tǒng)10b使得每個加密的內(nèi)容密鑰的數(shù)據(jù)長度減小了1/2。
假設(shè)內(nèi)容接收設(shè)備的數(shù)目n是1000000。根據(jù)第二實施例,加密的內(nèi)容密鑰信息EKC的數(shù)據(jù)長度是40×1000000=40000000字節(jié)(=40兆字節(jié))。而根據(jù)傳統(tǒng)技術(shù),加密的內(nèi)容密鑰信息的數(shù)據(jù)長度是80×1000000=80000000字節(jié)(=80兆字節(jié))。
這樣,與傳統(tǒng)技術(shù)相比,第二實施例的內(nèi)容傳送系統(tǒng)10b使得加密的內(nèi)容密鑰信息的數(shù)據(jù)長度減小了40兆字節(jié)。
3.第三實施例下面描述本發(fā)明第三實施例涉及的內(nèi)容傳送系統(tǒng)10c(未示出)。
內(nèi)容傳送系統(tǒng)10c具有與內(nèi)容傳送系統(tǒng)10類似的結(jié)構(gòu)。下面重點描述與內(nèi)容傳送系統(tǒng)10的不同之處。
和內(nèi)容傳送系統(tǒng)10一樣,內(nèi)容傳送系統(tǒng)10c大致由一個內(nèi)容傳送設(shè)備100c和n個內(nèi)容接收設(shè)備200c1,200c2,...,200ci,...,200cn組成。內(nèi)容傳送設(shè)備100c經(jīng)由因特網(wǎng)20連接至每個內(nèi)容接收設(shè)備200c1,200c2,...,200cn。
3.1.內(nèi)容傳送設(shè)備100c的結(jié)構(gòu)內(nèi)容傳送設(shè)備100c具有與內(nèi)容傳送設(shè)備100類似的結(jié)構(gòu)。詳細地,內(nèi)容傳送設(shè)備100c包括發(fā)送/接收單元101、內(nèi)容密鑰產(chǎn)生單元102、內(nèi)容加密單元103、公共密鑰存儲單元104、密鑰信息產(chǎn)生單元105c、內(nèi)容存儲單元106和控制單元107。控制單元107連接至輸入單元108和顯示單元109(未示出)。
也就是說,內(nèi)容傳送設(shè)備100c與內(nèi)容傳送設(shè)備100的不同之處在于密鑰信息產(chǎn)生單元105由密鑰信息產(chǎn)生單元105c代替。
下面重點描述與內(nèi)容傳送設(shè)備100的不同之處。
(1)密鑰信息產(chǎn)生單元105c密鑰信息產(chǎn)生單元105c具有與密鑰信息產(chǎn)生單元105類似的結(jié)構(gòu)。圖12表示密鑰信息產(chǎn)生單元105c的結(jié)構(gòu)。如圖所示,密鑰信息產(chǎn)生單元105c包括計數(shù)器設(shè)定單元112、計數(shù)器增長單元113、計數(shù)器判斷單元114、輸出單元115、密鑰控制單元116、參數(shù)存儲單元117、計數(shù)器118、公共加密單元119c以及獨立加密單元120c。
也就是說,密鑰信息產(chǎn)生單元105c與密鑰信息產(chǎn)生單元105的不同之處在于密鑰加密單元111被公共加密單元119c和獨立加密單元120c代替。下面重點描述與密鑰信息產(chǎn)生單元105的不同之處。
(計數(shù)器設(shè)定單元112)計數(shù)器設(shè)定單元112設(shè)定計數(shù)器i為1。
(公共加密單元119c)公共加密單元119c產(chǎn)生160比特隨機數(shù)k。公共加密單元119c也從參數(shù)存儲單元117讀取基點G、常數(shù)a以及素數(shù)p,并利用隨機數(shù)k、基點G、常數(shù)a和素數(shù)p計算公共密文PC=k*G公共加密單元119c輸出公共密文PC至輸出單元115,輸出隨機數(shù)k至獨立加密單元120c。
(獨立加密單元120c)獨立加密單元120c以下述方式產(chǎn)生對應(yīng)于內(nèi)容接收設(shè)備200ci的獨立密文si。
(a)從公共加密單元119c接收隨機數(shù)k。
(b)從公共密鑰存儲單元104讀取公共密鑰KPi,從參數(shù)存儲單元117讀取常數(shù)a和素數(shù)p,并利用隨機數(shù)k、公共密鑰KPi、常數(shù)a和素數(shù)p計算k*KPi
(c)從內(nèi)容密鑰產(chǎn)生單元102接收內(nèi)容密鑰KC,并利用接收的內(nèi)容密鑰KC,對于k*KPi,計算獨立密文si=KC xor x(k*KPi)這里,x(k*KPi)是k*KPi的x坐標。
(d)將獨立密文si輸出至輸出單元115。
(計數(shù)器判斷單元114、計數(shù)器增長單元113、輸出單元115以及密鑰控制單元116)計數(shù)器判斷單元114判斷計數(shù)器i是否是n。
當計數(shù)器判斷單元114判斷出i≠n時,計數(shù)器增長單元113將計數(shù)器i增長1。這之后,重復上述步驟。
當計數(shù)器判斷單元114判斷出i=n時,輸出單元115將公共密文PC和獨立密文s1,s2,s3,...,sn作為加密的內(nèi)容密鑰信息EKC輸出至發(fā)送/接收單元101。
密鑰控制單元116控制密鑰信息產(chǎn)生單元105c中的組成元件。
(2)發(fā)送/接收單元101發(fā)送/接收單元101從內(nèi)容加密單元103接收加密的內(nèi)容EC,從密鑰信息產(chǎn)生單元105c接收加密的內(nèi)容密鑰信息EKC。發(fā)送/接收單元101將加密的內(nèi)容EC和加密的內(nèi)容密鑰信息EKC經(jīng)由因特網(wǎng)20發(fā)送至每個內(nèi)容接收設(shè)備200c1,200c2,...,200cn。
圖13表示從發(fā)送/接收單元101發(fā)送至每個內(nèi)容接收設(shè)備200c1,200c2,...,200cn的傳輸信息341的數(shù)據(jù)結(jié)構(gòu)。
如圖所示,傳輸信息341由加密的內(nèi)容EC 342和加密的內(nèi)容密鑰信息EKC 343組成。加密的內(nèi)容密鑰信息EKC 343由公共密文PC344和n個獨立密文351,352,...,353組成。第i個獨立密文,即si,是KC xor x(k*KPi)。
3.2.內(nèi)容接收設(shè)備200c1,200c2,...,200cn的結(jié)構(gòu)內(nèi)容接收設(shè)備200c1,200c2,...,200cn具有和內(nèi)容接收設(shè)備2001,2002,...,200n類似的結(jié)構(gòu)。
下面解釋內(nèi)容接收設(shè)備200ci的結(jié)構(gòu),作為內(nèi)容接收設(shè)備200c1,200c2,...,200cn的代表示例,重點在于與內(nèi)容接收設(shè)備200i的不同之處。
內(nèi)容接收設(shè)備200ci具有與內(nèi)容接收設(shè)備200i類似的結(jié)構(gòu)。詳細地,內(nèi)容接收設(shè)備200ci包括發(fā)送/接收單元201、秘密密鑰存儲單元202、內(nèi)容解密單元203、密鑰解密單元204c、再現(xiàn)單元205、控制單元206、輸入單元207、監(jiān)視器208、揚聲器209和參數(shù)存儲單元210(未示出)。
也就是說,內(nèi)容接收設(shè)備200ci與內(nèi)容接收設(shè)備200i的不同之處在于密鑰解密單元204被密鑰解密單元204c取代。
(1)發(fā)送/接收單元201發(fā)送/接收單元201經(jīng)由因特網(wǎng)20從內(nèi)容傳送設(shè)備100c接收加密的內(nèi)容EC和加密的內(nèi)容密鑰信息EKC,并將加密的內(nèi)容EC輸出至內(nèi)容解密單元203,將加密的內(nèi)容密鑰信息EKC輸出至密鑰解密單元204c。
(2)密鑰解密單元204c圖14表示密鑰解密單元204c的結(jié)構(gòu)。如圖所示,密鑰解密單元204c包括標量乘法單元212c和內(nèi)容密鑰計算單元213c。
標量乘法單元212c從秘密密鑰存儲單元202讀取秘密密鑰ksi。標量乘法單元212c從接收自發(fā)送/接收單元201的加密的內(nèi)容密鑰信息EKC中抽取公共密文PC。標量乘法單元212c還從參數(shù)存儲單元210讀取常數(shù)a和素數(shù)p,并利用常數(shù)a、素數(shù)p和秘密密鑰ksi,通過將PC乘以ksi,計算點ksi*PC標量乘法單元212c將點ksi*PC輸出至內(nèi)容密鑰計算單元213c。
內(nèi)容密鑰計算單元213c預先存儲分配給內(nèi)容接收設(shè)備200ci的設(shè)備ID號“i”。內(nèi)容密鑰計算單元213c讀取設(shè)備ID號“i”,并利用該設(shè)備ID號“i”,指定在從發(fā)送/接收單元201接收的加密的內(nèi)容密鑰信息EKC中對應(yīng)于內(nèi)容接收設(shè)備200ci的獨立密文si。內(nèi)容密鑰計算單元213c從加密的內(nèi)容密鑰信息EKC中提取si。內(nèi)容密鑰計算單元213c還從標量乘法單元212c中接收點ksi*PC。然后內(nèi)容密鑰計算單元213c利用接收的點ksi*PC,計算
sixor x(ksi*PC)并設(shè)定計算結(jié)果為解密的內(nèi)容密鑰KC’KC’=sixor x(ksi*PC)內(nèi)容密鑰計算單元213c將解密的內(nèi)容密鑰KC’輸出至內(nèi)容解密單元203。
2.3.內(nèi)容傳送系統(tǒng)10c的運行下面描述內(nèi)容傳送系統(tǒng)10c的運行。
內(nèi)容傳送系統(tǒng)10c的運行與內(nèi)容傳送系統(tǒng)10的運行類似,所以下面重點描述與內(nèi)容傳送系統(tǒng)10的不同之處。
內(nèi)容傳送系統(tǒng)10c的整體運行與圖5所示的相同,所以這里省略了它的解釋。
(1)產(chǎn)生加密的內(nèi)容密鑰信息EKC的運算圖15表示通過內(nèi)容傳送設(shè)備100c中的密鑰信息產(chǎn)生單元105c,產(chǎn)生加密的內(nèi)容密鑰信息EKC的運算流程圖。該運算與圖5中步驟S103對應(yīng)。
計數(shù)器設(shè)定單元112設(shè)定計數(shù)器i為1(S301)。
公共加密單元119c產(chǎn)生160比特的隨機數(shù)k,并計算公共密文PC=k*G。公共加密單元119c將公共密文PC輸出至輸出單元115,并將隨機數(shù)k輸出至獨立加密單元120c(S302)。
獨立加密單元120c產(chǎn)生對應(yīng)于內(nèi)容接收設(shè)備200ci的獨立密文si,并將獨立密文si輸出至輸出單元115(S303)。
計數(shù)器判斷單元114判斷計數(shù)器i是否是n(S304)。如果i≠n,則計算器增長單元113將計數(shù)器i增加1(S305)。然后運算返回步驟S303。
如果i=n,輸出單元115將公共密文PC和獨立密文s1,s2,s3,...,sn作為加密的內(nèi)容密鑰信息EKC輸出至發(fā)送/接收單元101(S306)。
(2)產(chǎn)生解密的內(nèi)容密鑰KC’的運算圖16表示通過內(nèi)容接收設(shè)備200ci中的密鑰解密單元204c,產(chǎn)生解密的內(nèi)容密鑰KC’的運算流程圖。該運算對應(yīng)圖5中步驟S105。
標量乘法單元212c利用常數(shù)a、素數(shù)p以及秘密密鑰ksi,通過將公共密文PC乘以秘密密鑰ksi,計算點ksi*PC。標量乘法單元212c將點ksi*PC輸出至內(nèi)容密鑰計算單元213c(S321)。
內(nèi)容密鑰計算單元213c計算解密的內(nèi)容密鑰KC’=sixorx(ksi*PC),并將解密的內(nèi)容密鑰KC’輸出至內(nèi)容解密單元203(S322)。
3.4.第三實施例的效果下面分析內(nèi)容傳送系統(tǒng)10c中加密的內(nèi)容密鑰信息EKC的數(shù)據(jù)長度。
為了簡單起見,假定橢圓曲線E1的定義域GF(p)是160比特長,該長度是橢圓曲線密碼術(shù)中通常推薦的。
公共密文PC是橢圓曲線E1上的點。PC由每個都是160比特長的x坐標和y坐標組成,因此是320比特(=40字節(jié))。獨立密文si是160比特(=20字節(jié))。
假設(shè)n=1000000。根據(jù)第三實施例,加密的內(nèi)容密鑰信息EKC的數(shù)據(jù)長度是40+20×1000000=20000040字節(jié)(≠20兆字節(jié))。
而根據(jù)傳統(tǒng)技術(shù),加密的內(nèi)容密鑰信息的數(shù)據(jù)長度是80兆字節(jié)。這樣,與傳統(tǒng)技術(shù)相比,第三實施例的內(nèi)容傳送系統(tǒng)10c使得加密的內(nèi)容密鑰信息的數(shù)據(jù)長度減小到1/4。
3.5.第三實施例的結(jié)論根據(jù)該實施例,本發(fā)明可以通過這樣一種信息傳輸系統(tǒng)實現(xiàn),該信息傳輸系統(tǒng)包括一個加密設(shè)備和多個解密設(shè)備,并保密地傳輸信息。
加密設(shè)備包括存儲單元、公共計算單元、獨立計算單元以及輸出單元。存儲單元存儲明文。公共計算單元產(chǎn)生公共密文,該密文對于多個解密設(shè)備來說是公共的。獨立計算單元基于明文,分別產(chǎn)生對應(yīng)于多個解密設(shè)備的多個獨立密文。輸出單元輸出公共密文和多個獨立密文。
多個解密設(shè)備中的每一個都包括獲取單元、抽取單元和解密單元。獲取單元獲取公共密文和多個獨立密文。抽取單元從多個獨立密文中抽取對應(yīng)于解密設(shè)備的獨立密文。解密單元利用公共密文和抽取的獨立密文,產(chǎn)生解密的文本。
本發(fā)明也可以通過這樣一種信息傳輸系統(tǒng)實現(xiàn),該信息傳輸系統(tǒng)包括加密設(shè)備和多個解密設(shè)備,并利用作為安全性基礎(chǔ)的群上的離散對數(shù)問題,秘密傳輸信息。
令g是群的基本元素。通過對基本元素g應(yīng)用(ks-1)次群運算,計算出多個解密設(shè)備中每個的公共密鑰,其中ks是解密設(shè)備的秘密密鑰。
加密設(shè)備包括存儲單元、隨機數(shù)產(chǎn)生單元、公共計算單元、獨立計算單元和輸出單元,其中獨立計算單元包括公共密鑰計算單元和異或單元。存儲單元存儲明文。隨機數(shù)產(chǎn)生單元產(chǎn)生隨機數(shù)k,其中該隨機數(shù)是標量。公共計算單元對基本元素g應(yīng)用(k-1)次群運算,產(chǎn)生公共密文元素。公共密鑰計算單元對多個解密設(shè)備中每個的公共密鑰應(yīng)用(k-1)次群運算,產(chǎn)生對應(yīng)于多個解密設(shè)備的多個群運算后的公共密鑰元素。異或單元對明文和多個群運算后的公共密鑰元素中的每一個執(zhí)行異或運算,以產(chǎn)生對應(yīng)于多個解密設(shè)備的多個獨立密文。輸出單元輸出公共密文元素和多個獨立密文。
多個解密設(shè)備中的每個都包括獲取單元、抽取單元、秘密密鑰計算單元以及異或單元。獲取單元獲取公共密文元素和多個獨立密文。抽取單元從多個獨立密文中抽取對應(yīng)于解密設(shè)備的獨立密文。秘密密鑰計算單元對公共密文元素應(yīng)用(ks-1)次群運算,其中ks是解密設(shè)備的秘密密鑰。異或單元對抽取的獨立密文和群運算后的公共密文元素執(zhí)行異或運算,以產(chǎn)生解密的文本。
本發(fā)明也可以由這樣一種信息傳輸系統(tǒng)實現(xiàn),該信息傳輸系統(tǒng)包括加密設(shè)備和多個解密設(shè)備,并利用作為安全性基礎(chǔ)的橢圓曲線離散對數(shù)問題,保密地傳輸信息。
通過下式定義有限域GF(p)上的橢圓曲線y2=x3+a×x+b其中p是素數(shù),G是橢圓曲線上的基點。這樣,通過在橢圓曲線上,將基點G乘以解密設(shè)備的秘密密鑰,計算出多個解密設(shè)備中每個的公共密鑰點。
加密設(shè)備包括存儲單元、隨機數(shù)產(chǎn)生單元、公共計算單元、獨立計算單元和輸出單元,其中獨立計算單元包括公共密鑰計算單元和異或單元。存儲單元存儲明文。隨機數(shù)產(chǎn)生單元產(chǎn)生隨機數(shù),其中該隨機數(shù)是標量。公共計算單元將基點G乘以隨機數(shù),以產(chǎn)生公共密文點。公共密鑰計算單元將多個解密設(shè)備中每個的公共密鑰點乘以隨機數(shù),以產(chǎn)生對應(yīng)于多個解密設(shè)備的多個相乘后的公共密鑰點。異或單元對于明文和多個相乘后的公共密鑰點中每一個的x坐標執(zhí)行異或運算,以產(chǎn)生對應(yīng)于多個解密設(shè)備的多個獨立密文。輸出單元輸出公共密文點和多個獨立密文。
多個解密設(shè)備中的每個都包括獲取單元、抽取單元、秘密密鑰計算單元和異或單元。獲取單元獲取公共密文點和多個獨立密文。抽取單元從多個獨立密文中抽取對應(yīng)于解密設(shè)備的獨立密文。秘密密鑰計算單元將公共密文點乘以解密設(shè)備的秘密密鑰。異或單元對抽取的獨立密文和相乘后的公共密文點的x坐標執(zhí)行異或運算,以產(chǎn)生解密的文本。
根據(jù)這些結(jié)構(gòu),通過使部分密文成為所有解密設(shè)備公共的,減小了傳輸密文的數(shù)據(jù)長度。這有益于高實用性。
4.第一至第三實施例的結(jié)論如上所述,本發(fā)明可以由這樣一種內(nèi)容傳送系統(tǒng)實現(xiàn),該內(nèi)容傳送系統(tǒng)包括內(nèi)容傳送設(shè)備、通信路徑和多個內(nèi)容接收設(shè)備,并將內(nèi)容經(jīng)由通信路徑從內(nèi)容傳送設(shè)備傳送至多個內(nèi)容接收設(shè)備中的每一個。
內(nèi)容傳送設(shè)備包括發(fā)送單元,用于將數(shù)據(jù)發(fā)送至多個內(nèi)容接收設(shè)備中的每一個;內(nèi)容密鑰產(chǎn)生單元,用于產(chǎn)生內(nèi)容密鑰;加密的內(nèi)容產(chǎn)生單元,用于利用內(nèi)容密鑰對內(nèi)容進行加密;公共密鑰存儲單元,用于存儲多個內(nèi)容接收設(shè)備中每一個的公共密鑰;以及加密的內(nèi)容密鑰信息產(chǎn)生單元,用于利用公共密鑰,對內(nèi)容密鑰進行加密,以產(chǎn)生加密的內(nèi)容密鑰信息。
多個內(nèi)容接收設(shè)備中的每一個都包括接收單元,用于從內(nèi)容傳送設(shè)備接收數(shù)據(jù);秘密密鑰存儲單元,用于存儲內(nèi)容接收設(shè)備的秘密密鑰;加密的內(nèi)容密鑰解密單元,用于對加密的內(nèi)容密鑰信息進行解密,以獲得內(nèi)容密鑰;以及加密的內(nèi)容解密單元,用于對加密的內(nèi)容進行解密,以獲得內(nèi)容。
加密的內(nèi)容密鑰信息產(chǎn)生單元執(zhí)行橢圓曲線加密,并產(chǎn)生加密的內(nèi)容密鑰信息,該信息包括在通過橢圓曲線加密獲得的密文中包含的橢圓曲線點PC的x坐標;以及不同于橢圓曲線點PC的密文的剩余部分。加密的內(nèi)容密鑰解密單元計算橢圓曲線點PC的y坐標,其中該橢圓曲線點的x坐標包含在加密的內(nèi)容密鑰信息中。
這里,可以利用由y2=x3+a×x+b定義的橢圓曲線,執(zhí)行橢圓曲線加密其中a和b是整數(shù)。在這種情況下,加密的內(nèi)容密鑰解密單元通過尋找(PCx)3+a×PCx+b的平方根,計算橢圓曲線點PC的y坐標,其中PCx表示橢圓曲線點PC的x坐標。
本發(fā)明還可以通過這樣一種內(nèi)容傳送系統(tǒng)實現(xiàn),該內(nèi)容傳送系統(tǒng)包括內(nèi)容傳送設(shè)備、通信路徑和多個內(nèi)容接收設(shè)備,并經(jīng)由通信路徑將內(nèi)容從內(nèi)容傳送設(shè)備傳送至多個內(nèi)容接收設(shè)備中的每一個。
內(nèi)容傳送設(shè)備包括發(fā)送單元,用于將數(shù)據(jù)傳送至多個內(nèi)容接收設(shè)備中的每一個;內(nèi)容密鑰產(chǎn)生單元,用于產(chǎn)生內(nèi)容密鑰;加密的內(nèi)容產(chǎn)生單元,用于利用內(nèi)容密鑰對內(nèi)容進行加密;公共密鑰存儲單元,用于存儲多個內(nèi)容接收設(shè)備中每個的公共密鑰;以及加密的內(nèi)容密鑰信息產(chǎn)生單元,用于利用公共密鑰對內(nèi)容密鑰進行加密,以產(chǎn)生加密的內(nèi)容密鑰信息。
多個內(nèi)容接收設(shè)備中的每一個包括接收單元,用于從內(nèi)容傳送設(shè)備接收數(shù)據(jù);秘密密鑰存儲單元,用于存儲內(nèi)容接收設(shè)備的秘密密鑰;加密的內(nèi)容密鑰解密單元,用于對加密的內(nèi)容密鑰信息進行解密,以獲得內(nèi)容密鑰;以及加密的內(nèi)容解密單元,用于對加密的內(nèi)容進行解密,以獲得內(nèi)容。
加密的內(nèi)容密鑰信息產(chǎn)生單元產(chǎn)生公共密文和多個獨立密文作為加密的內(nèi)容密鑰信息,其中該公共密文對于多個內(nèi)容接收設(shè)備是公共的,該多個獨立密文分別對應(yīng)于多個內(nèi)容接收設(shè)備。
這里,加密的內(nèi)容密鑰信息產(chǎn)生單元和加密的內(nèi)容密鑰解密單元可以使用橢圓曲線密碼術(shù)。
這里,公共密文和多個獨立密文,每個都可以是橢圓曲線上的點?;蛘?,公共密文可以是橢圓曲線上的點,多個獨立密文中的每一個可以是橢圓曲線的定義域中的元素。
這里,加密的內(nèi)容密鑰信息產(chǎn)生單元以及加密的內(nèi)容密鑰解密單元可以使用ElGamal密碼。
本發(fā)明也可以通過這樣一種內(nèi)容傳送系統(tǒng)中的內(nèi)容傳送設(shè)備實現(xiàn),該內(nèi)容傳送系統(tǒng)包括內(nèi)容傳送設(shè)備、通信路徑和多個內(nèi)容接收設(shè)備,并將內(nèi)容經(jīng)由通信路徑從內(nèi)容傳送設(shè)備傳送至多個內(nèi)容接收設(shè)備中的每一個。
內(nèi)容傳送設(shè)備包括發(fā)送單元,用于將數(shù)據(jù)發(fā)送至多個內(nèi)容接收設(shè)備中的每一個;內(nèi)容密鑰產(chǎn)生單元,用于產(chǎn)生內(nèi)容密鑰;加密的內(nèi)容產(chǎn)生單元,用于利用內(nèi)容密鑰對內(nèi)容進行加密;公共密鑰存儲單元,用于存儲多個內(nèi)容接收設(shè)備中每個的公共密鑰;以及加密的內(nèi)容密鑰信息產(chǎn)生單元,用于利用公共密鑰,對內(nèi)容密鑰進行加密,以產(chǎn)生加密的內(nèi)容密鑰信息。
加密的內(nèi)容密鑰信息產(chǎn)生單元執(zhí)行橢圓曲線加密,并產(chǎn)生加密的內(nèi)容密鑰信息,該信息包括通過橢圓曲線加密獲得的密文中包含的橢圓曲線點的x坐標,以及不同于該橢圓曲線點的密文的剩余部分。
本發(fā)明還可以通過這樣一種內(nèi)容傳送系統(tǒng)中的內(nèi)容接收設(shè)備實現(xiàn),該內(nèi)容傳送系統(tǒng)包括內(nèi)容傳送設(shè)備、通信路徑和多個內(nèi)容接收設(shè)備,并將內(nèi)容經(jīng)由通信路徑從內(nèi)容傳送設(shè)備傳送至多個內(nèi)容接收設(shè)備中的每一個。
內(nèi)容接收設(shè)備包括接收單元,用于從內(nèi)容傳送設(shè)備接收數(shù)據(jù);秘密密鑰存儲單元,用于存儲內(nèi)容接收設(shè)備的秘密密鑰;加密的內(nèi)容密鑰解密單元,用于對加密的內(nèi)容密鑰信息進行解密,以獲得內(nèi)容密鑰;加密的內(nèi)容解密單元,用于對加密的內(nèi)容進行解密,以獲得內(nèi)容。
加密的內(nèi)容密鑰解密單元計算橢圓曲線點的y坐標,該橢圓曲線點的x坐標包含在加密的內(nèi)容密鑰信息中。
本發(fā)明還可以通過這樣一種內(nèi)容傳送系統(tǒng)中的內(nèi)容傳送設(shè)備實現(xiàn),該內(nèi)容傳送系統(tǒng)包括內(nèi)容傳送設(shè)備、通信路徑和多個內(nèi)容接收設(shè)備,并將內(nèi)容經(jīng)由通信路徑從內(nèi)容傳送設(shè)備傳送至多個內(nèi)容接收設(shè)備中的每一個。
內(nèi)容傳送設(shè)備包括發(fā)送單元,用于將數(shù)據(jù)傳送至多個內(nèi)容接收設(shè)備中的每一個;內(nèi)容密鑰產(chǎn)生單元,用于產(chǎn)生內(nèi)容密鑰;加密的內(nèi)容產(chǎn)生單元,用于利用內(nèi)容密鑰對內(nèi)容進行加密;公共密鑰存儲單元,用于存儲多個內(nèi)容接收設(shè)備中每個的公共密鑰;以及加密的內(nèi)容密鑰信息產(chǎn)生單元,用于利用公共密鑰對內(nèi)容密鑰進行加密,以產(chǎn)生加密的內(nèi)容密鑰信息。
加密的內(nèi)容密鑰信息產(chǎn)生單元產(chǎn)生公共密文和多個獨立密文作為加密的內(nèi)容密鑰信息,其中該公共密文對于多個內(nèi)容接收設(shè)備是公共的,該多個獨立密文分別對應(yīng)于多個內(nèi)容接收設(shè)備。
本發(fā)明還可以通過這樣一種內(nèi)容傳送系統(tǒng)中的內(nèi)容接收設(shè)備實現(xiàn),該內(nèi)容傳送系統(tǒng)包括內(nèi)容傳送設(shè)備、通信路徑和多個內(nèi)容接收設(shè)備,并將內(nèi)容經(jīng)由通信路徑從內(nèi)容傳送設(shè)備傳送至多個內(nèi)容接收設(shè)備中的每一個。
內(nèi)容接收設(shè)備包括接收單元,用于從內(nèi)容傳送設(shè)備接收數(shù)據(jù);秘密密鑰存儲單元,用于存儲內(nèi)容接收設(shè)備的秘密密鑰;加密的內(nèi)容密鑰解密單元,用于對加密的內(nèi)容密鑰信息進行解密,以獲得內(nèi)容密鑰;加密的內(nèi)容解密單元,用于對加密的內(nèi)容進行解密,以獲得內(nèi)容。
加密的內(nèi)容密鑰解密單元從包含在加密的內(nèi)容密鑰信息中的公共密文和獨立密文中獲得內(nèi)容密鑰。這里,公共密文對于多個內(nèi)容接收設(shè)備是公共的,且獨立密文對應(yīng)于內(nèi)容接收設(shè)備。
根據(jù)這些結(jié)構(gòu),通過省略密文中包含的橢圓曲線點的y坐標,或者使部分密文對于多個內(nèi)容接收設(shè)備是公共的,使得加密的內(nèi)容密鑰信息的數(shù)據(jù)長度減小。這對高實用性作出了貢獻。
5.變形本發(fā)明已經(jīng)通過上述第一至第三實施例進行了描述,但是很明顯,本發(fā)明并不限制于此。下面給出示例變形。
(1)第一實施例描述的情況是通過內(nèi)容傳送設(shè)備100中的密鑰信息產(chǎn)生單元105中的密鑰加密單元111產(chǎn)生的加密的內(nèi)容密鑰EKCi由x(PCi)(點PCi的x坐標)和點Ci組成。或者,加密的內(nèi)容密鑰EKCi由點PCi和x(Ci)(點Ci的x坐標)組成。
在這種情況下,密鑰加密單元111以下述方式產(chǎn)生加密的內(nèi)容密鑰EKCi。
(a)產(chǎn)生160比特的隨機數(shù)ki。
(b)從參數(shù)存儲單元117讀取基點G、常數(shù)a和素數(shù)p,并利用隨機數(shù)ki、基點G、常數(shù)a和素數(shù)p,計算ki*G橢圓曲線點乘如前所述。
(c)從公共密鑰存儲單元104讀取公共密鑰KPi,并利用隨機數(shù)ki、公共密鑰KPi、常數(shù)a和素數(shù)p,計算ki*KPi(d)從內(nèi)容密鑰產(chǎn)生單元102接收內(nèi)容密鑰KC,并利用前述的轉(zhuǎn)換函數(shù)f,將內(nèi)容密鑰KC轉(zhuǎn)換為橢圓曲線E1上的點P_KC=f(KC)。
(e)計算Ci=P_KC+ki*KPi(f)判斷y(Ci)(點Ci的y坐標)是否滿足y(Ci)<(p-1)/2如果y(Ci)<(p-1)/2,設(shè)定PCi=ki*G。如果y(Ci)≥(p-1)/2,設(shè)定PCi=-ki*G。
(g)將x(Ci)(點Ci的x坐標)和點PCi作為加密的內(nèi)容密鑰EKCi輸出至輸出單元115。
在內(nèi)容接收設(shè)備200i中,密鑰解密單元204中的平方根計算單元211對于包含在加密的內(nèi)容密鑰EKCi中的x(Ci),計算x(Ci)3+a×x(Ci)+b的兩個平方根rt。平方根計算單元211從兩個平方根rt中選擇滿足rt<(p-1)/2的平方根rt。然后平方根計算單元211產(chǎn)生Ci’=x(x(Ci),rt)。
這之后,標量乘法單元212通過將PCi乘以ksi,計算點ksi*PCi然后,內(nèi)容密鑰計算單元213計算P_KC’=Ci’-ksi*PCi然后內(nèi)容密鑰計算單元213將P_KC’轉(zhuǎn)換為整數(shù),以產(chǎn)生解密的內(nèi)容密鑰KC’=f-1(P_KC’)。
這樣的解密的內(nèi)容密鑰KC’預期等于內(nèi)容密鑰KC。
(2)第三實施例描述的情況是獨立加密單元120c產(chǎn)生獨立密文si=KC xor x(k*KPi),其中該獨立密文是標量?;蛘撸毩⒓用軉卧?20c可以產(chǎn)生獨立密文Ci,其中該密文是橢圓曲線E1上的點,和第一實施例中一樣。
(3)第一至第三實施例描述的情況是使用定義在GF(p)上的橢圓曲線E1,或者可以使用定義在GF(pm),例如GF(2m),上的橢圓曲線E2。
令橢圓曲線E2由下式定義y2+xy=x3+a×x2+b而且,橢圓曲線E2上的點P(x,y)的對應(yīng)負點用-P(x,x+y)表示,GF(2m)的生成多項式用根為α的f(x)表示。
這種情況是,內(nèi)容傳送設(shè)備100中的密鑰信息產(chǎn)生單元105以下述方式作為示例,產(chǎn)生加密的內(nèi)容密鑰信息EKC。
密鑰加密單元111如下所述產(chǎn)生加密的內(nèi)容密鑰EKCi。
(a)產(chǎn)生160比特的隨機數(shù)ki。
(b)從參數(shù)存儲單元117讀取基點G、常數(shù)a和素數(shù)p,并利用隨機數(shù)ki、基點G、常數(shù)a和素數(shù)p,計算PCi=ki*G(c)從公共密鑰存儲單元104讀取公共密鑰KPi,并利用隨機數(shù)ki、公共密鑰KPi、常數(shù)a和素數(shù)p,計算ki*KPi
(d)從內(nèi)容密鑰產(chǎn)生單元102接收內(nèi)容密鑰KC,并利用轉(zhuǎn)換函數(shù)f,將內(nèi)容密鑰KC轉(zhuǎn)換為橢圓曲線E2上的點P_KC=f(KC)。
(e)計算P_KC+ki*KPi(f)尋找s,其中該s是x(PCi)(PCi的x坐標)的α多項式中,系數(shù)不是0而是1的項中α的最低次數(shù)。
例如,當x(PCi)=α6+α5=α3,則s=3,這是因為項α3具有非零系數(shù)和最低次數(shù)。
(g)如果y(PCi)(PCi的y坐標)的α多項式中項αs的系數(shù)等于x(PCi)的α多項式中項αs的系數(shù),那么設(shè)定Ci=P_KC+ki*KPi另一方面,如果y(PCi)的α多項式中項αs的系數(shù)不等于x(PCi)的α多項式中項αs的系數(shù),那么設(shè)定Ci=-(P_KC+ki*KPi)(h)將x(PCi)(點PCi的x坐標)和點Ci作為加密的內(nèi)容密鑰EKCi輸出至輸出單元115。
輸出單元115將加密的內(nèi)容密鑰EKC1,EKC2,EKC3,...,EKCn作為加密的內(nèi)容密鑰信息EKC輸出至發(fā)送/接收單元101。
發(fā)送/接收單元101將加密的內(nèi)容EC和加密的內(nèi)容密鑰信息EKC經(jīng)由因特網(wǎng)20發(fā)送至每個內(nèi)容接收設(shè)備2001,2002,...,200n。
內(nèi)容接收設(shè)備200i經(jīng)由因特網(wǎng)20從內(nèi)容傳送設(shè)備100接收加密的內(nèi)容EC和加密的內(nèi)容密鑰信息EKC。
在內(nèi)容接收設(shè)備200i中,密鑰解密單元204預先存儲分配給內(nèi)容接收設(shè)備200i的設(shè)備ID號“i”。
密鑰解密單元204從發(fā)送/接收單元201接收加密的內(nèi)容密鑰信息EKC,并讀取設(shè)備ID號“i”。如前所述,密鑰解密單元204利用設(shè)備ID號“i”,指定在加密的內(nèi)容密鑰信息EKC中對應(yīng)于內(nèi)容接收設(shè)備200i的加密的內(nèi)容密鑰EKCi。密鑰解密單元204從加密的內(nèi)容密鑰信息EKC中抽取加密的內(nèi)容密鑰EKCi,還從加密的內(nèi)容密鑰EKCi中抽取x(PCi)(點PCi的x坐標)和點Ci。
密鑰解密單元204尋找x(PCi)的α多項式中系數(shù)不是0而是1的項中α的最低次數(shù)s。然后密鑰解密單元204計算y2+x(PCi)y=x(PCi)3+a×x(PCi)2+b以獲得兩個解y’i-1和y’i-2。密鑰解密單元204從兩個解y’i-1和y’i-2中選擇一個解,該解的α多項式包含的項αs的系數(shù)與x(PCi)的α多項式中項αs的系數(shù)相等。因此,選擇解y(PCi)’。
接下來,密鑰解密單元204利用選擇的y(PCi)’和抽取的x(PCi),設(shè)定PCi’=(x(PCi),y(PCi)’)然后密鑰解密單元204計算P_KC’=Ci-ksi*PCi’并將P_KC’轉(zhuǎn)換成整數(shù),以產(chǎn)生解密的內(nèi)容密鑰KC’=f-1(P_KC’)。
內(nèi)容解密單元203利用這樣的解密的內(nèi)容密鑰KC’,對加密的內(nèi)容EC進行解密,以產(chǎn)生解密的內(nèi)容C’。
上述改進還可以再如下改進。
上述改進描述的情況是s是系數(shù)不是0而是1的項中α的最低次數(shù)?;蛘?,s可以是系數(shù)不是0而是1的項中α的最高次數(shù)。
并且,上述改進描述的示例是從兩個解y’i-1和y’i-2中選擇一個解,該解的α多項式包含的項αs的系數(shù)與x(PCi)的α多項式中的項αs的系數(shù)相等。或者,可以從兩個解y’i-1和y’i-2中選擇一個解,該解的α多項式包含的項αs的系數(shù)與x(PCi)的α多項式中的項αs的系數(shù)不相等。
(4)第三實施例描述的情況是使用橢圓曲線上的ElGamal,或者可以使用有限域上的ElGamal。
下面給出使用有限域ElGamal的示例。
令p是素數(shù),g是有限域GF(p)上的基本元素(g∈GP(p)),且q是基本元素g的階數(shù)(其中g(shù)q=l mod p)。
并且,ksi表示內(nèi)容接收設(shè)備200ci的秘密密鑰,kpi表示內(nèi)容接收設(shè)備200ci的公共密鑰(kpi=gksimod p)。
這里,ab表示將a增加至指數(shù)b的求冪運算。
內(nèi)容接收設(shè)備200ci存儲秘密密鑰ksi、素數(shù)p、基本元素g以及基本元素g的階數(shù)q。內(nèi)容傳送設(shè)備100c存儲公共密鑰kp1,kp2,...,kpn、素數(shù)p、基本元素g、以及基本元素g的階數(shù)q。
在內(nèi)容傳送設(shè)備100c中,公共加密單元119c產(chǎn)生160比特的隨機數(shù)k。公共加密單元119c也讀取基本元素g和素數(shù)p,并利用隨機數(shù)k、基本元素g和素數(shù)p,計算公共密文pc=gkmod p公共加密單元119c輸出公共密文pc至輸出單元115,并輸出隨機數(shù)k至獨立加密單元120c。
如下所述,獨立加密單元120c產(chǎn)生對應(yīng)于內(nèi)容接收設(shè)備200ci的獨立密文ci。
(a)從公共加密單元119c接收隨機數(shù)k。
(b)讀取公共密鑰kpi和素數(shù)p,并利用隨機數(shù)k、公共密鑰kpi和素數(shù)p計算kpikmod p(c)從內(nèi)容密鑰產(chǎn)生單元102接收內(nèi)容密鑰KC,并利用接收的內(nèi)容密鑰KC計算獨立密文ci=KC xor(kpikmod p)這樣,產(chǎn)生對應(yīng)于內(nèi)容接收設(shè)備200c1,200c2,...,200cn的獨立密文c1,c2,...,cn。
發(fā)送單元101經(jīng)由因特網(wǎng)20發(fā)送加密的內(nèi)容密鑰信息EKC至每個內(nèi)容接收設(shè)備200c1,200c2,...,200cn,其中該內(nèi)容密鑰信息EKC由公共密文pc和獨立密文c1,c2,...,cn組成。
內(nèi)容接收設(shè)備200ci從內(nèi)容傳送設(shè)備100c接收加密的內(nèi)容密鑰信息EKC,其中該內(nèi)容密鑰信息EKC由公共密文pc和獨立密文ci,c2,...,cn組成。
在內(nèi)容接收設(shè)備200ci中,密鑰解密單元204c包括標量乘法單元212c和內(nèi)容密鑰計算單元213c,如圖14所示。
標量乘法單元212c讀取秘密密鑰ksi和素數(shù)p。標量乘法單元212c也從發(fā)送/接收單元201接收的加密的內(nèi)容密鑰信息EKC中抽取公共密文pc。標量乘法單元212c利用素數(shù)p和秘密密鑰ksi計算pcksimod p標量乘法單元212c將pcksimod p輸出至內(nèi)容密鑰計算單元213c。
內(nèi)容密鑰計算單元213c預先存儲分配給內(nèi)容接收設(shè)備200ci的設(shè)備ID號“i”。內(nèi)容密鑰計算單元213c讀取設(shè)備ID號“i”。內(nèi)容密鑰計算單元213c利用設(shè)備ID號“i”指定在從發(fā)送/接收單元201接收的加密的內(nèi)容密鑰信息EKC中對應(yīng)于內(nèi)容接收設(shè)備200ci的獨立密文ci。內(nèi)容密鑰計算單元213c從加密的內(nèi)容密鑰信息EKC中抽取ci。內(nèi)容密鑰計算單元213c也從標量乘法單元212c接收pcksimod p,并利用接收的pcksimod p計算cixor(pcksimod p)內(nèi)容密鑰計算單元213c將計算結(jié)果設(shè)定為解密的內(nèi)容密鑰KC’KC’=cixor(pcksimod p)內(nèi)容密鑰計算單元213c將解密的內(nèi)容密鑰KC’輸出至內(nèi)容解密單元203。
根據(jù)該改進,本發(fā)明可以由這樣一種信息傳輸系統(tǒng)實現(xiàn),該系統(tǒng)包括加密設(shè)備和多個解密設(shè)備,并利用作為安全性基礎(chǔ)的有限域離散對數(shù)問題,秘密傳輸信息。
令p是素數(shù),g是有限域GF(p)上的基本元素(g∈GP(p)),且q是基本元素g的階數(shù)(其中g(shù)q=1 mod p)。
這樣,多個解密設(shè)備中每一個的公共密鑰kp都可以利用解密設(shè)備的秘密密鑰ks,通過kp=gksmod p計算出來。
加密設(shè)備包括存儲單元、隨機數(shù)產(chǎn)生單元、公共計算單元、獨立計算單元以及輸出單元,其中獨立計算單元包括公共密鑰計算單元和異或單元。存儲單元存儲明文。隨機數(shù)產(chǎn)生單元產(chǎn)生隨機數(shù)k。公共計算單元利用基本元素g和隨機數(shù)k,產(chǎn)生公共密文元素pcpc=gkmod p公共密鑰計算單元利用多個解密設(shè)備中每個的公共密鑰kp和隨機數(shù)k,計算取冪的公共密鑰元素kpkmod p異或單元對明文和為多個解密設(shè)備中每個計算出的取冪的公共密鑰元素,執(zhí)行異或運算,以獲得對應(yīng)于多個解密設(shè)備的多個獨立密文。輸出單元輸出公共密文元素pc和多個獨立密文。
多個解密設(shè)備中的每個包括獲取單元、抽取單元、秘密密鑰計算單元以及異或單元。獲取單元獲取公共密文元素pc和多個獨立密文。抽取單元從多個獨立密文中抽取對應(yīng)于解密設(shè)備的獨立密文。秘密密鑰計算單元利用公共密文元素pc和解密設(shè)備的秘密密鑰ks,計算取冪的公共密文元素pcksmod p異或單元對抽取的獨立密文和取冪的公共密文元素執(zhí)行異或運算,以產(chǎn)生解密的文本。
(5)第一至第三實施例可以自由組合。
(6)第一至第三實施例描述的情況是分配給每個內(nèi)容接收設(shè)備一對秘密密鑰和公共密鑰,但是本發(fā)明并不限于此。
例如,可以根據(jù)類型,諸如作者、制片人或者體裁,對內(nèi)容進行分組,使得每組被分配有一對秘密密鑰和公共密鑰。
并且,可以為每個獨立的用戶分配一對秘密密鑰和公共密鑰。
另外,可以為每組用戶分配一對秘密密鑰和公共密鑰。
(7)第一至第三實施例描述的情況是內(nèi)容傳送設(shè)備經(jīng)由因特網(wǎng)分發(fā)加密的內(nèi)容和加密的內(nèi)容密鑰信息,但是內(nèi)容傳送設(shè)備可以分發(fā)存儲介質(zhì),諸如DVD或者存儲器卡,其中加密的內(nèi)容和加密的內(nèi)容密鑰信息存儲在該存儲介質(zhì)上。在這種情況下,每個內(nèi)容接收設(shè)備從存儲介質(zhì)讀取加密的內(nèi)容和加密的內(nèi)容密鑰信息,并對加密的內(nèi)容進行解密。
或者,內(nèi)容傳送設(shè)備可以通過數(shù)字廣播,來廣播加密的內(nèi)容和加密的內(nèi)容密鑰信息。在這種情況下,每個內(nèi)容接收設(shè)備接收承載著加密的內(nèi)容和加密的內(nèi)容密鑰信息的廣播波,并從廣播波中抽取加密的內(nèi)容和加密的內(nèi)容密鑰信息,以及對加密的內(nèi)容進行解密。
(8)第一至第三實施例和改進描述的情況是使用橢圓曲線ElGamal或者有限域ElGamal,對內(nèi)容密鑰進行加密,但是本發(fā)明并不限于此。橢圓曲線ElGamal或有限域ElGamal可以同等地用于對內(nèi)容進行加密。
(9)第一至第三實施例描述了對內(nèi)容進行加密的示例,但這并不限制本發(fā)明。
本發(fā)明可以應(yīng)用于任意類型的秘密通信,在不向第三方暴露通信內(nèi)容的情況下安全地進行信息通信。例如,本發(fā)明適用于e-mail發(fā)送/接收系統(tǒng)、用于商業(yè)交易的秘密通信系統(tǒng)、專利應(yīng)用申請系統(tǒng)、以及金融機構(gòu)的支付系統(tǒng)。
(10)本發(fā)明也適用于上述方法。該方法可以通過由計算機執(zhí)行的計算機可讀程序?qū)崿F(xiàn)。這樣的計算機可讀程序可以作為數(shù)字信號分發(fā)。
本發(fā)明可以通過計算機可讀存儲介質(zhì),諸如軟盤、硬盤、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(藍光盤)或者半導體存儲器實現(xiàn),上述的計算機可讀程序或數(shù)字信號記錄在該計算機可讀存儲介質(zhì)中。相反,本發(fā)明也可以通過記錄在這樣的存儲介質(zhì)上的計算機可讀程序或數(shù)字信號實現(xiàn)。
用于實現(xiàn)本發(fā)明的計算機可讀程序或數(shù)字信號經(jīng)由諸如電子通信網(wǎng)、有線或無線通信網(wǎng)或因特網(wǎng)這樣的網(wǎng)絡(luò)發(fā)送,或經(jīng)由數(shù)據(jù)廣播發(fā)送。
本發(fā)明也可以通過包括微處理器和存儲器的計算機系統(tǒng)實現(xiàn)。在這種情況下,計算可讀程序存儲在存儲器中,且微處理器根據(jù)該計算機可讀程序運行。
可以通過分發(fā)記錄有計算機可讀程序或數(shù)字信號的存儲介質(zhì),或者通過經(jīng)由網(wǎng)絡(luò)發(fā)送計算機可讀程序或數(shù)字信號,將計算機可讀程序或數(shù)字信號提供給獨立的計算機系統(tǒng)。然后該獨立的計算機系統(tǒng)可以執(zhí)行計算機可讀程序或數(shù)字信號,以實現(xiàn)本發(fā)明。
(11)第一至第三實施例和改進可以自由組合。
如上所述,本發(fā)明可以通過省略每個加密的內(nèi)容密鑰中密文的橢圓曲線點的y坐標,或者通過使部分密文對于所有內(nèi)容接收設(shè)備來說是公共的,來減小加密的內(nèi)容密鑰信息的數(shù)據(jù)長度。
工業(yè)實用性本發(fā)明的設(shè)備可以重復以及連續(xù)地用于任何工業(yè),該工業(yè)在不向第三方暴露信息的情況下安全可靠地處理信息。同時,本發(fā)明的設(shè)備可以在電氣產(chǎn)品的制造工業(yè)中重復和連續(xù)地制造和銷售。
權(quán)利要求
1.一種信息傳輸系統(tǒng),利用作為安全性基礎(chǔ)的橢圓曲線離散對數(shù)問題來保密地傳輸信息,所述信息傳輸系統(tǒng)包括加密設(shè)備和解密設(shè)備,所述加密設(shè)備包括存儲單元,用于存儲明文;加密單元,用于對所述明文執(zhí)行橢圓曲線加密,并產(chǎn)生密文,該密文包括橢圓曲線上加密點的x坐標,所述加密點是通過所述橢圓曲線加密產(chǎn)生的;以及輸出單元,用于輸出所述密文,以及所述解密設(shè)備包括獲取單元,用于獲取所述密文;以及解密單元,用于利用所述獲取的密文中包含的x坐標,計算所述橢圓曲線上所述加密點的y坐標,以及利用所述加密點和所述獲取的密文中包含的其他信息,執(zhí)行橢圓曲線解密,以產(chǎn)生解密的文本。
2.一種加密設(shè)備,利用作為安全性基礎(chǔ)的橢圓曲線離散對數(shù)問題對明文進行加密,所述加密設(shè)備包括存儲單元,用于存儲所述明文;加密單元,用于對所述明文執(zhí)行橢圓曲線加密,并產(chǎn)生密文,該密文包括橢圓曲線上加密點的x坐標,所述加密點是通過所述橢圓曲線加密產(chǎn)生的;以及輸出單元,用于輸出所述密文。
3.如權(quán)利要求2所述的加密設(shè)備,其中存儲在所述存儲單元中的所述明文是標量;以及所述加密單元包括隨機數(shù)產(chǎn)生單元,用于產(chǎn)生隨機數(shù),該隨機數(shù)是標量;第一計算單元,用于將所述橢圓曲線上的基點乘以所述隨機數(shù);第二計算單元,用于將所述橢圓曲線上的公共密鑰點乘以所述隨機數(shù);轉(zhuǎn)換單元,用于對所述明文應(yīng)用轉(zhuǎn)換函數(shù),以產(chǎn)生所述橢圓曲線上的明文點,其中所述轉(zhuǎn)換函數(shù)用于將標量轉(zhuǎn)換為所述橢圓曲線上的對應(yīng)點;第三計算單元,用于通過所述明文點和所述相乘后的公共密鑰點相加,計算求和點;以及產(chǎn)生單元,用于產(chǎn)生所述密文,該密文包括所述求和點和所述相乘后的基點的x坐標,其中該相乘后的基點是所述加密點。
4.如權(quán)利要求3所述的加密設(shè)備,其中所述第三計算單元判斷是否滿足預定的條件,來設(shè)定所述求和點,如果所述判斷是肯定的,則將所述明文點和所述相乘后的公共密鑰點的和設(shè)定為所述求和點,以及如果所述判斷是否定的,則將與所述明文點和所述相乘后的公共密鑰點的和的對應(yīng)負點設(shè)定所述求和點。
5.如權(quán)利要求4所述的加密設(shè)備,其中所述橢圓曲線通過下式定義在有限域GF(p)上y2=x3+a×x+b其中p是素數(shù);以及所述第三計算單元判斷所述相乘后的基點的y坐標是否小于(p-1)/2,作為所述預定的條件。
6.如權(quán)利要求4所述的加密設(shè)備,其中所述橢圓曲線通過下式定義在有限域GF(2m)上y2+xy=x3+ax2+b其中m是自然數(shù),且由根為α的f(x)表示GF(2m)上的生成多項式;以及作為所述預定條件的是所述第三計算單元判斷所述相乘后的基點的y坐標的α生成多項式中項αs的系數(shù)是否等于所述相乘后的基點的x坐標的α生成多項式中項αs的系數(shù),其中s表示所述相乘后的基點的x坐標的α生成多項式中的非零系數(shù)項中的最低次數(shù)。
7.如權(quán)利要求2所述的加密設(shè)備,其中所述橢圓曲線通過下式定義在有限域GF(p)上y2=x3+a×x+b其中p是素數(shù);存儲在所述存儲單元中的所述明文是標量;以及所述加密單元包括隨機數(shù)產(chǎn)生單元,用于產(chǎn)生隨機數(shù),該隨機數(shù)是標量;第二計算單元,用于將所述橢圓曲線上的公共密鑰點乘以所述隨機數(shù);轉(zhuǎn)換單元,用于對所述明文應(yīng)用轉(zhuǎn)換函數(shù),以產(chǎn)生所述橢圓曲線上的明文點,其中所述轉(zhuǎn)換函數(shù)用于將標量轉(zhuǎn)換為所述橢圓曲線上的對應(yīng)點;第三計算單元,用于將所述明文點和所述相乘后的公共密鑰點相加,以獲得求和點;第一計算單元,用于判斷所述求和點的y坐標是否小于(p-1)/2,以及如果所述判斷是肯定的,則將所述橢圓曲線上的基點乘以所述隨機數(shù),以及如果所述判斷是否定的,則將所述橢圓曲線上的基點乘以所述隨機數(shù)的對應(yīng)負數(shù);以及產(chǎn)生單元,用于產(chǎn)生所述密文,該密文包括相乘后的基點以及所述求和點的x坐標,所述求和點是所述加密點。
8.如權(quán)利要求2所述的加密設(shè)備,其中所述橢圓曲線通過下式定義在有限域GF(p)上y2=x3+a×x+b其中p是素數(shù);存儲在所述存儲單元中的所述明文是標量;以及所述加密單元包括隨機數(shù)產(chǎn)生單元,用于產(chǎn)生隨機數(shù),該隨機數(shù)是標量;第一計算單元,用于將所述橢圓曲線上的基點乘以所述隨機數(shù);第二計算單元,用于將所述橢圓曲線上的公共密鑰點乘以所述隨機數(shù);第三計算單元,用于對所述明文和所述相乘后的公共密鑰點的x坐標執(zhí)行異或運算;以及產(chǎn)生單元,用于產(chǎn)生所述密文,該密文包括作為所述異或運算結(jié)果所獲得的異或值以及所述相乘后的基點的x坐標,該相乘后的基點是所述加密點。
9.如權(quán)利要求2所述的加密設(shè)備,其中存儲在所述存儲單元中的所述明文是內(nèi)容密鑰;所述加密單元通過對所述內(nèi)容密鑰進行加密,產(chǎn)生所述密文;以及所述加密設(shè)備還包括內(nèi)容加密單元,用于利用所述內(nèi)容密鑰對內(nèi)容進行加密;以及內(nèi)容輸出單元,用于輸出所述加密的內(nèi)容。
10.一種解密設(shè)備,利用作為安全性基礎(chǔ)的橢圓曲線離散對數(shù)問題對密文進行解密,所述解密設(shè)備包括獲取單元,用于獲取所述密文,該密文包括橢圓曲線上加密點的x坐標,所述加密點是通過對明文執(zhí)行橢圓曲線加密產(chǎn)生的;以及解密單元,用于利用所述獲取的密文中包含的x坐標,計算所述橢圓曲線上所述加密點的y坐標,以及利用所述加密點和所述獲取的密文中包含的其他信息,執(zhí)行橢圓曲線解密,以產(chǎn)生解密的文本。
11.如權(quán)利要求10所述的解密設(shè)備,其中所述橢圓曲線通過下式定義在有限域GF(p)上y2=x3+a×x+b其中p是素數(shù);所述獲取單元從如權(quán)利要求5所述的加密設(shè)備中獲取所述密文;以及所述解密單元包括平方根計算單元,用于將所述獲取的密文中包含的x坐標代入式y(tǒng)2=x3+a×x+b中,以得到兩個解y,從所述兩個解y中選擇小于(p-1)/2的一個解,并產(chǎn)生第一解密點,所述第一解密點由所述獲取的密文中包含的x坐標以及所述選擇作為y坐標的解y組成;標量乘法單元,用于將所述第一解密點乘以秘密密鑰,以產(chǎn)生第二解密點,其中所述秘密密鑰是標量,所述公共密鑰點是通過將所述橢圓曲線上的基點乘以所述秘密密鑰產(chǎn)生的;以及解密的文本計算單元,用于從所述獲取的密文中包含的所述求和點中減去所述第二解密點,并對作為所述減法結(jié)果所獲得的點應(yīng)用逆轉(zhuǎn)換函數(shù),以產(chǎn)生所述解密的文本,其中所述逆轉(zhuǎn)換函數(shù)用于將所述橢圓曲線上的點轉(zhuǎn)換成對應(yīng)的標量。
12.如權(quán)利要求10所述的解密設(shè)備,其中所述橢圓曲線通過下式定義在有限域GF(2m)上y2+xy=x3+ax2+b其中m是自然數(shù),且GF(2m)中的生成多項式用根為α的f(x)表示;所述獲取單元從如權(quán)利要求6所述的加密設(shè)備中獲取所述密文;以及所述解密單元包括檢測單元,用于檢測所述獲取的密文中包含的x坐標的α生成多項式中的非零系數(shù)項中的最低次數(shù)s;求解單元,用于將所述獲取的密文中包含的x坐標代入所述式y(tǒng)2+xy=x3+ax2+b中,以得到兩個解y,從所述兩個解y中選擇一個解y,該解的α生成多項式包括的項αs的系數(shù)與所述獲取的密文中包含的x坐標的α生成多項式中的項αs的系數(shù)相等,并產(chǎn)生第一解密點,所述第一解密點由所述獲取的密文中包含的x坐標和所述選擇作為y坐標的解y組成;標量乘法單元,用于將所述第一解密點乘以秘密密鑰,以產(chǎn)生第二解密點,該秘密密鑰是標量,所述公共密鑰點是通過將所述橢圓曲線上的基點乘以所述秘密密鑰產(chǎn)生的;以及解密的文本計算單元,用于從所述獲取的密文中包含的所述求和點減去所述第二解密點,并對作為所述減法結(jié)果所獲得的點應(yīng)用逆轉(zhuǎn)換函數(shù),以產(chǎn)生所述解密的文本,其中所述逆轉(zhuǎn)換函數(shù)用于將所述橢圓曲線上的點轉(zhuǎn)換成對應(yīng)的標量。
13.如權(quán)利要求10所述的解密設(shè)備,其中所述橢圓曲線通過下式定義在有限域GF(p)上y2=x3+a×x+b其中p是素數(shù);所述獲取單元從如權(quán)利要求7所述的加密設(shè)備中獲取所述密文;以及所述解密單元包括平方根計算單元,用于將所述獲取的密文中包含的x坐標代入式y(tǒng)2=x3+a×x+b中,以得到兩個解y,從所述兩個解y中選擇小于(p-1)/2的一個解,并產(chǎn)生第一解密點,所述第一解密點由所述獲取的密文中包含的x坐標和選擇作為y坐標的解y組成;標量乘法單元,用于將所述獲取的密文中包含的相乘后的基點乘以秘密密鑰,以產(chǎn)生第二解密點,該秘密密鑰是標量,所述公共密鑰點是通過將所述橢圓曲線上的所述基點乘以所述秘密密鑰產(chǎn)生的;以及解密的文本計算單元,用于從所述第一解密點中減去所述第二解密點,并對作為所述減法結(jié)果所獲得的點應(yīng)用逆轉(zhuǎn)換函數(shù),以產(chǎn)生所述解密的文本,其中所述逆轉(zhuǎn)換函數(shù)用于將所述橢圓曲線上的點轉(zhuǎn)換成對應(yīng)的標量。
14.如權(quán)利要求10所述的解密設(shè)備,其中所述橢圓曲線通過下式定義在有限域GF(p)上y2=x3+a×x+b其中p是素數(shù);所述獲取單元從如權(quán)利要求8所述的加密設(shè)備中獲取所述密文;以及所述解密單元包括平方根計算單元,用于將所述獲取的密文中包含的x坐標代入式y(tǒng)2=x3+a×x+b中,以得到兩個解y,從所述兩個解y中選擇小于(p-1)/2的一個解,并產(chǎn)生第一解密點,所述第一解密點由所述獲取的密文中包含的x坐標和選擇作為y坐標的解y組成;標量乘法單元,用于將所述第一解密點乘以秘密密鑰,以產(chǎn)生第二解密點,該秘密密鑰是標量,所述公共密鑰點是通過將所述橢圓曲線上的基點乘以所述秘密密鑰產(chǎn)生的;以及解密的文本計算單元,用于對所述獲取的密文中包含的異或值和所述第二解密點的x坐標執(zhí)行異或運算,以產(chǎn)生所述解密的文本。
15.如權(quán)利要求10所述的解密設(shè)備,其中所述獲取單元從如權(quán)利要求9所述的加密設(shè)備中獲取所述密文和所述加密的內(nèi)容;所述解密單元對所述密文進行解密,以產(chǎn)生所述解密的文本,該解密的文本是解密的內(nèi)容密鑰;以及所述解密設(shè)備還包括內(nèi)容解密單元,用于利用所述解密的內(nèi)容密鑰,對所述加密的內(nèi)容進行解密,以產(chǎn)生解密的內(nèi)容;以及內(nèi)容再現(xiàn)單元,用于再現(xiàn)所述解密的內(nèi)容。
16.一種在加密設(shè)備中使用的加密方法,利用作為安全性基礎(chǔ)的橢圓曲線離散對數(shù)問題對明文進行加密,包括加密步驟,對所述明文執(zhí)行橢圓曲線加密,并產(chǎn)生密文,該密文包括橢圓曲線上加密點的x坐標,所述加密點是通過所述橢圓曲線加密產(chǎn)生的;以及輸出步驟,輸出所述密文。
17.一種在加密設(shè)備中使用的計算機可讀程序,利用作為安全性基礎(chǔ)的橢圓曲線離散對數(shù)問題對明文進行加密,所述程序包括用于執(zhí)行以下步驟的代碼加密步驟,對所述明文執(zhí)行橢圓曲線加密,并產(chǎn)生密文,該密文包括橢圓曲線上加密點的x坐標,所述加密點是通過所述橢圓曲線加密產(chǎn)生的;以及輸出步驟,輸出所述密文。
18.如權(quán)利要求17所述的程序,記錄在計算機可讀存儲介質(zhì)中。
19.一種解密設(shè)備中使用的解密方法,利用作為安全性基礎(chǔ)的橢圓曲線離散對數(shù)問題對密文進行解密,所述方法包括獲取步驟,獲取所述密文,該密文包括橢圓曲線上加密點的x坐標,所述加密點是通過對明文執(zhí)行橢圓曲線加密產(chǎn)生的;以及解密步驟,利用所述獲取的密文中包含的x坐標,計算所述橢圓曲線上的所述加密點的y坐標,以及利用所述加密點和所述獲取的密文中包含的其他信息,執(zhí)行橢圓曲線解密,以產(chǎn)生解密的文本。
20.一種在解密設(shè)備中使用的計算機可讀程序,利用作為安全性基礎(chǔ)的橢圓曲線離散對數(shù)問題對密文進行解密,所述程序包括用于執(zhí)行以下步驟的代碼獲取步驟,獲取所述密文,所述密文包括橢圓曲線上加密點的x坐標,所述加密點是通過對明文執(zhí)行橢圓曲線加密產(chǎn)生的;以及解密步驟,利用所述獲取的密文中包含的x坐標,計算所述橢圓曲線上的所述加密點的y坐標,并利用所述加密點和所述獲取的密文中包含的其他信息,執(zhí)行橢圓曲線解密,以產(chǎn)生解密的文本。
21.如權(quán)利要求20所述的程序,記錄在計算機可讀存儲介質(zhì)中。
全文摘要
提供一種內(nèi)容傳送系統(tǒng),使得利用ElGamal密碼時,能夠減小密文的長度。內(nèi)容傳送設(shè)備對內(nèi)容密鑰執(zhí)行橢圓曲線加密,產(chǎn)生加密的內(nèi)容密鑰,該加密的內(nèi)容密鑰包括通過橢圓曲線加密獲得的橢圓曲線點的x坐標,并輸出該加密的內(nèi)容密鑰。內(nèi)容接收設(shè)備接收該加密的內(nèi)容密鑰,并利用該加密的內(nèi)容密鑰中包含的x坐標,計算該橢圓曲線點的y坐標。然后該內(nèi)容接收設(shè)備利用該橢圓曲線點和該加密的內(nèi)容密鑰中包含的其他信息,執(zhí)行橢圓曲線解密,以產(chǎn)生解密的內(nèi)容密鑰。
文檔編號H04L9/28GK1890916SQ200480035869
公開日2007年1月3日 申請日期2004年10月1日 優(yōu)先權(quán)日2003年10月3日
發(fā)明者布田裕一, 大森基司 申請人:松下電器產(chǎn)業(yè)株式會社