密鑰共享系統、共享密鑰生成裝置及共享密鑰復原裝置的製作方法
2023-12-06 12:25:01 1
專利名稱:密鑰共享系統、共享密鑰生成裝置及共享密鑰復原裝置的製作方法
技術領域:
本發明涉及作為信息保密技術的加密技術,尤其涉及一種未被第三者知曉便配送密鑰的技術。
背景技術:
以往,為從發送裝置向接收裝置秘密發送信息,往往採用公開密鑰加密方式。
在公開密鑰加密方式中,發送裝置利用接收裝置的公開密鑰,對通信內容加密來發送,接收裝置接收被加密了的通信內容,利用自身的秘密密鑰,對所接收的通信內容解密,從而得到原通信內容。(參照比如非專利文獻1)。
1996年,作為可高速處理的公開密鑰密碼,推出了一種NTRU密碼(參照比如非專利文獻2)。在NTRU密碼中,由於利用可高速運算的多項式運算來進行加密及解密,因而與進行冪運算的RSA密碼及進行橢圓曲線上的點的標量乘法運算的橢圓曲線密碼相比,可由軟體來進行比這些傳統的公開密鑰密碼更高速的處理。
然而,在該NTRU密碼中,在利用公開密鑰對明碼文本加密以生成加密文本,並利用正規的秘密密鑰來對加密文本解密以生成解密文本時,在有的場合下解密文本與原明碼文本相異。這一現象稱為發生了解密錯誤。作為避免解密錯誤的方法,披露了一種對明碼文本附加附加信息來進行加密,並與明碼文本的散列函數值一起發送的方法(參照比如專利文獻1)。
另一方面,近年來,作為公開密鑰密碼的新概念,推出了一種密鑰嵌入機制(Key Encapsulation Mechanisms)的方式(參照比如非專利文獻3)。該密鑰嵌入機制,是一種利用公開密鑰密碼,在發送裝置與接收裝置之間配送共享密鑰的算法,發送裝置在加密算法E中輸入接收者的公開密鑰pk,生成加密文本C及共享密鑰K,並將加密文本C傳送給接收裝置。接下來,接收裝置在解密算法D中輸入秘密密鑰sk及加密文本C,求出與發送裝置相同的共享密鑰K。
這樣,在利用密鑰嵌入機制,由發送裝置與接收裝置來共享了共享密鑰K後,發送裝置利用共享密鑰K,由公共密鑰加密方式來加密應向接收裝置發送的明碼文本,並生成加密文本,並將所生成的加密文本發送給接收裝置。接收裝置接收加密文本,利用共享密鑰K,由上述公共密鑰加密方式,對所接收的加密文本解密,從而生成解密文本。
密鑰嵌入機制的特徵在於,雖然從發送者向接收者單方面發送信息,但發送者不能故意作成共享密鑰,可抑制基於發送者的非法行為,這一點是現有技術所沒有的。
作為這種密鑰嵌入機制的一例,公開了被稱為RSA-KEM的算法(參照比如非專利文獻3。)。以下對該非專利文獻3中記載的RSA-KEM算法作以說明。
(1)RSA-KEM的系統參數RSA-KEM具有以下系統參數。
·散列函數G對於散列函數,由於非專利文獻1中已有詳述,因而在這裡省略說明。
(2)RSA-KEM的公開密鑰及秘密密鑰·選擇質數p,q,生成n=p·q。
·計算(p-1)與(q-1)的最小公倍數,並將計算結果設為L。
·隨機性選出與L互為質數的e。e是ZL的要素。
計算d=1/e mod L。
這裡,ZL是由{0,1,2,...L-1}組成的集合。
·將公開密鑰pk作為(e,n),將秘密密鑰s k作為(d,n)。
(3)RSA-KEM的加密在加密時,在下述的加密算法KemE中輸入公開密鑰pk,輸出共享密鑰K及加密文本C。以下對加密算法KemE作以說明。
·隨機性生成Zn的要素s。
這裡,Zn是由{0,1,2,...n-1}組成的集合。
·生成K=G(s)。
·生成C=s^e mod n。這裡,「^」表示取冪。
·輸出共享密鑰K及加密文本C。
(4)RSA-KEM的解密在解密時,在下述的解密算法KemD中,輸入加密文本C及秘密密鑰sk,輸出共享密鑰K。以下對解密算法KemD作以說明。
·生成s=C^d mod n。
·生成G(s),並設為K=G(s)。
·輸出共享密鑰K。
在將該RSA-KEM算法用於在發送裝置與接收裝置之間進行加密通信的加密系統的場合下,首先,發送裝置取得通信目標即接收裝置的公開密鑰pk,將所取得的公開密鑰pk輸入到上述的加密算法KemE,導出共享密鑰K及加密文本C,並將加密文本C發送給接收裝置。接下來,接收裝置從發送裝置接收加密文本C,將所接收的加密文本C及自身所有的秘密密鑰sk輸入到上述解密算法KemD,並導出與發送裝置所導出的密鑰相同的共享密鑰K。
如上所述,在RSA-KEM算法中,由加密算法KemE,利用公開密鑰pk對隨機性生成的要素s加密,生成加密文本C,接著由解密算法KemD,從加密文本C利用秘密密鑰sk來解密,以求出在加密算法KemE中生成的隨機要素s。由於在加密算法KemE及解密算法KemD雙方中,在同一散列函數G內輸入同一s值,因而可在各自中導出相同的共享密鑰K。
其結果是,具有秘密密鑰sk的接收裝置,可導出與發送裝置所導出的密鑰相同的共享密鑰K。
另一方面,即使不知曉秘密密鑰sk的其它接收裝置取得了比如公開密鑰pk並接收到了加密文本C,由於不知曉秘密密鑰sk,因而也不能從加密文本C來求出要素s,不能導出與發送裝置所導出的密鑰相同的共享密鑰K。
這樣,發送裝置與接收裝置可秘密地共享共享密鑰K,其後,發送裝置可利用共享密鑰K,由公共密鑰加密方式,對與接收裝置通信的通信內容數據加密,生成加密文本並進行發送,接收裝置接收加密文本,利用同一共享密鑰K,對由同一公共密鑰加密方式接收的加密文本解密,以得到原通信內容數據。
(專利文獻1)特開2002-252611號公報
(非專利文獻1)岡本龍明,山本博資,「現代密碼」,系列/信息科學的數學,產業圖書,1997。
(非專利文獻2)Jeffery Hoffstein,Jill Pipher,and Joseph H.Silverman,「NTRUAring based public key cryptosystem」,Lecture Notes inComputer Science,1423,pp,267-288,Springer-Verlag,1998.
(非專利文獻3)Victor Shoup,「A proposal for an ISO standard for publickey encryption(version 2.1)」,[online],2001年12月20日,[2002年9月29日檢索],網際網路URLHttp//shoup.net/papers/iso-2_1.pdf
如上所述,在RSA-KEM算法中,將如果不能從加密文本C來獲知秘密密鑰便不能導出的要素s輸入到散列函數G,以導出共享密鑰K。因此如果不能獲知秘密密鑰便不能導出其共享密鑰K。
然而,在利用NTRU密碼,並採用密鑰嵌入機制即RSA-KEM算法來進行共享密鑰配送時,在NTRU密碼中發生了解密錯誤的場合下,即使採用秘密密鑰也不能正確導出要素s,因而不能導出正確的共享密鑰K。這樣在發送裝置與接收裝置之間可能導出相異的共享密鑰,因而存在著不能進行從發送裝置至接收裝置的可靠的加密通信的問題點。
發明內容
為此,本發明旨在解決上述問題點,其目的在於提供可防止在共享密鑰生成裝置與共享密鑰復原裝置之間導出相異的共享密鑰的密鑰共享系統、共享密鑰生成裝置、共享密鑰復原裝置、共享密鑰生成方法、共享密鑰復原方法、共享密鑰生成程序及共享密鑰復原程序。
為達到上述目的,推出一種未被第三者知曉便生成共享密鑰的共享密鑰生成裝置及共享密鑰復原裝置所構成的密鑰共享系統,上述共享密鑰生成裝置具有生成種子值的種子值生成單元;第1共享密鑰生成單元,其從所生成的上述種子值來生成盲值及共享密鑰;加密單元,其基於所生成的上述盲值,對所生成的上述種子值加密,以生成加密信息;發送所生成的加密信息的發送單元,上述共享密鑰復原裝置具有接收上述加密信息的接收單元;解密單元,其對所接收的上述加密信息解密以生成解密種子值;第2共享密鑰生成單元,其由與上述第1共享密鑰生成單元相同的方法,從所生成的上述解密種子值來生成解密盲值及解密共享密鑰;再加密單元,其基於所生成的上述解密盲值,對所生成的上述解密種子值加密,以生成再加密信息;判斷單元,其基於所接收的上述加密信息及所生成的上述再加密信息,來判斷是否輸出上述解密共享密鑰;輸出單元,其在判斷為輸出的場合下,輸出所生成的上述解密共享密鑰。
基於該構成,共享密鑰生成裝置,對所生成的上述種子值加密,生成加密信息來發送,共享密鑰復原裝置從所接收的加密信息生成解密種子值,對所生成的上述解密種子值再次加密,以生成再加密信息,基於所接收的上述加密信息及再次生成的上述再加密信息,來判斷是否輸出上述解密共享密鑰,因而在由共享密鑰生成裝置生成的共享密鑰與由共享密鑰復原裝置生成的解密共享密鑰一致的場合下,可輸出解密共享密鑰。換言之,具有在由共享密鑰生成裝置生成的共享密鑰與由共享密鑰復原裝置生成的解密共享密鑰不一致的場合下,可不輸出解密共享密鑰的效果。
這是因為,由於上述共享密鑰復原裝置,由與上述共享密鑰生成裝置同樣的方法,從所生成的上述解密種子值來生成解密盲值,基於所生成的上述解密盲值,對所生成的上述解密種子值加密,因而如果在上述共享密鑰復原裝置的上述復原單元中,生成正確的解密種子值,便可期待由上述共享密鑰復原裝置生成的再加密信息與由上述共享密鑰生成裝置生成的加密信息成為相同。
此外,由於上述共享密鑰生成裝置從上述種子值來生成共享密鑰及盲值,並基於所生成的上述盲值,對所生成的上述種子值加密,因而具有可擾亂種子值的效果。
這裡,上述共享密鑰生成裝置還具有取得內容的取得單元;加密單元,其利用所生成的上述共享密鑰,對所取得的內容加密,以生成加密內容,上述發送單元,還發送所生成的上述加密內容,上述接收單元,還接收上述加密內容,上述共享密鑰復原裝置還具有解密單元,其利用所輸出的上述解密共享密鑰,對所接收的上述加密內容解密,以生成解密內容;輸出所生成的解密內容的輸出單元。
基於該構成,由於共享密鑰生成裝置利用所生成的上述共享密鑰,對所取得的內容加密,以生成加密內容,上述共享密鑰復原裝置利用所輸出的上述解密共享密鑰,對所接收的上述加密內容解密,以生成解密內容,因而具有未被第三者知曉便從共享密鑰生成裝置向共享密鑰復原裝置傳送內容的效果。
本發明是一種未被第三者知曉便向對方裝置傳送共享密鑰的共享密鑰生成裝置,具有生成種子值的種子值生成單元;共享密鑰生成單元,其從所生成的上述種子值來生成盲值及共享密鑰;加密單元,其基於所生成的上述盲值,對所生成的上述種子值加密,以生成加密信息;發送所生成的加密信息的發送單元。
基於該構成,由於上述共享密鑰生成裝置從上述種子值來生成盲值,基於所生成的上述盲值,對所生成的上述種子值加密,因而具有可擾亂種子值的效果。
這裡,上述共享密鑰生成單元,對上述種子值施行單向性函數,生成函數值,並從所生成的函數值來生成上述盲值及上述共享密鑰,上述加密單元包含取得公開密鑰的公開密鑰取得部;公開密鑰加密部,其利用所取得的上述公開密鑰及所生成的上述盲值,對所生成的上述種子值施行公開密鑰加密算法,並作為上述加密信息來生成加密種子值。
基於該構成,由於上述共享密鑰生成裝置,對上述種子值施行單向性函數,生成函數值,並從所生成的函數值來生成上述盲值及上述共享密鑰,因而可期待在接受了加密信息的對方裝置中,由同一方法,從由對方裝置解密的種子值,來生成與上述盲值及上述共享密鑰分別相同的盲值及共享密鑰。
此外,由於上述共享密鑰生成裝置取得公開密鑰,利用所取得的上述公開密鑰,對上述種子值施行公開密鑰加密算法,並生成上述加密信息,因而可採用安全性更高的公開密鑰加密方式。
這裡,上述公開密鑰加密算法,基於NTRU加密方式,上述公開密鑰取得部,作為上述公開密鑰,取得由NTRU加密方式的密鑰生成算法生成的公開密鑰多項式,上述公開密鑰加密部,從上述種子值來生成種子值多項式,從上述盲值來生成盲值多項式,由NTRU加密方式的加密算法,將上述公開密鑰多項式用作密鑰,為攪亂上述種子值多項式而利用上述盲值多項式,對上述種子值多項式加密,並作為上述加密種子值來生成加密種子值多項式,上述發送單元,作為上述加密種子值,發送所生成的上述加密種子值多項式。
基於該構成,作為公開密鑰加密算法,可採用NTRU加密算法。
這裡,上述加密單元包含取得公開密鑰的公開密鑰取得部;公開密鑰加密部,其生成盲值,利用所取得的上述公開密鑰及所生成的上述盲值,對所生成的上述種子值施行公開密鑰加密算法,以生成公開密鑰加密文本;函數部,其對所生成的上述種子值、上述盲值及上述共享密鑰的任意一個以上施行第2單向性函數,以生成第2函數值,上述加密單元,生成包含上述公開密鑰加密文本及上述第2函數值的上述加密信息。
基於該構成,由於共享密鑰生成裝置對所生成的上述種子值施行第2單向性函數,以生成第2函數值,並發送包含上述第2函數值的上述加密信息,因而在對方裝置中,可不進行再加密,而利用第2函數值,來進行解密共享密鑰的輸出判斷。
這裡,上述共享密鑰生成單元,對上述種子值施行單向函數,生成函數值,並從所生成的函數值來生成上述盲值及上述共享密鑰。
基於該構成,由於對種子值施行第1單向函數,並從所得到的第1函數值來生成上述共享密鑰,因而即使在種子值暴露的場合下,也難以破解共享密鑰。
這裡,上述共享密鑰生成單元,取代上述盲值及上述共享密鑰的生成,對上述種子值施行第1單向性函數,生成第1函數值,並從所生成的第1函數值來生成上述共享密鑰。
基於該構成,由於對種子值施行第1單向函數,並從所得到的第1函數值來生成上述共享密鑰,因而即使在種子值暴露的場合下,也難以破解共享密鑰。
這裡,上述公開密鑰加密算法,基於NTRU加密方式,上述公開密鑰取得部,作為上述公開密鑰,取得由NTRU加密方式的密鑰生成算法生成的公開密鑰多項式,上述公開密鑰加密部,從上述種子值來生成種子值多項式,從上述盲值來生成盲值多項式,由NTRU加密方式的加密算法,將上述公開密鑰多項式用作密鑰,為攪亂上述種子值多項式而利用上述盲值多項式,對上述種子值多項式加密,並作為上述公開密鑰加密文本來生成加密種子值多項式,上述加密單元,生成包含作為上述公開密鑰加密文本的上述加密種子值多項式及上述第2函數值的上述加密信息。
基於該構成,作為公開密鑰加密算法,可採用NTRU加密算法。
這裡,上述共享密鑰生成單元,對上述種子值施行單向性函數,生成函數值,並從所生成的函數值來生成驗證值、上述盲值及上述共享密鑰,上述加密單元包含取得公開密鑰的公開密鑰取得部;第1加密部,其利用所取得的上述公開密鑰及所生成的上述盲值,對所生成的上述驗證值施行公開密鑰加密算法,以生成第1加密文本;第2加密部,其基於所生成的上述驗證值,對所生成的上述種子值施行其它的運算算法,以生成第2加密文本,上述加密單元,生成包含上述第1加密文本及上述第2加密文本的上述加密信息。
基於該構成,共享密鑰生成裝置,利用所取得的上述公開密鑰及所生成的上述盲值,對所生成的上述驗證值施行公開密鑰加密算法,以生成第1加密文本,基於所生成的上述驗證值,對所生成的上述種子值施行其它的運算算法,以生成第2加密文本,並發送包含上述第1加密文本及上述第2加密文本的上述加密信息。這樣,由於採用2個階段的算法,因而可降低上述第1加密文本及上述第2加密文本受到攻擊從而被破解的概率。
這裡,上述共享密鑰加密算法,基於NTRU加密方式,上述公開密鑰取得部,作為上述公開密鑰,取得由NTRU加密方式的密鑰生成算法生成的公開密鑰多項式,上述第1加密部,從上述驗證值來生成驗證值多項式,從上述盲值來生成盲值多項式,由NTRU加密方式的加密算法,將上述公開密鑰多項式用作密鑰,為攪亂上述驗證值多項式而利用上述盲值多項式,對上述驗證值多項式加密,並作為上述第1加密文本來生成加密驗證值多項式,上述加密單元,生成包含作為上述第1加密文本的上述加密驗證值多項式及上述第2加密文本的上述加密信息。
基於該構成,作為公開密鑰加密算法,可採用NTRU加密算法。
這裡,上述其它的運算算法,是公共密鑰加密算法,上述第2加密部,將上述驗證值用作密鑰,對上述種子值施行公共密鑰加密算法,以生成上述第2加密文本。
上述其它的運算算法是按位加,上述第2加密部,對上述驗證值與上述種子值施行按位加,以生成上述第2加密文本。
上述其它的運算算法是加法運算,上述第2加密部,對上述驗證值與上述種子值施行加法運算,以生成上述第2加密文本。
上述其它的運算算法是乘法運算,上述第2加密部,對上述驗證值與上述種子值施行乘法運算,以生成上述第2加密文本。
基於這些構成,作為其它的運算算法,可採用公共密鑰加密算法、按位加、加法運算及乘法運算。
這裡,上述種子值生成單元生成隨機數,並將所生成的隨機數作為上述種子值。
基於該構成,由於共享密鑰生成裝置生成隨機數,並將所生成的隨機數作為上述種子值,因而在生成種子值、生成盲值及共享密鑰、生成加密信息、發送上述加密信息後,在接下來生成種子值時,可生成與最初生成的種子值不同的後續種子值。因此由共享密鑰生成裝置發送的加密信息將每次各異。因而即使非法的第三者盜聽、記錄了從共享密鑰生成裝置向對方裝置發送的加密信息,也難以從所記錄的各加密信息來破譯原種子值。
這裡,上述共享密鑰生成單元,對上述種子值施行單向性函數,生成函數值,並從所生成的函數值來生成上述盲值及上述共享密鑰。
基於該構成,由於共享密鑰生成裝置,對上述種子值施行單向性函數,生成函數值,並從所生成的函數值來生成上述盲值及上述共享密鑰,因而可期待在接受到加密信息的對方裝置中,由同一方法,從由對方裝置解密了的種子值來生成與上述盲值及上述共享密鑰分別相同的盲值及共享密鑰。
這裡,上述單向性函數是散列函數,上述共享密鑰生成單元,對上述種子值施行散列函數。
基於該構成,由於共享密鑰生成裝置對上述種子值施行散列函數,因而可以可靠地得到函數值。
這裡,上述共享密鑰生成單元,將所生成的函數值的一部分作為上述盲值,將其它部分作為上述共享密鑰,由此生成上述盲值及上述共享密鑰。
基於該構成,由於共享密鑰生成裝置,將所生成的函數值的一部分作為上述盲值,將其它部分作為上述共享密鑰,因而可從函數值可靠地得到上述盲值及上述共享密鑰。
這裡,上述共享密鑰生成裝置還具有取得內容的取得單元;加密單元,其利用所生成的上述共享密鑰,對所取得的內容加密,以生成加密內容,上述發送單元,還發送所生成的上述加密內容。
基於該構成,由於共享密鑰生成裝置利用所生成的上述共享密鑰,對所取得的內容加密,以生成加密內容並發送,因而可以未被第三者知曉便在對方裝置中解密地發送內容。
此外本發明是一種未被第三者知曉便從共享密鑰生成裝置來接受共享密鑰的共享密鑰復原裝置,上述共享密鑰生成裝置生成種子值,從所生成的上述種子值來生成盲值及共享密鑰,基於所生成的上述盲值,對所生成的上述種子值加密,生成加密信息,並發送所生成的上述加密信息,上述共享密鑰復原裝置具有接收上述加密信息的接收單元;解密單元,其對所接收的上述加密信息解密,以生成解密種子值;共享密鑰生成單元,其由與基於上述共享密鑰生成裝置的共享密鑰生成方法相同的方法,從所生成的上述解密種子值來生成解密盲值及解密共享密鑰;再加密單元,其基於所生成的上述解密盲值,對所生成的上述解密種子值加密,以生成再加密信息;判斷單元,其基於所接收的上述加密信息及所生成的上述再加密信息,來判斷是否輸出上述解密共享密鑰;輸出單元,其在判斷為輸出的場合下,輸出所生成的上述解密共享密鑰。
基於該構成,由於共享密鑰復原裝置從所接受的加密信息來生成解密種子值,對所生成的上述解密種子值再次加密,生成再加密信息,基於所接收的上述加密信息及再次生成的上述再加密信息,來判斷是否輸出上述解密共享密鑰,因而在由共享密鑰生成裝置生成的共享密鑰與由共享密鑰復原裝置生成的解密共享密鑰一致的場合下,可輸出解密共享密鑰。換言之,具有在由共享密鑰生成裝置生成的共享密鑰與由共享密鑰復原裝置生成的解密共享密鑰不一致的場合下,可不輸出解密共享密鑰的效果。
這裡,上述共享密鑰生成裝置對上述種子值施行單向性函數,生成函數值,從所生成的函數值來生成上述盲值及上述共享密鑰,取得公開密鑰,利用所取得的上述公開密鑰及所生成的上述盲值,對所生成的上述種子值施行公開密鑰加密算法,作為上述加密信息來生成上述加密種子值,並發送上述加密種子值,上述接收單元,作為上述加密信息來接收上述加密種子值,上述解密單元包含秘密密鑰取得部,其取得與上述公開密鑰對應的秘密密鑰;公開密鑰解密部,其利用所取得的秘密密鑰,對所接收的上述加密種子值,施行與上述公開密鑰加密算法對應的公開密鑰解密算法,以生成上述解密種子值,上述共享密鑰生成單元,對所生成的上述解密種子值施行上述單向性函數,生成解密函數值,從所生成的上述解密函數值來生成上述解密盲值及上述解密共享密鑰,上述再加密單元包含取得上述公開密鑰的公開密鑰取得部;再加密部,其利用所取得的上述公開密鑰及所生成的上述解密盲值,對所生成的上述解密種子值施行上述公開密鑰加密算法,作為上述再加密信息來生成上述再加密種子值,上述判斷單元,判斷所接收的上述加密種子值與所生成的上述再加密種子值是否一致,在一致的場合下,判斷為輸出上述解密共享密鑰。
基於該構成,由於共享密鑰復原裝置,判斷加密種子值與再加密種子值是否一致,在一致的場合下,判斷為輸出上述解密共享密鑰,因而具有可以可靠地進行輸出判斷的效果。
這裡,上述公開密鑰加密算法及上述公開密鑰解密算法,基於NTRU加密方式,上述共享密鑰生成裝置,作為上述公開密鑰,取得由NTRU加密方式的密鑰生成算法生成的公開密鑰多項式,從上述種子值來生成種子值多項式,從上述盲值來生成盲值多項式,由NTRU加密方式的加密算法,將上述公開密鑰多項式用作密鑰,為攪亂上述種子值多項式而利用上述盲值多項式,對上述種子值多項式加密,作為上述加密種子值來生成加密種子值多項式,作為上述加密種子值,來發送上述加密種子值多項式,上述接收單元,作為上述加密種子值,來接收上述加密種子值多項式,上述秘密密鑰取得部,作為上述秘密密鑰,來取得由NTRU加密方式的密鑰生成算法生成的秘密密鑰多項式,上述公開密鑰解密部,將所取得的上述秘密密鑰多項式用作密鑰,由NTRU加密方式的解密算法,對所接收的上述加密種子值多項式解密,生成解密種子值多項式,並從所生成的上述解密種子值多項式來生成上述解密種子值,上述公開密鑰取得部,作為上述公開密鑰來取得上述公開密鑰多項式,上述再加密部,從上述解密種子值來生成種子值多項式,從上述解密盲值來生成盲值多項式,由NTRU加密方式的加密算法,將上述公開密鑰多項式用作密鑰,為攪亂上述種子值多項式而利用上述盲值多項式,對上述種子值多項式加密,以生成再加密種子值多項式,上述判斷單元,判斷所接收的上述加密種子值多項式與所生成的上述再加密種子值多項式是否一致。
基於該構成,作為公開密鑰加密算法及公開密鑰解密算法,可以採用NTRU加密算法。
這裡,上述共享密鑰生成裝置取得公開密鑰,生成盲值,利用所取得的上述公開密鑰及所生成的上述盲值,對所生成的上述種子值施行公開密鑰加密算法,生成公開密鑰加密文本,對所生成的上述種子值、上述盲值及上述共享密鑰的任意一個以上,施行第2單向性函數,生成第2函數值,以生成包含上述公開密鑰加密文本及上述第2函數值的上述加密信息,並發送上述加密信息,上述接收單元,接收包含上述公開密鑰加密文本及上述第2函數值的上述加密信息,上述解密單元包含秘密密鑰取得部,其取得與上述公開密鑰對應的秘密密鑰;公開密鑰解密部,其利用所取得的上述秘密密鑰,對所接收的上述加密信息中包含的上述公開密鑰加密文本,施行與上述公開密鑰加密算法對應的公開密鑰解密算法,以生成解密種子值;函數部,其對所生成的解密種子值、上述解密盲值及上述解密共享密鑰的任意一個以上,施行上述第2單向性函數,以生成第2函數值,上述判斷單元,取代基於上述加密信息及上述再加密信息的判斷,而判斷所接收的上述加密信息中包含的上述第2函數值與所生成的上述解密第2函數值是否一致,在一致的場合下,判斷為輸出上述解密共享密鑰。
基於該構成,取代基於上述加密信息及上述再加密信息的判斷,而判斷所接收的上述加密信息中包含的上述第2函數值與所生成的上述解密第2函數值是否一致,在一致的場合下,判斷為輸出上述解密共享密鑰,因而具有可以可靠地進行輸出判斷的效果。
這裡,上述共享密鑰生成裝置,對上述種子值施行單向性函數,生成函數值,並從所生成的函數值生成上述盲值及上述共享密鑰,上述共享密鑰生成單元,對所生成的上述解密種子值施行上述第1單向性函數,生成解密函數值,並從所生成的上述解密函數值來生成上述解密盲值及上述解密共享密鑰。
基於該構成,由於對上述解密種子值施行上述第1單向性函數並從所得到的解密函數值,來生成上述解密共享密鑰,因而即使在解密種子值暴露的場合下,也難以推測解密共享密鑰。
這裡,上述共享密鑰生成裝置,取代上述盲值及上述共享密鑰的生成,而對上述種子值施行第1單向性函數,生成第1函數值,並從所生成的第1函數值生成上述共享密鑰,上述共享密鑰生成單元,取代上述解密盲值及上述解密共享密鑰的生成,而對所生成的上述解密種子值施行上述第1單向性函數,生成解密函數值,並從所生成的上述解密函數值生成上述解密共享密鑰。
基於該構成,由於對上述解密種子值施行上述第1單向性函數並從所得到的解密函數值,來生成上述解密共享密鑰,因而即使在解密種子值暴露的場合下,也難以推測解密共享密鑰。
這裡,上述公開密鑰加密算法及上述公開密鑰解密算法,基於NTRU加密方式,上述共享密鑰生成裝置,作為上述公開密鑰,取得由NTRU加密方式的密鑰生成算法生成的公開密鑰多項式,從上述種子值來生成種子值多項式,從上述盲值來生成盲值多項式,由NTRU加密方式的加密算法,將上述公開密鑰多項式用作密鑰,為攪亂上述種子值多項式而利用上述盲值多項式,對上述種子值多項式加密,作為上述公開密鑰加密文本來生成加密種子值多項式,以生成包含作為上述公開密鑰加密文本的上述加密種子值多項式及上述第2函數值的上述加密信息,上述秘密密鑰取得部,作為上述秘密密鑰,來取得由NTRU加密方式的密鑰生成算法生成的秘密密鑰多項式,上述公開密鑰解密部,從上述公開密鑰加密文本來生成公開密鑰加密文本多項式,將所取得的上述秘密密鑰多項式用作密鑰,由NTRU加密方式的解密算法,對上述公開密鑰加密文本多項式解密,生成解密種子值多項式,從所生成的上述解密種子值多項式來生成上述解密種子值。
基於該構成,作為公開密鑰加密算法及公開密鑰解密算法,可採用NTRU加密算法。
這裡,上述共享密鑰生成裝置,對上述種子值施行單向性函數,生成函數值,並從所生成的函數值來生成驗證值、上述盲值及上述共享密鑰,取得公開密鑰,利用所取得的上述公開密鑰及所生成的上述盲值,對所生成的上述驗證值施行公開密鑰加密算法,以生成第1加密文本,基於所生成的上述驗證值,對所生成的上述種子值施行其它的運算算法,以生成第2加密文本,從而生成包含上述第1加密文本及上述第2加密文本的上述加密信息,並發送所生成的上述加密信息,上述接收單元,接收包含上述第1加密文本及上述第2加密文本的上述加密信息,上述解密單元包含秘密密鑰取得部,其取得與上述公開密鑰對應的秘密密鑰;公開密鑰解密部,其利用所取得的秘密密鑰,對所接收的上述加密信息中包含的上述第1加密文本,施行與上述公開密鑰加密算法對應的公開密鑰解密算法,以生成解密驗證值;運算解密部,其基於所生成的解密驗證值,對所接收的上述加密信息中包含的上述第2加密文本,施行進行上述其它運算算法的逆運算的運算算法,以生成解密種子值,上述共享密鑰生成單元,對所生成的上述解密種子值施行上述單向性函數,生成解密函數值,從所生成的上述解密函數值來生成解密驗證值、上述解密盲值及上述解密共享密鑰,上述再加密單元包含取得上述公開密鑰的公開密鑰取得部;再加密部,其利用所取得的上述公開密鑰及所生成的上述解密盲值,對所生成的上述解密驗證值,施行上述公開密鑰加密算法,以生成上述再加密信息,上述判斷單元,判斷上述加密信息中包含的上述第1加密文本與所生成的上述再加密信息是否一致,在一致的場合下,判斷為輸出上述解密共享密鑰。
基於該構成,對上述第1加密文本,施行與上述公開密鑰加密算法對應的公開密鑰解密算法,生成解密驗證值,基於所生成的解密驗證值,對上述第2加密文本施行上述運算算法,生成解密種子值。這樣,由於採用2個階段的算法,因而可降低上述第1加密文本及上述第2加密文本受到攻擊而被破解的概率。
這裡,上述公開密鑰加密算法及上述公開密鑰解密算法,基於NTRU加密方式,上述共享密鑰生成裝置,作為上述公開密鑰,取得由NTRU加密方式的密鑰生成算法生成的公開密鑰多項式,從上述驗證值來生成驗證值多項式,從上述盲值來生成盲值多項式,由NTRU加密方式的加密算法,將上述公開密鑰多項式用作密鑰,為攪亂上述驗證值多項式而利用上述盲值多項式,對上述驗證值多項式加密,作為上述第1加密文本來生成加密驗證值多項式,以生成包含作為上述第1加密文本的上述加密驗證值多項式及上述第2加密文本的上述加密信息,並發送上述加密信息,上述接收單元,接收包含上述加密驗證值多項式及上述第2加密文本的上述加密信息,上述秘密密鑰取得部,作為上述秘密密鑰,來取得由NTRU加密方式的密鑰生成算法生成的秘密密鑰多項式,上述公開密鑰解密部,從上述第1加密文本來生成第1加密文本多項式,將所取得的上述秘密密鑰多項式用作密鑰,由NTRU加密方式的解密算法,對上述第1加密文本多項式解密,生成解密驗證多項式,從所生成的上述解密驗證值多項式來生成上述解密驗證值,上述公開密鑰取得部,取得上述公開密鑰多項式,上述再加密部,從上述解密驗證值來生成解密驗證值多項式,從上述解密盲值來生成盲值多項式,由NTRU加密方式的加密算法,將上述公開密鑰多項式用作密鑰,為攪亂上述解密驗證值多項式而利用上述盲值多項式,對上述解密驗證值多項式加密,作為上述再加密信息來生成再加密驗證值多項式,上述判斷單元,判斷作為上述第1加密文本的上述加密驗證值多項式與作為上述再加密信息的上述再加密驗證值多項式是否一致。
基於該構成,作為公開密鑰加密算法及公開密鑰解密算法,可採用NTRU加密算法。
這裡,上述其它的運算算法,是公共密鑰加密算法,進行上述逆運算的上述運算算法,是對應的公共密鑰解密算法,上述運算解密部,將上述解密驗證值用作密鑰,對上述第2加密文本施行公共密鑰解密算法,以生成上述解密種子值。
上述其它的運算算法及進行上述逆運算的上述運算算法是按位加,上述運算解密部,對上述解密驗證值與上述第2加密文本施行按位加,以生成上述解密種子值。
上述其它的運算算法是加法運算,進行上述逆運算的上述運算算法是減法運算,上述運算解密部,對上述解密驗證值與上述第2加密文本施行減法運算,以生成上述解密種子值。
上述其它的運算算法是乘法運算,進行上述逆運算的上述運算算法是除法運算,上述運算解密部,對上述解密驗證值與上述第2加密文本施行除法運算,以生成上述解密種子值。
基於這些構成,作為進行逆運算的上述運算算法,可採用公共密鑰解密算法、按位加、減法運算及除法運算。
這裡,上述共享密鑰生成單元,對上述解密種子值施行單向性函數,生成函數值,並從所生成的函數值來生成上述解密盲值及上述解密共享密鑰。
基於該構成,由於對種子值施行單向性函數,生成函數值,並從所生成的函數值來生成解密盲值及解密共享密鑰,因而可採用與共享密鑰生成裝置相同的方法。
這裡,上述單向性函數是散列函數,上述共享密鑰生成單元,對上述解密種子值施行散列函數。
基於該構成,由於對上述解密種子值施行散列函數,因而可以可靠地得到函數值。
這裡,上述共享密鑰生成單元,將所生成的函數值的一部分作為上述解密盲值,將其它部分作為上述解密共享密鑰,由此生成上述解密盲值及上述解密共享密鑰。
基於該構成,由於將所生成的函數值的一部分作為上述解密盲值,將其它部分作為上述解密共享密鑰,因而可從函數值可靠地得到上述解密盲值及上述解密共享密鑰。
這裡,上述共享密鑰生成裝置還取得內容,利用所生成的上述共享密鑰,對所取得的內容加密,以生成加密內容,並發送所生成的上述加密內容,上述共享密鑰解密裝置還具有接收上述加密內容的內容接收單元;解密單元,其利用所輸出的上述解密共享密鑰,對所接收的上述加密內容解密,以生成解密內容;再生單元,其再生所生成的上述解密內容。
基於該構成,由於上述共享密鑰復原裝置利用所輸出的上述解密共享密鑰,對所接收的上述加密內容解密,以生成解密內容,因而具有可以未被第三者知曉便從共享密鑰生成裝置接收內容的效果。
圖1是表示內容分發系統10的構成及構成要素之間的連接方式的概念圖。
圖2是表示加密裝置110的構成的方框圖。
圖3是表示解密裝置120的構成的方框圖。
圖4是表示加密裝置110及解密裝置120的動作的處理系統圖。
圖5是表示加密裝置110及解密裝置120的動作的流程圖。
圖6是表示加密裝置110b的構成的方框圖。
圖7是表示解密裝置120b的構成的方框圖。
圖8是表示加密裝置110b及解密裝置120b的動作的處理系統圖。
圖9是表示加密裝置110c的構成的方框圖。
圖10是表示解密裝置120c的構成的方框圖。
圖11是表示加密裝置110c及解密裝置120c的動作的處理系統圖。
圖12是表示加密裝置110c及解密裝置120c的變形例的動作的處理系統圖。
圖13是表示加密裝置110d的構成的方框圖。
圖14是表示解密裝置120d的構成的方框圖。
圖15是表示加密裝置110d及解密裝置120d的動作的流程圖。
圖16是表示加密裝置110d及解密裝置120d的動作的處理系統圖。
圖17是表示加密裝置110e的構成的方框圖。
圖18是表示解密裝置120e的構成的方框圖。
圖19是表示加密裝置110e及解密裝置120e的動作的處理系統圖。
圖20是表示加密裝置110e及解密裝置120e的變形例的動作的處理系統圖。
具體實施例方式
1.實施方式1
以下對作為本發明涉及的1個實施方式的內容分發系統10作以說明。內容分發系統10,是利用NTRU密碼來進行基於密鑰嵌入機制的密鑰分發,以進行加密通信的加密通信系統。
1.1 NTRU加密方式以下對內容分發系統10中所用的NTRU加密方式作簡單說明。NTRU加密方式,是利用多項式運算來進行加密及解密的公開密鑰加密方式。
對於NTRU加密方式及NTRU加密方式中的公開密鑰與秘密密鑰的生成方法,非專利文獻2中有詳述。
(1)NTRU加密方式的系統參數在NTRU加密方式中,存在整數系統參數N,p,q,後述的加密裝置及解密裝置具有這些系統參數。
在上述文獻中,作為系統參數示例,舉出(N,p,q)=(107,3,64)、(N,p,q)=(167,3,128)、(N,p,q)=(503,3,256)這3個示例。
以下在本實施方式中,作為系統參數N=167,來進行說明。
(2)NTRU加密方式的多項式運算如上所述,NTRU加密方式是一種由多項式運算來進行加密及解密的公開密鑰加密方式。
在NTRU加密方式中處理的多項式,對於上述系統參數N,是一種N-1因次以下的多項式。比如是一種當N=5時,X^4+X^3+1等的多項式。這裡,「X^a」意味著X的a次冪。
加密時或解密時所用的公開密鑰h、秘密密鑰f、明碼文本m、隨機數r、加密文本c,均作為N-1因次以下的多項式來表現(以下將其分別稱為公開密鑰多項式h、秘密密鑰多項式f、明碼文本多項式m、隨機數多項式r、加密文本多項式c)。
在多項式運算中,對上述系統參數N,利用關係式X^N=1來進行運算,使得運算結果始終成為N-1因次以下的多項式。
比如,如果將多項式與多項式的積設為×,將整數與多項式的積設為·,則在N=5的場合下,根據X^5=1的關係,多項式X^4+X^2+1與多項式X^3+X的積便成為(X^4+X^2+1)×(X^3+X)
=X^7+2·X^5+2·X^3+X=X^2×1+2·1+2·X^3+X=2·X^3+X^2+X+2這樣,在多項式運算中,按照始終成為N-1因次以下的多項式的原則來運算。
(3)NTRU加密方式的加密後述的加密裝置,按如下所示來進行NTRU加密方式的加密。
在加密時,利用以下所述的隨機數多項式r及公開密鑰多項式h,對明碼文本多項式m施行多項式運算即加密算法E,生成加密文本多項式c=E(m,r,h)。
這裡,E(m,r,h),是在NTRU加密方式的加密算法E中,輸入明碼文本多項式m、隨機數多項式r及公開密鑰多項式h所得到的多項式運算結果。非專利文獻2中對加密算法E有詳述,這裡省略說明。
在NTRU加密方式中,預先決定用於生成隨機數多項式r的參數d。隨機數多項式r被選擇為構成隨機數多項式r的各項中,對d個項其係數成為「1」,對其它d個項其係數成為「-1」,對剩下的項其係數成為「0」。
即,隨機數多項式r是N-1因次以下的多項式,對從0因次(常數項)至N-1因次為止的N項,存在N個係數。隨機數多項式r被選擇為該N個係數中,d個係數為「1」,另外d個係數為「-1」,還有(N-2d)個係數為「0」。
根據非專利文獻2,在參數N=167的場合下,d=18。即,隨機數多項式r被選擇為18個係數為「1」,另外18個係數為「-1」,131(=167-36)個係數為「0」。
(4)NTRU加密方式的解密後述的解密裝置,按如下所述來進行NTRU加密方式的解密。
在解密時,利用秘密密鑰多項式f,對加密文本多項式c施行多項式運算即解密算法D,生成解密文本多項式m』=D(c,f)。
這裡,D(c,f)是在NTRU加密方式的解密算法D中,輸入加密文本多項式c及秘密密鑰多項式f所得到的多項式運算結果。非專利文獻2中對解密算法D有詳述,這裡省略說明。
(5)NTRU加密方式的解密錯誤不過,在該NTRU加密方式中,在有的場合下所生成的解密文本多項式m』與明碼文本多項式m相異。在該場合下,在解密時不能得到正確的明碼文本多項式m。這一現象稱為發生了解密錯誤。
1.2 內容分發系統10的構成內容分發系統10如圖1所示,由內容伺服器裝置140、加密裝置110、解密裝置120、再生裝置150、監視器155來構成,內容伺服器裝置140與加密裝置110經專用線路20來連接,加密裝置110與解密裝置120經網際網路130來連接。再生裝置150與解密裝置120及內置有揚聲器的監視器155連接。加密裝置110中,安裝有存儲卡160,解密裝置120中,安裝有存儲卡170。
內容伺服器裝置140經專用線路20,將由影像及聲音構成的電影等內容發送給加密裝置110。
加密裝置110與解密裝置120,分別生成同一共享密鑰K及共享密鑰K』。接下來,加密裝置110利用共享密鑰K,對從內容伺服器裝置140接受的內容加密,生成加密內容,並發送所生成的加密內容,解密裝置120接收加密內容,對所接收的加密內容解密,生成再生內容,再生裝置150從再生內容來生成影像信號及聲音信號,監視器155顯示出影像,並輸出聲音。
1.3 內容伺服器裝置140的構成內容伺服器裝置140,是由微處理器、ROM、RAM、硬碟單元、顯示單元、通信單元、鍵盤、滑鼠等構成的計算機系統(未圖示)。在上述RAM或上述硬碟單元中,存儲電腦程式。上述微處理器按上述電腦程式來動作,內容伺服器裝置140由此來實現其部分功能。
內容伺服器裝置140,預先存儲有上述內容,上述內容由多個部分內容mi(1≤i≤n)來構成。內容伺服器裝置140根據加密裝置110的請求,讀出部分內容mi,並經專用線路20,將所讀出的部分內容mi發送給加密裝置110。
1.4 存儲卡160及存儲卡170的構成存儲卡160,是作為存儲媒體採用閃速存儲器的卡型存儲裝置,預先存儲有公開密鑰多項式h。
存儲卡170是與存儲卡160同樣的卡型存儲裝置,預先存儲有秘密密鑰多項式f及公開密鑰多項式h。
這裡,秘密密鑰多項式f及公開密鑰多項式h由NTRU加密方式來生成,而且分別對應。
1.5 加密裝置110的構成加密裝置110如圖2所示,由公開密鑰輸入部111、隨機數生成部112、第1函數部113、加密部114、第1發送部117、公共密鑰加密部118及第2發送部119來構成。
具體地說,加密裝置110,是一種由微處理器、ROM、RAM、通信單元等構成的計算機系統。在上述RAM中存儲有電腦程式。上述微處理器按上述電腦程式來動作,加密裝置110由此來實現其功能。
(1)公開密鑰輸入部111公開密鑰輸入部111,從存儲卡160讀出解密裝置120的公開密鑰多項式h,並將所讀出的公開密鑰多項式h輸出給加密部114。
(2)隨機數生成部112隨機數生成部112,作為成為用於生成共享密鑰K的本源的種子值生成隨機數s,並將所生成的隨機數s輸出到第1函數部113及加密部114。
(3)第1函數部113第1函數部113,從隨機數生成部112接受隨機數s,並生成隨機數s的函數值G(s)。這裡,函數G是輸出長為2k位的散列函數。散列函數是單向性函數的一種。接下來,第1函數部113將函數值G(s)的上位k位作為隨機數值u,將G(s)的下位k位作為共享密鑰K,由此從所生成的函數值G(s)來生成共享密鑰K及隨機數值u,將所生成的隨機數值u輸出到加密部114,將所生成的共享密鑰K輸出到公共密鑰加密部118。
(4)加密部114加密部114從公開密鑰輸入部111接受公開密鑰多項式h,從隨機數生成部112接受隨機數s,從第1函數部113接受隨機數值u。接下來按以下所述,由NTRU加密,利用公開密鑰多項式h及隨機數值u,來生成隨機數s的第1加密文本c1。這裡,隨機數值u是盲值,用於使加密對象即隨機數s呈不明晰狀態。
加密部114按照從隨機數值u唯一地求出的原則,生成對於NTRU密碼的參數d,隨機數多項式r的d個項係數為「1」,另外d個項係數為「-1」,其餘項的係數為「0」的隨機數多項式r。
比如加密部114,將隨機數u設定為模擬隨機數系列的初始值(隨機數種子),從{0,1,...N-1}不重複地生成2d個模擬隨機數,將由最初的d個模擬隨機數分別表示的d個因次項的係數作為「1」,將其餘的d個模擬隨機數分別表示的d個因次項的係數作為「-1」,其它因次項的係數作為「0」。
接下來,加密部114按以下原則來構成隨機數多項式sp即,使隨機數s可適用於NTRU密碼的加密算法E,而且使以2進位數來表示了隨機數s場合下的N數位位串各位的值與隨機數多項式s p的各項係數對應。比如,將隨機數s的下位第b位的值,設為項X^b的係數。具體地說,在s=10010(位表現)的場合下,生成隨機數多項式sp=X^5+X^2。
接下來,加密部114使用公開密鑰多項式h,利用隨機數多項式r,對隨機數多項式sp施行上述加密算法E,以生成第1加密文本c1=加密文本多項式E(sp,r,h)。
接下來,加密部114將所生成的第1加密文本c1輸出到第1發送部117。
此外,在圖2中,表示加密裝置110的各構成部的各方框,由連接線與其它方框連接。這裡,各連接線表示傳送信號及信息的經路。與表示加密部114的方框連接的多個連接線中,連接線上帶有密鑰標誌的連接線,表示向加密部114傳送作為密鑰的信息的經路。對於表示公共密鑰加密部118的方框也同樣。此外對其它圖面也同樣。
(5)第1發送部117第1發送部117從加密部114接受第1加密文本c1,並經網際網路130,將第1加密文本c1發送給解密裝置120。
(6)公共密鑰加密部118公共密鑰加密部118,具有比如DES加密方式之類的公共密鑰加密算法Sym。
一般情況下,在公共密鑰加密中,在加密側裝置中,利用密碼密鑰K,對明碼文本m施行公共密鑰加密算法Sym,生成加密文本c=Sym(m,K),在解密側裝置中,利用密碼密鑰K,對加密文本c施行公共密鑰加密算法Sym,生成解密文本m』=Sym(c,K)。這裡,如果加密文本生成時所用的密碼密鑰K與解密文本生成時所用的密碼密鑰K相同,則成為m』=m。此外非專利文獻1中對公共密鑰加密及DES加密方式有詳述,這裡省略詳細說明。
公共密鑰加密部118,從內容伺服器裝置140接受多個明碼文本(部分內容)mi(1≤i≤n),從第1函數部113接受共享密鑰K,並利用所接受的共享密鑰K,對明碼文本mi(1≤i≤n)施行公共密鑰加密算法Sym,以生成公共密鑰加密文本Ci=Sym(mi,K)(1≤i≤n)。
接下來,公共密鑰加密部118將公共密鑰加密文本Ci(1≤i≤n)輸出到第2發送部119。
(7)第2發送部119第2發送部119從公共密鑰加密部118接受公共密鑰加密文本Ci(1≤i≤n),並經網際網路130,將所接受的公共密鑰加密文本Ci(1≤i≤n)發送給解密裝置120。
1.6解密裝置120的構成如圖3所示,解密裝置120由秘密密鑰輸入部121、第1接收部122、解密部123、第2函數部126、比較部127、公共密鑰解密部128及第2接收部129來構成。
解密裝置120是與加密裝置110同樣的計算機系統。微處理器按電腦程式來動作,解密裝置102由此來實現其功能。
(1)秘密密鑰輸入部121秘密密鑰輸入部121,從存儲卡170讀出解密裝置120的秘密密鑰多項式f及公開密鑰多項式h,將所讀出的秘密密鑰多項式f輸出到解密部123,並將所讀出的公開密鑰多項式h輸出到比較部127。
(2)第1接收部122第1接收部122,經網際網路130從加密裝置110接受第1加密文本c1,並將所接受的第1加密文本c1輸出到解密部123。
(3)解密部123解密部123從秘密密鑰輸入部121接受秘密密鑰多項式f,從第1接收部122接受第1加密文本c1,接著按以下所示,由NTRU密碼,並利用秘密密鑰多項式f,對第1加密文本c1解密,生成解密隨機數s』。
解密部123,使用秘密密鑰多項式f,對第1加密文本c 1施行上述解密算法D,生成解密隨機數多項式sp』=D(c1,f)。接下來,由於解密隨機數多項式sp』是NTRU密碼的解密文本,以多項式來表現,因而按以下原則來生成解密隨機數s』即,使解密隨機數多項式sp』各項的係數,與以2進位數來表示了解密隨機數s』場合下的N數位位串的各值對應。比如,解密隨機數多項式sp』的b因次項X^b的係數,成為解密隨機數多項式s』的下位第b位的值。
具體地說,在解密隨機數多項式sp』=X^5+X^2的場合下,生成解密隨機數s』=10010(位表現)。
接下來,解密部123將所接受的第1加密文本c1及所生成的解密隨機數s』輸出到比較部127,將所生成的解密隨機數s』輸出到第2函數部126。
(4)第2函數部126第2函數部126具有與第1函數部113所具有的函數相同的函數G的算法。
第2函數部126從解密部123接受解密隨機數s』,與第1函數部113同樣,生成解密隨機數s』的函數值G(s』),接下來從函數值G(s』)生成隨機數值u』及共享密鑰K』,並將所生成的隨機數值u』及共享密鑰K』輸出到比較部127。
(5)比較部127比較部127如圖3所示,由加密部127x與比較運算部127y來構成。
加密部127x,從秘密密鑰輸入部121接受公開密鑰多項式h,從解密部123接受解密隨機數s』,從第2函數部126接受隨機數值u』。接下來與加密部114同樣,利用公開密鑰多項式h及隨機數值u』,對解密隨機數s』加密,生成第1再加密文本c1』,並將所生成的第1再加密文本c1』輸出到比較運算部127y。
比較運算部127y從解密部123接受第1加密文本c1,從第2函數部126接受共享密鑰K』,從加密部127x接受第1再加密文本c1』。接下來,比較第1加密文本c1與第1再加密文本c1』,判斷是否一致,在判斷為一致的場合下,將所接受的共享密鑰K』輸出到公共密鑰解密部128。在判斷為不一致的場合下,不輸出所接受的共享密鑰K』。
(6)第2接受部129第2接受部129經網際網路130,從加密裝置110接收公共密鑰加密文本Ci(1≤i≤n),並將所接收的公共密鑰加密文本Ci(1≤i≤n)輸出到公共密鑰解密部128。
(7)公共密鑰解密部128公共密鑰解密部128,預先具有與公共密鑰加密部118所具有的公共密鑰加密算法Sym相同的公共密鑰加密算法Sym。
公共密鑰解密部128,從比較部127接受共享密鑰K』,從第2接收部129接受公共密鑰加密文本Ci(1≤i≤n),使用所接受的共享密鑰K』,對所接受的公共密鑰加密文本Ci(1≤i≤n)施行公共密鑰加密算法Sym,生成解密文本mi』=Sym(ci,K)(1≤i≤n)。
接下來,公共密鑰解密部128,將所生成的解密文本mi』(1≤i≤n)向再生裝置150輸出。
1.7 再生裝置150及監視器155再生裝置150從解密裝置120接受解密文本mi』(1≤i≤n),從所接受的解密文本m』(1≤i≤n)來生成影像信號及聲音信號,並將所生成的影像信號及聲音信號輸出到監視器155。
監視器155從再生裝置150接受影像信號及聲音信號,由所接受的影像信號及聲音信號,來顯示影像並輸出聲音。
1.8 加密裝置110及解密裝置120的動作利用圖4所示的處理系統圖及圖5所示的流程圖,對加密裝置110及解密裝置120的動作以說明。
加密裝置110的公開密鑰輸入部111,從存儲卡160讀出解密裝置120的公開密鑰多項式h,將所讀出的公開密鑰多項式h輸出到加密部114(步驟S101)。
接下來,隨機數生成部112生成隨機數s,並將所生成的隨機數s輸出到第1函數部113及加密部114(步驟S102)。
接下來,第1函數部113從隨機數生成部112接受隨機數s,生成隨機數s的函數值G(s)(步驟S103),接著,第1函數部113,從函數值G(s)來生成隨機數值u及共享密鑰K,將隨機數值u輸出到加密部114,將共享密鑰K輸出到公共密鑰加密部118(步驟S104)。
接下來,加密部114從公開密鑰輸入部111接受公開密鑰多項式h,從隨機數生成部112接受隨機數s,從第1函數部113接受隨機數值u,利用公開密鑰多項式h及隨機數值u來生成隨機數s的第1加密文本c1,並將第1加密文本c1輸出到第1發送部117(步驟S105)。
接下來,第1發送部117從加密部114接受第1加密文本c1,經網際網路130將第1加密文本c1發送給解密裝置120(步驟S106)。
接下來,解密裝置120的秘密密鑰輸入部121,從存儲卡170讀出解密裝置120的秘密密鑰多項式f及公開密鑰多項式h,將所讀出的秘密密鑰多項式f輸出到解密部123,將所讀出的公開密鑰多項式h輸出到比較部127(步驟S151)。
接下來,第1接收部122,經網際網路130從加密裝置110接受第1加密文本c1,並將第1加密文本c1輸出到解密部123(步驟S 106)。
接下來,解密部123從秘密密鑰輸入部121接受秘密密鑰多項式f,從第1接收部122接受第1加密文本c1,接著,利用秘密密鑰多項式f,對第1加密文本c1解密,生成解密隨機數s』,將第1加密文本c1及解密隨機數s』輸出到比較部127,並將解密隨機數s』輸出到第2函數部126(步驟S152)。
接下來,第2函數部126從解密部123接受解密隨機數s』,生成解密隨機數s』的函數值G(s』)(步驟S 153),從函數值G(s』)生成隨機數值u』及共享密鑰K』,將隨機數值u』及共享密鑰K』輸出到比較部127(步驟S154)。
接下來,比較部127從解密部123接受第1加密文本c1,從第2函數部126接受隨機數值u』及共享密鑰K』,生成第1再加密文本c1』(步驟S155),檢查第1加密文本c1是否是利用了隨機數值u』的解密隨機數s』的加密文本,如果第1加密文本c1不是解密隨機數s』的加密文本(步驟S156),則解密裝置120結束處理。
公共密鑰加密部118,從外部接受多個明碼文本mi(1≤i≤n),從第1函數部113接受共享密鑰K,使用共享密鑰K,對明碼文本mi(1≤i≤n)施行公共密鑰加密算法Sym,生成公共密鑰加密文本Ci=Sym(mi,k)(1≤i≤n),並將公共密鑰加密文本Ci(1≤i≤n)輸出到第2發送部119(步驟S107)。
接下來,第2發送部119從公共密鑰加密部118接受公共密鑰加密文本Ci(1≤i≤n),經網際網路130向解密裝置120發送(步驟S108),結束處理。
如果第1加密文本c1是解密隨機數s』的加密文本(步驟S 156),則比較部127將共享密鑰K』輸出到公共密鑰解密部128(步驟S157)。接下來,第2接受部129經網際網路130從加密裝置110接收加密文本Ci(1≤i≤n),並向公共密鑰解密部128輸出(步驟S108)。
接下來,公共密鑰解密部128從比較部127接受共享密鑰K』,從第2接受部129接收公共密鑰加密文本Ci(1≤i≤n),並利用共享密鑰K』,對公共密鑰加密文本Ci(1≤i≤n)施行公共密鑰加密算法Sym,生成解密文本mi』=Sym(Ci,k)(1≤i≤n),並將解密文本mi』(1≤i≤n)輸出到再生裝置150(步驟S158),結束處理。
1.9 內容分發系統10的動作驗證以下,對實施方式1中的內容分發系統10的整體動作作以說明。
首先,加密裝置110將解密裝置120的公開密鑰多項式h作為輸入,生成隨機數s,從函數值G(s)導出隨機數值u及共享密鑰K。接下來加密裝置110利用公開密鑰多項式h及隨機數值u,用NTRU密碼對隨機數s加密,生成第1加密文本c1,經網際網路130將第1加密文本c1發送給解密裝置120。
即,該加密裝置110進行以下處理,將第1加密文本c1發送給解密裝置120。
·生成隨機數s。
·生成G(s),從G(s)來生成u,K。
·利用公開密鑰多項式h及隨機數值u,來生成隨機數s的第1加密文本c1。
·輸出共享密鑰K及第1加密文本c1。
接下來,加密裝置110利用所導出的共享密鑰K,用公共密鑰密碼對從外部輸入的明碼文本mi(1≤i≤n)加密,生成加密文本Ci(1≤i≤n),經網際網路130向解密裝置120發送。
另一方面,解密裝置120將解密裝置120的秘密密鑰多項式f及公開密鑰多項式h作為輸入,經網際網路130從加密裝置110來接收第1加密文本c1,利用秘密密鑰多項式f對第1加密文本c1解密,生成解密隨機數s』。接下來從解密隨機數s』的函數值G(s』)來導出隨機數值u』及共享密鑰K』,對解密隨機數s』加密,生成第1再加密文本c1』,如果c1』=c1,則輸出共享密鑰K』。
即,該解密裝置120進行以下處理,導出共享密鑰K』。
·利用秘密密鑰多項式f對第1加密文本c1解密,生成s』。
·生成G(s』),從G(s』)來生成u』,K』。
·利用公開密鑰多項式h及隨機數值u』,來生成s』的第1再加密文本c1』。
·檢查c1』=c1是否成立。如果成立則輸出共享密鑰K』。
這裡,如果解密裝置120中採用與加密裝置110所用的公開密鑰多項式h對應的正確的秘密密鑰多項式f,則第1加密文本c1被正確解密,成為解密隨機數s』=s,因此成為從G(s』)導出的隨機數值u』=u、共享密鑰K』=K。這樣,由於s』=s及u』=u這一關係成立,因而c1』=c1成立,解密裝置120可導出與加密裝置110相同的共享密鑰K。
接下來,解密裝置120利用所導出的共享密鑰K』(=K),用公共密鑰密碼,從加密裝置110經網際網路對公共密鑰加密文本Ci(1≤i≤n)解密,生成解密文本mi』(1≤i≤n),並向外部輸出。這裡,如果公共密鑰加密文本生成時所用的密碼密鑰K與解密文本生成時所用的密碼密鑰K』相同,則解密裝置120便可正確地得到mi』=mi(1≤i≤n)。
此外,在發生了解密錯誤的場合下,由於解密隨機數s』與隨機數s相異,因而從G(s』)導出的隨機數值u』及共享密鑰K』分別與u、K相異。然而在該場合下,由於s』、u』分別與s、u相異,因而第1再加密文本c1』與第1加密文本c1相異,因而解密裝置120不輸出共享密鑰K』。
1.10 實施方式1的效果在傳統的RSA-KEM算法中,將如果不知道秘密密鑰便不能從加密文本C導出的要素s輸入到散列函數G,來導出共享密鑰K。然而在利用NTRU密碼,並採用密鑰嵌入機制即RSA-KEM算法來進行共享密鑰配送時,有時會發生解密錯誤,因而即使採用秘密密鑰也不能導出要素s,因而,有時會導出不正確的共享密鑰K』。
然而,在實施方式1的內容分發系統、加密裝置及解密裝置中,從隨機數s的散列函數值G(s),除了共享密鑰之外還生成隨機數值u,解密裝置利用隨機數值u及公開密鑰多項式h,對解密隨機數s』再加密,生成第1再加密文本c1』,只要第1再加密文本c1』與第1加密文本c1不是同一值,便不輸出共享密鑰K』,因而可防止在發生了解密錯誤的場合下,在加密裝置與解密裝置之間導出不同的密鑰。
基於本發明的方式,利用與非專利文獻3中記述的證明方法同樣的方法,可從理論上證明其安全性。
1.11 變形例上述說明的實施方式1,是本發明的一個實施例,本發明絕非限定於本實施方式,在不脫離其主旨的範圍內可以以各種方式來實施。本發明也包含以下場合。
(1)不限定於所用的NTRU密碼的參數N=167。參數N也可以取其它值。
(2)加密部114及解密部123中所進行的位串的各位值與多項式的各項係數的變換方法,不限於上述說明的方法,也可以是其它變換方法。
比如,從隨機數s向隨機數多項式sp的變換,也可以利用使位串的各位值與多項式的各項係數1對1對應的函數來變換,此外也可以利用使位串的各位值與多項式的各項係數1對1對應來存儲的函數值表來變換。
如果從u唯一地求出r,將r的d個因次項的係數作為「1」,將其餘的d個因次項的係數作為「-1」,其它因次項的係數成為「0」,則從隨機數值u向隨機數多項式r的變換,也可以是其它的變換方法,比如,可以利用使隨機數值u與多項式對應的函數或者函數值表來變換。
(3)加密部114及解密部123中所用的公開密鑰加密方式也可以是以下方法即,可在加密部114中,利用公開密鑰及隨機數值u對隨機數s加密,生成第1加密文本c1,在解密部123中利用秘密密鑰對第1加密文本c1解密,生成與隨機數值s相等的解密隨機數s』。
因此,加密部114及解密部123中所用的公開密鑰密碼,除了NTRU密碼之外,可以利用任意的公開密鑰密碼。
比如,如果採用E1Gama1密碼,則可將h,f分別作為E1Gama1密碼的公開密鑰、秘密密鑰,在加密部114中,利用h及u,對隨機數s加密,生成c1,在解密部123中,利用f對c1解密,生成s』。
非專利文獻1中對E1Gama1密碼有詳細記載,因而這裡省略說明。
(4)除了將函數值G(s)的上位k位作為隨機數值u,將下位k位作為共享密鑰K之外,如果第1函數部113從函數值G(s)導出隨機數值u及共享密鑰K,則也可以是其它的方法。
比如,也可以將函數值G(s)的上位k/2位作為隨機數值u,將下位k×3/2位作為共享密鑰K。此外也可以在函數值G(s)的2k位中,每隔1位來選擇k位,作為隨機數值u,並將其餘的k位作為共享密鑰K。
(5)除了隨機數值u由第1函數部113及第2函數部126來生成之外,如果由加密裝置110與解密裝置120來獲得相同值,則也可以採用其它的生成方法。
比如,對任意函數Func,也可以作為u=Func(s)而由加密裝置110與解密裝置120獲得相同值。即,在加密裝置110與解密裝置120中也可以·生成G(s),並從G(s)生成K。
·生成Func(s),並設為u=Func(s)。
(6)除了隨機數值u由第1函數部113及第2函數部126來生成之外,由於如果在加密裝置110與解密裝置120中能得到同一值即可,因而加密裝置110也可以將隨機數值u直接發送給解密裝置120b。
即如下所述,也可以將第1加密文本c1與隨機數值u發送給解密裝置120。此時,隨機數值u也可以被加密傳送。
在加密裝置110中,·生成G(s),從G(s)來生成K。
·通過其它途徑,從加密裝置110向解密裝置120發送隨機數值u。
在解密裝置120中,·接收隨機數值u。
·取代隨機數值u』,利用所接收的隨機數值u,生成第1再加密文本c1』。
此時,也可以由加密裝置110來加密並發送隨機數值u,由解密裝置120對被加密了的隨機數值u解密。
(7)對於隨機數值u,如果在加密裝置110與解密裝置120中能得到同一值即可,因而也可以由第1函數部113及第2函數部126來生成隨機數值u的一部分的部分信息,從加密裝置110將隨機數值u其餘部分的部分信息直接發送給解密裝置120。
比如如下所述,加密裝置110也可以將第1加密文本c1及隨機數值u2發送給解密裝置120。
在加密裝置110中,(a)生成G(s),從G(s)來生成K、u1。
(b)生成隨機數值u2,並通過其它途徑向解密裝置120發送。
(c)從u=u1 xor u2生成隨機數值u。
(d)利用隨機數值u,生成第1加密文本c1。
在解密裝置120中,(e)接收隨機數值u2。
(f)生成G(s』),從G(s』)生成K』、u1』。
(g)從u』=u1』xor u2生成隨機數值u』。
(h)利用所生成的隨機數值u』,生成第1再加密文本c1』。
此時,也可以由加密裝置110對隨機數值u2加密發送,由解密裝置120對被加密的隨機數值u2解密。
在(c)及(g)中,也可以取代按位加xor,而利用其它的運算。比如,在(c)及(g)中,可以分別利用加法運算及減法運算,也可以利用乘法運算及除法運算。
(8)為防止因為發生了解密錯誤而在加密裝置110與解密裝置120之間導出相異的共享密鑰,在第1再加密文本c1』與第1加密文本c1相同的場合下,也可以取代輸出共享密鑰K』,而由加密裝置110對隨機數s、隨機數值u、共享密鑰K的任意1個以上,生成散列函數值,將所生成的散列函數值發送給解密裝置120,解密裝置120驗證該散列函數值,由此來決定是否輸出共享密鑰K』。比如,作為該散列函數值,可以對任意散列函數H,生成隨機數s的散列函數值H(s),也可以生成隨機數s、隨機數值u、共享密鑰K的組合,比如散列函數值H(s||u||k)及散列函數值H(u||k)等。
在該場合下,加密裝置110的第1函數部113,可以取代從函數值G(s)來導出隨機數值u及共享密鑰K,而從G(s)只導出共享密鑰K。
以下對其具體示例作說明。
內容分發系統10,取代加密裝置110及解密裝置120,而包含加密裝置110b及解密裝置120b,加密裝置110b如圖6所示,由公開密鑰輸入部111、隨機數生成部112、第1函數部113b、加密部114b、第1發送部117b、公共密鑰加密部118及第2發送部119來構成,如圖7所示,解密裝置120由秘密密鑰輸入部121b、第1接收部122b、解密部123b、第2函數部126b、比較部127b、公共密鑰解密部128及第2接收部129來構成。比較部127b包含第3函數部127u及比較運算部127v。
加密裝置110b生成隨機數s的散列函數值,在解密裝置120b驗證該散列函數值時,在加密裝置110b中,如圖8的處理系統圖所示,第1函數部113b生成G(s)(步驟S103),從G(s)生成K(步驟S104)。
接下來,加密部114b生成隨機數值u,從所生成的隨機數值u來生成隨機數多項式r,利用隨機數多項式r及公開密鑰多項式h來生成隨機數s的第1加密文本c1(步驟S105),並生成散列函數值H(s)(步驟S111)。
接下來,第1發送部117b發送第1加密文本c1(步驟S106),並發送散列函數值H(s)(步驟S112)。
接下來,在解密裝置120b中,第1接收部122b接收第1加密文本c1(步驟S106),接收散列函數值H(s)(步驟S112)。
接下來,解密部123b利用秘密密鑰多項式f對第1加密文本c1解密,生成s』(步驟S152)。
接下來,第2函數部126生成G(s』)(步驟S153),從G(s』)生成K』(步驟S154)。
接下來,比較部127由第3函數部127u,來生成Hs』(步驟S154),由比較運算部127v來檢查Hs』=H(s)的關係是否成立(步驟S162),如果成立,則輸出共享密鑰K』(步驟S157)。
在該場合下,為進一步提高安全性,也可以利用專利文獻1中披露的方法,對隨機數s附加附加信息後進行加密,生成第1加密文本c1。即在圖6中,加密部114b可生成附加信息Ra,對s與Ra的位耦合s||Ra的值加密,生成第1加密文本c1,圖7中,解密部123b可對第1加密文本c1解密,生成s』||Ra』,除去Ra』,生成解密隨機數s』。
也可以如專利文獻1所示,取代s||Ra的值,而採用s與Ra的可逆變換F(s,Ra)的值。
2.實施方式2以下對作為本發明涉及的另一實施方式的內容分發系統10c(未圖示)作以說明。
內容分發系統10c,是以內容分發系統10為基本並使其變型了的系統,與內容分發系統10的相異之處在於除了隨機數值u及共享密鑰K之外,還從函數值G(s)生成驗證值a;取代生成對隨機數s加密了的第1加密文本c1並發送,而是由加密裝置來生成對驗證值a加密了的第1加密文本c1及基於驗證值a對隨機數s加密了的第2加密文本c2並發送。
以下以上述差異點為中心,對內容分發系統10c做詳細說明。
2.1 內容分發系統10c的構成內容分發系統10c具有與內容分發系統10相同的構成,取代加密裝置110及解密裝置120,而包含加密裝置110c及解密裝置120c。由於其它構成與內容分發系統10相同,因而省略說明。
2.2 加密裝置110c的構成加密裝置110c如圖9所示,具有與加密裝置110相同的構成,取代隨機數生成部112、第1函數部113、加密部114、第1發送部117,而包含隨機數生成部112c、第1函數部113c、加密部114c、隨機數屏蔽部116c及第1發送部117c。
這裡,對隨機數生成部112c、第1函數部113c、加密部114c、隨機數屏蔽部116c及第1發送部117c作以說明。
(1)隨機數生成部112c隨機數生成部112c,作為成為用於生成共享密鑰K的本源的種子值,生成隨機數s,並將所生成的隨機數s輸出到第1函數部113b及隨機數屏蔽部116c。
(2)第1函數部113c第1函數部113c,從隨機數生成部112c接受隨機數s,並生成隨機數s的函數值G(s)。接下來,從所生成的函數值G(s)來生成驗證值a及共享密鑰k和隨機數值u。
這裡,函數G是輸出長為3k位的散列函數,第1函數部113c,將函數值G(s)的上位k位作為驗證值a,將函數值G(s)中間的k位作為共享密鑰K,將函數值G(s)的下位k位作為隨機數值u。
接下來第1函數部113c,將所生成的驗證值a及隨機數值u輸出到加密部114c,將所生成的共享密鑰K輸出到公共密鑰加密部118,將所生成的驗證值a輸出到隨機數屏蔽部116c。
(3)加密部114c加密部114c從公開密鑰輸入部111接受公開密鑰多項式h,從第1函數部113c接受驗證值a及隨機數值u,接下來按以下所述,利用公開密鑰多項式h及隨機數值u,來生成驗證值a的第1加密文本c1。這裡,第1加密文本c1是基於NTRU密碼的加密文本。
加密部114c,按照從隨機數值u唯一地求出的原則,來生成對於NTRU密碼的參數d,d個項的各係數為「1」,另外d個項的各係數為「-1」,其餘項的各係數為「0」的隨機數多項式r。具體地說,將隨機數值u設定為模擬隨機數系列的初始值(隨機數種子),從{0,1,...N-1}不重複地生成2d個模擬隨機數,將由最初的d個模擬隨機數表示的因次項係數作為「1」,將其餘的d個模擬隨機數表示的因次項係數作為「-1」,其它因次項的係數作為「0」,由此來生成隨機數多項式r。
接下來,加密部114c按以下原則來構成驗證值多項式ap即,使所接受的驗證值a可適用於NTRU密碼的加密算法E,而且使以2進位數來表示了驗證值a場合下的N數位位串各位的值與驗證值多項式ap的各項係數對應,由此將驗證值a變換成驗證值多項式ap。比如,驗證值a的下位第b位的值成為項X^b的係數值。具體地說,在驗證值a=10010(位表現)的場合下,生成驗證值多項式ap=X^5+X^2。
接下來,加密部114c將公開密鑰多項式h用作密鑰,利用隨機數多項式r,對驗證值多項式a p施行上述加密算法E,以生成加密文本多項式即第1加密文本c1=E(ap,r,h)。
接下來,加密部114c將所生成的第1加密文本c1輸出到第1發送部117c。
(4)隨機數屏蔽部116c隨機數屏蔽部116c,從隨機數生成部112c接受隨機數s,從第1函數部113c接受驗證值a,接下來,生成第2加密文本c2=s xor a,並將所生成的第2加密文本c2輸出到第1發送部117c。
這裡,xor是表示按位加運算的運算符。
此外,隨機數屏蔽部116c,也可以取代按位加,而採用共享密鑰加密算法、加法運算或乘法運算。
(5)第1發送部117c第1發送部117c從加密部114c接受第1加密文本c1,從隨機數屏蔽部116c接受第2加密文本c2,並經網際網路130,將所接受的第1加密文本c1及第2加密文本c2發送給解密裝置120c。
2.2 解密裝置120c的構成如圖10所示,解密裝置120c具有與解密裝置120同樣的構成,取代第1接收部122、解密部123、第2函數部126、比較部127,而包含第1接收部122c、解密部123c、隨機數屏蔽除去部125c、第2函數部126c、比較部127c。
這裡,對第1接收部122c、解密部123c、隨機數屏蔽除去部125c、第2函數部126c、比較部127c作以說明。
(1)第1接收部122c第1接收部122c,經網際網路130從加密裝置110c接受第1加密文本c1及第2加密文本c2,並將所接受的第1加密文本c1輸出到解密部123c,將所接受的第2加密文本c2輸出到隨機數屏蔽除去部125c。
(2)解密部123c解密部123c從秘密密鑰輸入部121接受秘密密鑰多項式f,從第1接收部122c接受第1加密文本c1,按以下所示,利用秘密密鑰多項式f,對第1加密文本c1解密,生成解密驗證值a』。這裡,解密驗證值a』是基於NTRU密碼的解密文本。
解密部123c,將秘密密鑰多項式f用作密鑰,對第1加密文本c1施行上述解密算法D,生成解密驗證值多項式ap』=D(c1,f)。這裡,由於解密驗證值多項式ap』是NTRU密碼的解密文本,並以多項式來表現,因而解密部123c按以下原則來將解密驗證值多項式ap』變換成解密驗證值a』即,使解密驗證值多項式ap』各項的係數,與以2進位數表現的N數位位串即解密驗證值a』的各位值對應。比如,使解密驗證值多項式ap』的b因次項X^b的係數,成為解密驗證值a』的下位第b位的值。具體地說,在解密驗證值多項式ap』=X^5+X^2的場合下,變換為解密驗證值a』=10010(位表現)。
接下來,解密部123c將所生成的解密驗證值a』輸出到隨機數屏蔽除去部125c,將所接受的第1加密文本c1輸出到比較部127c。
(3)隨機數屏蔽除去部125c隨機數屏蔽除去部125c,從第1接受部122c接受第2加密文本c2,從解密部123c接受解密驗證值a』,生成解密隨機數s』=c2 xora』,將所生成的解密隨機數s』輸出到第2函數部126c。
此外,在隨機數屏蔽部116c取代按位加,而採用共享密鑰加密算法、加法運算或乘法運算的場合下,隨機數屏蔽除去部125c,也可以分別採用與共享密鑰加密算法對應的共享密鑰解密算法、減法運算或除法運算。
(4)第2函數部126c第2函數部126c具有基於與第1函數部113c所具有的函數相同的函數G的算法。
第2函數部126c從隨機數屏蔽除去部125c接受解密隨機數s』,生成所接受的解密隨機數s』的函數值G(s』)。接下來與第1函數部113c同樣,從函數值G(s』)生成驗證值a」和共享密鑰K』及隨機數值u』,並將所生成的驗證值a」和共享密鑰K』及隨機數值u』輸出到比較部127c。
(5)比較部127c比較部127c如圖10所示,由比較運算部127s及加密部127t來構成。
加密部127t從秘密密鑰輸入部121接受公開密鑰多項式h,從第2函數部126c接受驗證值a」及隨機數值u』,利用所接受的公開密鑰多項式h及隨機數值u』,與加密部114c同樣,對驗證值a」加密,生成第1再加密文本c1』,並將所生成的第1再加密文本c1』輸出到比較運算部127s。
比較運算部127s從第2函數部126c接受共享密鑰K』,從解密部123c接受第1加密文本c1,從加密部127t接受第1再加密文本c1』,接下來,比較所接受的第1加密文本c1與所接受的第1再加密文本c1』,在判斷為第1加密文本c1=第1再加密文本c1』的場合下,將所接受的共享密鑰K』輸出到公共密鑰解密部128。
2.3 內容分發系統10c的動作以下,利用圖11所示的處理系統圖,對實施方式2中的內容分發系統10c的整體動作作以說明。
加密裝置110c接受解密裝置120c的公開密鑰多項式h(步驟S101),生成隨機數s(步驟S102),求出函數值G(s),從函數值G(s)導出驗證值a、共享密鑰K及隨機數值u(步驟S121)。接下來加密裝置110c利用公開密鑰多項式h及隨機數值u,由NTRU密碼對驗證值a加密,生成第1加密文本c1(步驟S105),基於驗證值a對隨機數s加密,生成第2加密文本c2=s xor a(步驟S122)。接下來,加密裝置110c經網際網路130將第1加密文本c1及第2加密文本c2發送給解密裝置120c(步驟S106)。
即,該加密裝置110c進行以下處理,將加密文本C=(c1,c2)發送給解密裝置120c。
(a)生成隨機數s。
(b)生成G(s),從G(s)來生成a,K,u。
(c)利用公開密鑰多項式h及隨機數值u,來生成驗證值a的第1加密文本c1。
(d)生成c2=s xor a。
接下來,加密裝置110c利用所導出的共享密鑰K,由公共密鑰加密方式對從內容伺服器裝置140接受的明碼文本mi(1≤i≤n)加密,生成加密文本Ci(1≤i≤n) (步驟S107),並經網際網路130向解密裝置120c發送(步驟S108)。
另一方面,解密裝置120c接受解密裝置120c的秘密密鑰多項式f及公開密鑰多項式h(步驟S151),經網際網路130從加密裝置110c來接收第1加密文本c1及第2加密文本c2(步驟S106),利用秘密密鑰多項式f對第1加密文本c1解密,生成解密驗證值a』(步驟S152)。接下來,基於解密驗證值a』來對第2加密文本c2解密,生成解密隨機數s』=c2 xor a』(步驟S171)。接下來,解密裝置120c從解密隨機數s』的函數值G(s』)來導出驗證值a」,共享密鑰K』及隨機數值u』(步驟S172)。並對驗證值a」加密,生成第1再加密文本c1』(步驟S155),如果c1』=c1(步驟S156),則輸出共享密鑰K』(步驟S157)。
即,該解密裝置120c進行以下處理,來導出共享密鑰K』。
(a)利用秘密密鑰多項式f對第1加密文本c1解密,生成a』。
(b)生成s』=c2 xor a』。
(c)生成G(s』),從G(s』)生成a」,K』,u』。
(d)利用公開密鑰多項式h及隨機數值u』,來生成a」的第1再加密文本c1』。
(e)檢查c1』=c1是否成立。如果成立則輸出共享密鑰K』。
這裡,如果解密裝置120c中採用與加密裝置110c所用的公開密鑰多項式h對應的正確的秘密密鑰多項式f,則第1加密文本c1被正確解密,成為解密驗證值a』=a、從第2加密文本c2及a』生成的解密隨機數s』=s。因此以下關係成立從G(s』)導出的驗證值a」=a、共享密鑰K』=K、隨機數值u』=u。這樣,由於成立a」=a及u』=u這一關係,因而c1』=c1成立,解密裝置120c可導出與加密裝置110c相同的共享密鑰K。
接下來,解密裝置120c經網際網路130從加密裝置110c來接收公共密鑰加密文本Ci(1≤i≤n)(步驟S 108),利用所導出的共享密鑰K』(=K),由公共密鑰加密方式,對所接受的公共密鑰加密文本Ci(1≤i≤n)解密,生成解密文本mi』(1≤i≤n)(步驟S158),並將解密文本mi』(1≤i≤n)向再生裝置150輸出。
這裡,由於公共密鑰加密文本生成時所用的密碼密鑰K與解密文本生成時所用的密碼密鑰K』相同,因而解密裝置120c可得到正確的解密文本mi』=mi(1≤i≤n)。
此外,在發生了解密錯誤的場合下,由於解密驗證值a』與驗證值a相異,因而從第2加密文本c2得到的解密隨機數s』與s相異。這樣,從G(s』)導出的隨機數u』及共享密鑰K』分別與u、K相異。然而在該場合下,由於a』、u』分別與a、u相異,因而第1再加密文本c1』與第1加密文本c1相異,因此,解密裝置120c不輸出共享密鑰K』。
2.4 實施方式2的效果在傳統的RSA-KEM算法中,將如果不知道秘密密鑰便不能從加密文本C導出的要素s輸入到散列函數G,來導出共享密鑰K。然而,在利用NTRU密碼,並採用密鑰嵌入機制即RSA-KEM算法來進行共享密鑰配送時,有時會發生解密錯誤,因而即使採用秘密密鑰也不能導出要素s,因而有時會導出不正確的共享密鑰K』。
然而,實施方式2的內容分發系統、加密裝置及解密裝置,從隨機數s的散列函數值G(s),除了共享密鑰之外,還生成驗證值a及隨機數值u,解密裝置利用隨機數值u及公開密鑰多項式h,對解密驗證值a』再加密,生成第1再加密文本c1』,只要第1再加密文本c1』與第1加密文本c1不是同一值,便不輸出共享密鑰K,因而可防止在發生了解密錯誤的場合下,在加密裝置與解密裝置之間導出不同的密鑰。
基於本發明的方式,採用與非專利文獻3中記述的證明方法同樣的方法,可從理論上證明其安全性。
2.5 變形例上述說明的實施方式2,是本發明的一個實施例,本發明絕非限定於本實施方式,在不脫離其主旨的範圍內可以以各種方式來實施。雖然可施行與實施方式1同樣的變形,但本發明也包含以下場合。
(1)從驗證值a向驗證值多項式ap的變換也可以採用其它變換方法。比如可以利用使位串的各位值與多項式的各項係數1對1對應的函數來變換,也可以利用使位串的各位值與多項式的各項係數1對1對應來存儲的函數值表來變換。
從隨機數u向隨機數多項式r的變換也可以採用其它變換方法。比如,如果從u唯一地求出r,將d個因次項的係數作為「1」,將其餘的d個因次項的係數作為「-1」,其它因次項的係數成為「0」,則也可以是其它的變換方法,比如,可以利用使隨機數u與多項式對應的函數或者函數值表來變換。
(2)加密部114c及解密部123c中所用的公開密鑰密碼也可以是以下方式即,可在加密部114c中,利用公開密鑰及隨機數值u對驗證值a加密,生成第1加密文本c1,在解密部123c中利用秘密密鑰對第1加密文本c1解密,生成與驗證值a相等的解密驗證值a』。因此,加密部114c及解密部123c中所用的公開密鑰密碼,除了NTRU密碼之外,如果是採用隨機數的公開密鑰密碼,則可以是任意密碼。
比如,如果是E1Gama1密碼,則可將h,f分別作為E1Gama1密碼的公開密鑰、秘密密鑰,在加密部114c中,利用h及隨機數值u對a加密,生成c1,在解密部123c中,利用f對c1解密,生成a』。
(3)除了隨機數值u由第1函數部113c及第2函數部126c來生成之外,如果能由加密裝置110c與解密裝置120c來獲得相同值,則也可以採用其它的生成方法。
比如,對任意函數Func,也可以作為u=Func(s)而由加密裝置110c與解密裝置120c獲得相同值。即也可以·生成G(s),並從G(s)生成a,K。
·生成Func(s),並作為u=Func(s)。
(4)對隨機數u,除了由第1函數部113c及第2函數部126c來生成之外,由於如果在加密裝置110c與解密裝置120c中能得到同一值即可,因而加密裝置110c也可以將隨機數值u直接發送給解密裝置120c。
即如下所述,加密裝置110c也可以將加密文本C與隨機數值u發送給解密裝置120b。此外,也可以對隨機數值u加密來傳送。
·生成G(s),從G(s)來生成a,K。
·加密裝置110c通過其它途徑,向120b發送隨機數值u。
(5)對於隨機數u,由於如果在加密裝置110c與解密裝置120c中能得到同一值即可,因而也可以由第1函數部113c及第2函數部126c來生成隨機數值u的一部分即部分信息,從加密裝置110c將隨機數值u的剩餘部分信息直接發送給解密裝置120c。
比如如下所述,加密裝置110c可以將加密文本C與隨機數值u2發送給解密裝置120c。此外,加密裝置110c也可以對隨機數值u2加密來傳送。
·生成G(s),從G(s)來生成a,K,u1。
·加密裝置110c通過其它途徑,向解密裝置120c發送隨機數值u2。
·加密裝置110c生成隨機數值u=u1 xor u2。
(6)解密裝置120c,檢查第1加密文本c1是否是由第2函數部126c得到的驗證值a」的加密文本,當c1是a」的加密文本時,利用共享密鑰K』對公共密鑰加密文本Ci解密,但也可以檢查第1加密文本c1是否是解密驗證值a』的加密文本。
(7)解密裝置120c,檢查第1加密文本c1是否是由第2函數部126c得到的驗證值a」的加密文本,當c1是a」的加密文本時,利用共享密鑰K』對公共密鑰加密文本Ci解密,但也可以如圖12的處理系統圖的步驟S156所示,在比較部127c中,檢查由解密部123c解密的a』的值是否等於第2函數部126c所生成的a」的值。
(8)為防止由發生了解密錯誤而在加密裝置110c與解密裝置120c之間導出相異的密鑰,也可以取代驗證第1再加密文本c1』與第1加密文本c1是否是同一值並輸出共享密鑰K』,而由加密裝置110c對隨機數s、驗證值a、隨機數值u、共享密鑰K的任意一個以上生成散列函數值,將所生成的散列函數值發送給解密裝置120c,解密裝置120c驗證該散列函數值,並決定是否輸出共享密鑰K』,為提高安全性,可以採用專利文獻1中披露的方法。即,可以採用實施方式1的變形例(8)。
3.實施方式1及實施方式2的總結如上所述,本發明是一種輸出共享密鑰數據、以及基於預先提供的公開密鑰數據對上述共享密鑰數據加密了的加密共享密鑰數據的共享密鑰生成裝置,具有生成秘密數數據的秘密數數據生成部;基於規定的處理,將上述秘密數數據變換成隨機數數據及上述共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據及上述隨機數數據對上述秘密數數據加密,生成加密共享密鑰數據的第1加密部。
本發明是一種輸出共享密鑰數據、以及基於預先提供的公開密鑰數據對上述共享密鑰數據加密了的加密共享密鑰數據的共享密鑰生成裝置,具有生成秘密數數據的秘密數數據生成部;基於規定的處理,將上述秘密數數據變換成驗證值數據及隨機數數據及上述共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據及上述隨機數數據對上述驗證值數據加密,生成第1加密預備數據的第1加密部;基於上述驗證值數據對上述秘密數數據加密,生成第2加密預備數據的第2加密部,上述加密共享密鑰數據由上述第1加密預備數據與上述第2加密預備數據來構成。
這裡,上述第2加密部,也可以進行上述秘密數數據與上述驗證值數據的按位加運算,以生成上述第2加密預備數據。
這裡,上述第2加密部,也可以將上述驗證值數據用作加密密鑰,由公共密鑰加密方式對上述秘密數數據加密,以生成上述第2加密預備數據。
這裡,上述第2加密部,也可以將上述驗證值數據與上述秘密數數據相加,以生成上述第2加密預備數據。
這裡,上述第2加密部,也可以將上述驗證值數據與上述秘密數數據相乘,以生成上述第2加密預備數據。
這裡,上述加密共享密鑰數據,也可以是上述第1加密預備數據與上述第2加密預備數據的位連通數據。
這裡,上述第1加密部,也可以由NTRU加密方式來加密,以生成上述加密共享密鑰數據。
這裡,上述第1加密部,也可以由NTRU加密方式來加密,以生成上述第1加密預備數據。
這裡,上述秘密數數據,也可以是隨機性生成的隨機數。
這裡,上述共享密鑰導出部,也可以作為規定的處理而採用單向性散列函數。
本發明是一種基於預先提供的秘密密鑰數據及公開密鑰數據,對加密共享密鑰數據解密,輸出共享密鑰數據的共享密鑰復原裝置,具有基於上述秘密密鑰數據對上述加密共享密鑰數據解密,生成秘密數數據的第1解密部;基於規定的處理,將上述秘密數數據變換成隨機數據及上述共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據及上述隨機數數據對上述秘密數數據加密,生成再加密共享密鑰數據的第3加密部,在上述加密共享密鑰數據與上述再加密共享密鑰數據一致的場合下,輸出上述共享密鑰數據。
本發明是一種基於預先提供的秘密密鑰數據及公開密鑰數據,對由第1加密預備數據及第2加密預備數據構成的加密共享密鑰數據解密,輸出共享密鑰數據的共享密鑰復原裝置,具有基於上述秘密密鑰數據對上述第1加密預備數據解密,生成驗證值數據的第1解密部;基於上述驗證值數據對上述第2加密預備數據解密,生成秘密數數據的第2解密部;基於規定的處理,將上述秘密數數據變換成驗證值驗證數據及隨機數據及上述共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據及上述隨機數數據對上述驗證值驗證數據加密,生成第3加密預備數據的第3加密部,在上述第1加密預備數據與上述第3加密預備數據一致的場合下,輸出上述共享密鑰數據。
本發明是一種基於預先提供的秘密密鑰數據及公開密鑰數據,對由第1加密預備數據及第2加密預備數據構成的加密共享密鑰數據解密,輸出共享密鑰數據的共享密鑰復原裝置,具有基於上述秘密密鑰數據對上述第1加密預備數據解密,生成驗證值數據的第1解密部;基於上述驗證值數據對上述第2加密預備數據解密,生成秘密數數據的第2解密部;基於規定的處理,將上述秘密數數據變換成驗證值驗證數據及隨機數據及上述共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據及上述隨機數數據對上述驗證值數據加密,生成第3加密預備數據的第3加密部,在上述第1加密預備數據與上述第3加密預備數據一致的場合下,輸出上述共享密鑰數據。
這裡,上述第2解密部,也可以進行上述第2加密預備數據與上述驗證值數據的按位加運算,以生成上述秘密數數據。
這裡,上述第2解密部,也可以將上述驗證值數據用作密碼密鑰,由公共密鑰密碼方式對上述第2加密預備數據解密,以生成上述秘密數數據。
這裡,上述第2解密部,也可以對上述第2加密預備數據減去上述驗證值數據,以生成上述秘密數數據。
這裡,上述第2加密部,也可以用上述第2加密預備數據除以上述驗證值數據,以生成上述秘密數數據第2秘密數數據。
這裡,上述第1解密部,也可以由NTRU密碼方式來解密,以生成上述共享密鑰數據。
這裡,上述第1解密部,也可以由NTRU密碼方式來解密,以生成上述驗證值數據。
這裡,上述共享密鑰導出部,也可以作為規定的處理而採用單向性散列函數。
本發明是一種基於預先提供的公開密鑰數據來生成對明碼文本數據加密了的加密文本數據的加密裝置,具有生成秘密數數據的秘密數數據生成部;基於規定的處理,將上述秘密數數據變換成隨機數數據及共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據及上述隨機數數據對上述秘密數數據加密,生成第1加密預備數據的第1加密部;基於上述共享密鑰數據對上述明碼文本數據加密,生成第2加密預備數據的第2加密部,上述加密文本數據,由上述第1加密預備數據與上述第2加密預備數據來構成。
本發明是一種基於預先提供的秘密密鑰數據及公開密鑰數據,對由第1加密預備數據及第2加密預備數據構成的加密文本數據解密,輸出解密文本數據的解密裝置,具有基於上述秘密密鑰數據對上述第1加密預備數據解密,生成秘密數數據的第1解密部;基於規定的處理,將上述秘密數數據變換成隨機數數據及共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據及上述隨機數數據對上述秘密數數據加密,生成第3加密預備數據的第3加密部,還具有在上述第1加密預備數據與上述第3加密預備數據一致的場合下,基於上述共享密鑰對上述第2加密預備數據解密,生成上述解密文本數據的解密部。
本發明是一種基於預先提供的公開密鑰數據來生成對明碼文本數據加密了的加密文本數據的加密裝置與基於預先提供的秘密密鑰數據及公開密鑰數據,對加密文本數據解密,輸出解密文本數據的解密裝置所組成的密碼系統。上述加密裝置具有生成秘密數數據的秘密數數據生成部;基於規定的處理,將上述秘密數數據變換成隨機數數據及共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據及上述隨機數數據對上述秘密數數據加密,生成第1加密預備數據的第1加密部;基於上述共享密鑰數據對上述明碼文本數據加密,生成第2加密預備數據的第2加密部,上述加密文本數據,由上述第1加密預備數據與上述第2加密預備數據及上述第3加密預備數據來構成。上述解密裝置,具有基於上述秘密密鑰數據對上述第1加密預備數據解密,生成秘密數數據的第1解密部;基於規定的處理,將上述秘密數數據變換成隨機數數據及共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據及上述隨機數數據對上述秘密數數據加密,生成第3加密預備數據的第3加密部,還具有在上述第1加密預備數據與上述第3加密預備數據一致的場合下,基於上述共享密鑰對上述第2加密預備數據解密,生成上述解密文本數據的解密部。
如上所述,本發明鑑於傳統系統中的問題點,在密碼系統中,構成一種可採用NTRU密碼的新的密鑰嵌入機制,由此可防止在加密裝置與解密裝置之間導出不同的密鑰,可進行採用了由密鑰嵌入機制導出的密鑰的從發送裝置向接收裝置的可靠的加密通信。
由此可提供一種在傳統技術中不能實現的密碼系統,其價值較大。
4.實施方式3以下對作為本發明涉及的另一實施方式的內容分發系統10d(未圖示)作以說明。
內容分發系統10d,是將內容分發系統10變型了的系統。這裡,以與內容分發系統10d的差異點為中心,對內容分發系統10d做詳細說明。
4.1 內容分發系統10d的構成內容分發系統10d具有與內容分發系統10相同的構成,取代加密裝置110及解密裝置120,而包含加密裝置110d及解密裝置120d。由於其它構成與內容分發系統10相同,因而省略說明。
內容分發系統10d,是一種利用NTRU密碼來進行基於密鑰嵌入機制的密鑰分發,以進行加密通信的加密通信系統,加密裝置110d與解密裝置120d經網際網路130來連接。
4.2 加密裝置110d的構成加密裝置110d如圖13所示,由公開密鑰輸入部111d、隨機數生成部112d、第1函數部113d、加密部114d、第2函數部115d、隨機數屏蔽部116d、第1發送部117d、公共密鑰加密部118及第2發送部119來構成。
加密裝置110d,是與加密裝置110同樣的計算機系統,微處理器按電腦程式來動作,加密裝置110d由此來實現其功能。
(1)公開密鑰輸入部111d公開密鑰輸入部111d從存儲卡160讀出解密裝置120的公開密鑰多項式h,並將所讀出的公開密鑰多項式h向加密部114d輸出。
(2)隨機數生成部112d隨機數生成部112d,作為成為用於生成共享密鑰K的本源的種子值,生成隨機數s,並將所生成的隨機數s輸出到第1函數部113及隨機數屏蔽部116。
(3)第1函數部113d第1函數部113d,從隨機數生成部112d接受隨機數s,並生成所接受的隨機數s的函數值G(s),從函數值G(s)來生成驗證值a及共享密鑰K。這裡,函數G是單向函數即輸出長為2k位的散列函數,第1函數部113d,將G(s)的上位k位作為驗證值a,將G(s)的下位k位作為共享密鑰K。
接下來,第1函數部113d,將所生成的驗證值a輸出到加密部114d及第2函數部115d,將所生成的共享密鑰K輸出到公共密鑰加密部118。
(4)加密部114d加密部114d從公開密鑰輸入部111d接受公開密鑰多項式h,從第1函數部113d接受驗證值a,接下來按以下所述,利用所接受的公開密鑰多項式h,來生成驗證值a的第1加密文本c1。這裡,所生成的第1加密文本c 1是基於NTRU密碼的加密文本。
加密部114d,隨機性生成對於NTRU密碼的參數d,d個項的各係數為「1」,另外d個項的各係數為「-1」,其餘項的各係數為「0」的隨機數多項式r。接下來按以下原則來生成驗證值多項式ap即,使驗證值a可適用於NTRU密碼的加密算法E,而且使以2進位數來表示了驗證值a場合下的N數位位串各位的值與驗證值多項式ap的各項係數對應。比如,使驗證值a的下位第b位的值成為驗證值多項式ap的項X^b的係數。由此將驗證值a變換成驗證值多項式ap。具體地說,在驗證值a=10010(位表現)的場合下,變換為驗證值多項式ap=X^5+X^2。接下來,使用公開密鑰多項式h,利用隨機數多項式r,對驗證值多項式ap施行上述加密算法E,以生成加密文本多項式即第1加密文本c1=E(ap,r,h)。
接下來,加密部114d將所生成的第1加密文本c1輸出到第2函數部115d及第1發送部117d。
(5)第2函數部115d第2函數部115d從第1函數部113d接受驗證值a,從加密部114d接受第1加密文本c1,按如下所示,來生成驗證值a及第1加密文本c1的函數值H(a,c1)。
這裡,函數H是散列函數,是單向函數的一種。
由於第1加密文本c1是NTRU密碼的加密文本,並以多項式來表現,因而第2函數部115d生成第1加密文本位串c1』,從而使第1加密文本c1的各項係數與以2進位數表現的場合下N數位的第1加密文本位串c1』的各位值對應。比如,使第1加密文本c1的b因次項X^b的係數成為第1加密文本位串c1』的下位第b位的值。這樣便將第1加密文本c1變換為第1加密文本位串c1』。具體地說,在第1加密文本c1=X^5+X^2的場合下,變換為第1加密文本位串c1』=10010(位表現)。
接下來,第2函數部115d,將驗證值a與第1加密文本位串c1』的位耦合a||c1』輸入到散列函數H,生成函數值H(a,c1)=H(a||c1』)。這裡,「||」是表示位耦合的運算符。
接下來,第2函數部115d將所生成的函數值H(a,c1)輸出到隨機數屏蔽部116d。
(6)隨機數屏蔽部116d隨機數屏蔽部116d,從隨機數生成部112d接受隨機數s,從第2函數部115d接受函數值H(a,c1)。接下來生成第2加密文本c2=sxor H(a,c1),並將所生成的第2加密文本c2輸出到第1發送部117d。
此外隨機數屏蔽部116d,也可以取代按位加xor,而採用共享密鑰加密算法、加法運算或乘法運算。
(7)第1發送部117d第1發送部117d從加密部114d接受第1加密文本c1,從隨機數屏蔽部116d接受第2加密文本c2,並經網際網路130,將所接受的第1加密文本c1及第2加密文本c2發送給解密裝置120d。
(8)公共密鑰加密部118及第2發送部119公共密鑰加密部118及第2發送部119,除了以下所示之外,分別與加密裝置110中包含的公共密鑰加密部118及第2發送部119相同。
公共密鑰加密部118從第1函數部113d接受共享密鑰K。
4.3解密裝置120d的構成如圖14所示,解密裝置120d由秘密密鑰輸入部121d、第1接收部122d、解密部123d、第3函數部124d、隨機數屏蔽除去部125d、第4函數部126d、比較部127d、公共密鑰解密部128及第2接受部129來構成。
解密裝置120d是與解密裝置120同樣的計算機系統,微處理器按電腦程式來動作,解密裝置120d由此來實現其功能。
此外,公共密鑰解密部128及第2接受部129,分別與解密裝置120中包含的公共密鑰解密部128及第2接受部129相同,因而在此省略說明。
(1)秘密密鑰輸入部121d秘密密鑰輸入部121d從存儲卡170讀出解密裝置120d的秘密密鑰多項式f,並將所讀出的秘密密鑰多項式f輸出到解密部123d。
(2)第1接收部122d第1接收部122d,經網際網路130從加密裝置110d接受第1加密文本c1及第2加密文本c2,並將所接受的第1加密文本c1輸出到解密部123d及第3函數部124d,將所接受的第2加密文本c2輸出到隨機數屏蔽除去部125d。
此外在隨機數屏蔽部116d取代按位加,而採用共享密鑰加密算法、加法運算或乘法運算的場合下,隨機數屏蔽除去部125d也可以分別採用與共享密鑰加密算法對應的共享密鑰解密算法、減法運算或除法運算。
(3)解密部123d解密部123d從秘密密鑰輸入部121d接受秘密密鑰多項式f,從第1接收部122d接受第1加密文本c1,按以下所示,利用秘密密鑰多項式f,對第1加密文本c1解密,生成解密驗證值a』。這裡,解密驗證值a』是基於NTRU密碼的解密文本。
解密部123d,使用秘密密鑰多項式f,對第1加密文本c1施行上述解密算法D,生成解密驗證值多項式ap』=D(c1,f)。以下,由於解密驗證值多項式ap』是NTRU密碼的解密文本,並以多項式來表現,因而解密部123d按以下原則來生成解密驗證值a』即,使解密驗證值多項式ap』的各係數,與以2進位數表現了解密驗證值a』的場合下的N數位位串的各位數對應。比如,使解密驗證值多項式ap』的b因次項X^b的係數,成為解密驗證值a』的下位第b位的值。由此將解密驗證值多項式ap』變換為解密驗證值a』。具體地說,在解密驗證值多項式ap』=X^5+X^2的場合下,變換為解密驗證值a』=10010(位表現)。
接下來,解密部123d將所生成的解密驗證值a』輸出到第3函數部124d及比較部127d。
(4)第3函數部124d第3函數部124d,具有與第2函數部115d所具有的函數相同函數H的算法。
第3函數部124d從第1接受部122d接受第1加密文本c1,從解密部123d接受解密驗證值a』。接下來,與第2函數部115d同樣,生成驗證值a』與第1加密文本c1的函數值H(a』,c1),並將所生成的函數值H(a』,c1)輸出到隨機數屏蔽除去部125d。
(5)隨機數屏蔽除去部125d隨機數屏蔽除去部125d,從第1接受部122d接受第2加密文本c2,從第3函數部124d接受散列函數值H(a』,c1),接下來,生成解密隨機數s』=c2 xor H(a』,c1),將所生成的解密隨機數s輸出到第4函數部126d。
(6)第4函數部126d第4函數部126d具有基於與第1函數部113d所具有的函數相同函數G的算法。
第4函數部126d從隨機數屏蔽除去部125d接受解密隨機數s』,生成解密隨機數s』的散列函數值G(s』)。接下來,與第1函數部113d同樣,從函數值G(s』)生成驗證值a」和共享密鑰K』,並將所生成的驗證值a」和共享密鑰K』輸出到比較部127d。
(7)比較部127d比較部127d,從解密部123d接受解密驗證值a』,從第4函數部126d接受驗證值a」及共享密鑰K』,接下來,檢查解密驗證值a』與驗證值a」是否相等,如果解密驗證值a』與驗證值a」相等,則將共享密鑰K』輸出到公共密鑰解密部128。
(8)公共密鑰解密部128及第2接收部129公共密鑰解密部128從比較部127d接受共享密鑰K』。
在其它方面,由於公共密鑰解密部128與解密裝置120中包含的公共密鑰解密部128相同,因而在此省略說明。
由於第2接收部129與解密裝置120中包含的第2接收部129相同,因而在此省略說明。
4.4 內容分發系統10d的動作利用圖15所示的流程圖及圖16所示的處理系統圖,對內容分發系統10d的動作作以說明。
公開密鑰輸入部111d,從存儲卡160接受解密裝置120d的公開密鑰多項式h,將公開密鑰多項式h輸出到加密部114d(步驟S201)。
接下來,隨機數生成部112d生成隨機數s,並將隨機數s輸出到第1函數部113d及隨機數屏蔽部116d(步驟S202)。
接下來,第1函數部113d從隨機數生成部112d接受隨機數s,生成隨機數s的函數值G(s)(步驟S203),接著第1函數部113d,從函數值G(s)來生成驗證值a及共享密鑰K,將驗證值a輸出到加密部114d及第2函數部115d,將共享密鑰K輸出到公共密鑰加密部118(步驟S204)。
接下來,加密部114d從公開密鑰輸入部111d接受公開密鑰多項式h,從第1函數部113d接受驗證值a。這樣,加密部114d利用公開密鑰多項式h來生成驗證值a的第1加密文本c1,並將第1加密文本c1輸出到第2函數部115d及第1發送部117d(步驟S205)。
接下來,第2函數部115d從第1函數部113d接受驗證值a,從加密部114d接受第1加密文本c1,生成驗證值a與第1加密文本c1的函數值H(a,c1),並將函數值H(a,c1)輸出到隨機數屏蔽部116(步驟S206)。
接下來,隨機數屏蔽部116d從隨機數生成部112d接受隨機數s,從第2函數部115d接受函數值H(a,c1),隨機數屏蔽部116d生成第2加密文本c2=s xor H(a,c1),並將第2加密文本c2輸出到第1發送部117d(步驟S207)。
接下來,第1發送部117d從加密部114d接受第1加密文本c1,從隨機數屏蔽部116d接受第2加密文本c2,經網際網路130將第1加密文本c1及第2加密文本c2向解密裝置120d發送(步驟S208)。
接下來,公共密鑰加密部118從內容伺服器裝置140接受多個明碼文本mi(1≤i≤n),從第1函數部113d接受共享密鑰K,並利用共享密鑰K,對明碼文本mi(1≤i≤n)施行公共密鑰加密算法Sym,生成公共密鑰加密文本Ci=Sym(mi,k)(1≤i≤n),並將公共密鑰加密文本Ci(1≤i≤n)輸出到第2發送部119(步驟S209)。
接下來,第2發送部119從公共密鑰加密部118接受公共密鑰加密文本Ci(1≤i≤n),並經網際網路130向解密裝置120d發送(步驟S210),結束處理。
另一方面,秘密密鑰輸入部121d,從存儲卡170接受解密裝置120d的秘密密鑰多項式f,並將秘密密鑰多項式f輸出到解密部123(步驟S251)。
接下來,第1接受部122d,經網際網路130從加密裝置110d接受第1加密文本c1及第2加密文本c2,將第1加密文本c1輸出到解密部123d及第3函數部124d,將第2加密文本c2輸出到隨機數屏蔽除去部125d(步驟S208)。
接下來,解密部123d從秘密密鑰輸入部121接受秘密密鑰多項式f,從第1接受部122d接受第1加密文本c1,接下來,利用秘密密鑰多項式f,對第1加密文本c1解密,生成解密驗證值a』,並將解密驗證值a』輸出到第3函數部124d及比較部127d(步驟S252)。
接下來,第3函數部124d從第1接收部122d接受第1加密文本c1,從解密部123d接受解密驗證值a』,接著,與第2函數部115d同樣,生成驗證值a』與第1加密文本c1的函數值H(a』,c1),並將函數值H(a』,c1)輸出到隨機數屏蔽除去部125d(步驟S253)。
接下來,隨機數屏蔽除去部125d,從第1接收部122d接受第2加密文本c2,從第3函數部124d接受散列函數值H(a』,c1),接下來,生成解密隨機數s』=c2 xor H(a』,c1),並將解密隨機數s輸出到第4函數部126d(步驟S254)。
第4函數部126d,從隨機數屏蔽除去部125接受解密隨機數s』,生成解密隨機數s』的散列函數值G(s』)(步驟S255),與第1函數部113d同樣,從函數值G(s』)生成驗證值a」及共享密鑰K』,並將驗證值a」及共享密鑰K』輸出到比較部127d(步驟S256)。
接下來,比較部127d從解密部123接受解密驗證值a』,從第4函數部126d接受驗證值a」及共享密鑰K』,檢查解密驗證值a』與驗證值a」是否相等,如果不相等(步驟S257),便結束處理。
如果解密驗證值a』與驗證值a」相等(步驟S257),比較部127d便將共享密鑰K』輸出到公共密鑰解密部128(步驟S258)。
接下來,第2接收部129經網際網路130從加密裝置110d接收加密文本Ci(1≤i≤n),並向公共密鑰解密部128輸出(步驟S210)。
接下來,公共密鑰解密部128從比較部127d接受共享密鑰K』,從第2接收部129接受公共密鑰加密文本Ci(1≤i≤n),利用共享密鑰K』,對公共密鑰加密文本Ci(1≤i≤n)施行公共密鑰加密算法Sym,生成解密文本mi』=Sym(Ci,K)(1≤i≤n),並將解密文本mi』(1≤i≤n)向外部輸出(步驟S259),結束處理。
4.5 內容分發系統10d的動作驗證以下,對內容分發系統10d的整體動作作以說明。
加密裝置110d將解密裝置120d的公開密鑰多項式h作為輸入,生成隨機數s,從函數值G(s)導出驗證值a及共享密鑰K。接下來,加密裝置110d利用公開密鑰多項式h,用NTRU密碼對驗證值a加密,生成第1加密文本c1,從驗證值a及第1加密文本c1生成函數值H(a,c1),從隨機數s及函數值H(a,c1)生成第2加密文本c2=sxor H(a,c1)。接下來,加密裝置110d經網際網路130將第1加密文本c1及第2加密文本c2發送給解密裝置120d。
即,該加密裝置110d進行以下處理,將加密文本C=(c1,c2)發送給解密裝置120d。
·生成隨機數s。
·生成G(s),從G(s)來生成a,K。
·利用公開密鑰多項式h,來生成驗證值a的第1加密文本c1。
·生成c2=s xor H(a,c1)。
·輸出共享密鑰K及加密文本C=(c1,c2)。
接下來,加密裝置110d利用導出的共享密鑰K,用公共密鑰密碼對從內容伺服器裝置140輸入的明碼文本mi(1≤i≤n)加密,生成加密文本Ci(1≤i≤n),經網際網路130向解密裝置120d發送。
另一方面,解密裝置120d將解密裝置120d的秘密密鑰多項式f作為輸入,經網際網路130從加密裝置110d來接收第1加密文本c1及第2加密文本c2,利用秘密密鑰多項式f對第1加密文本c1解密,生成解密驗證值a』。從解密驗證值a』及第1加密文本c1生成函數值H(a』,c1),從第2加密文本c2及函數值H(a』,c1)生成解密隨機數s』=c2 xor H(a』,c1)。接下來,解密裝置120d從解密隨機數s』的函數值G(s』)來導出驗證值a」及共享密鑰K』,如果驗證值a」=a』,則輸出共享密鑰K』。
即,該解密裝置120d進行以下處理,導出共享密鑰K』。
·利用秘密密鑰多項式f對第1加密文本c 1解密,生成a』。
·生成s』=c2 xor H(a』,c1)。
·生成G(s』),從G(s』)來生成a」,K』。
·檢查a」=a』是否成立。如果成立則輸出共享密鑰K』。
這裡,如果解密裝置120d中採用與加密裝置110d所用的公開密鑰多項式h對應的正確的秘密密鑰多項式f,則第1加密文本c 1被正確解密,以下關係成立解密驗證值a』=a、從第2加密文本c 2及H(a』,c1)生成的解密隨機數s』=s。因此成為從G(s』)導出的驗證值a」=a、共享密鑰K』=K。這樣,由於a」=a』成立,因而解密裝置120d可導出與加密裝置110d相同的共享密鑰K。
接下來,解密裝置120d利用所導出的共享密鑰K』(=K),經網際網路130從加密裝置110d接受公共密鑰加密文本Ci(1≤i≤n),用公共密鑰密碼對所接受的公共密鑰加密文本Ci(1≤i≤n)解密,生成解密文本mi』(1≤i≤n),並向再生裝置150輸出。
這裡,由於公共密鑰加密文本生成時所用的密碼密鑰K與解密文本生成時所用的密碼密鑰K』相同,因而解密裝置120d便可正確地得到mi』=mi(1≤i≤n)。
4.6 實施方式3的效果在傳統的PSEC-KEM算法中,在散列函數H的輸入中採用a*P、a*W,並利用不採用秘密密鑰便難以從a*P來計算a*W的Diffie-Hellman問題,最終導出共享密鑰K,這樣,如果不知道秘密密鑰,便不能導出其共享密鑰K。因此,由於NTRU密碼等不利用Diffie-Hellman問題的其它公開密鑰密碼,不與Diffie-Hellman問題的a*P、a*W相當,因而存在著不能適用PSEC-KEM算法的問題點。
然而,由於本發明的內容分發系統、加密裝置及解密裝置,將散列函數H的輸入作為驗證值a及其加密文本c1,因而適用PSEC-KEM算法,可利用NTRU密碼及其它公開密鑰密碼。
此外在NTRU密碼中,即使利用公開密鑰對明碼文本加密,生成加密文本,並利用標準的秘密密鑰對加密文本解密,生成解密文本,在有的場合下解密文本也會與原明碼文本相異(參照比如非專利文獻2)。如果發生了這種解密錯誤,儘管解密裝置能得到錯誤的解密驗證值a』,但從G(s』)得到的驗證值a」不再與a』相等,因而不能輸出共享密鑰K』。這樣便具有即使發生了解密錯誤,也可防止在加密裝置與解密裝置之間共享錯誤密鑰的效果。
此外,由於在解密裝置中,不再次進行生成加密文本的處理,因而與傳統技術相比,可削減運算量。
這樣,可利用NTRU密碼,來構成密鑰嵌入機制,在加密裝置與解密裝置之間利用NTRU密碼來進行密鑰分發。
基於本發明的方式,採用與非專利文獻3中記述的證明方法同樣的方法,可從理論上證明其安全性。
4.7 變形例上述說明的實施方式,是本發明的一個實施例,本發明絕非限定於本實施方式,在不脫離其主旨的範圍內可以以各種方式來實施。本發明也包含以下場合。
(1)不限定於所用的NTRU密碼的參數N=167。參數N也可以取其它值。
(2)加密部114d、第2函數部115d、解密部123d及第3函數部124d中所進行的位串與多項式的變換方法,不限於該方法,也可以是其它變換方法。
比如,也可以採用使位串與多項式1對1對應的函數或函數值表來變換。
此外,比如,也可以利用實施方式2的變形例(1)中記述的變換方法來變換。
(3)加密部114d及解密部123d中所用的公開密鑰加密方式也可以是以下方法即,可在加密部114d中,利用公開密鑰對驗證值a加密,生成第1加密文本c1,在解密部123d中利用秘密密鑰對第1加密文本c1解密,生成與驗證值a相等的解密驗證值a』。
因此,加密部114d及解密部123d中所用的公開密鑰密碼,除了NTRU密碼之外,可以利用任意的公開密鑰密碼。
比如,如果採用RSA密碼,則可將h,f分別作為RSA密碼的公開密鑰、秘密密鑰,在加密部114d中,利用h對a加密,生成c1,在解密部123d中,利用f對c1解密,生成a』。
比如,如果採用E1Gama1密碼,則可將h,f分別作為E1Gama1密碼的公開密鑰、秘密密鑰,在加密部114d中,生成隨機數r,利用h及r對a加密,生成c1,在解密部123d中,利用f對c1解密,生成a』。
非專利文獻1中對RSA密碼及E1Gama1密碼有詳細記載,因而這裡省略說明。
(4)除了將函數值G(s)的上位k位作為驗證值a,將下位k位作為共享密鑰K之外,如果第1函數部113d能從函數值G(s)導出驗證值a及共享密鑰K,則也可以是其它的方法。
(5)如果第2函數部115d能從驗證值a及第1加密文本c1導出函數值H(a,c1),則也可以是其它的方法。
比如,對於任意的2項運算#,也可以將a#c1輸入到函數H,導出函數值。此外由於在NTRU密碼中,第1加密文本c1是多項式,因而也可以從第1加密文本c1變換成第1加密文本位串c1』,將a#c1』輸入到函數H,導出函數值。
(6)此外,如果第2函數部115d能利用驗證值a來導出函數值,則也可以是其它的方法。
比如,第2函數部115d也可以輸出H(a),也可以按原樣來輸出驗證值a。即在加密裝置110d中,也可以將第2加密文本c2作為·c2=s xor H(a)或·c2=s xor a來導出。
在這些場合下,解密裝置120d的第3函數部124d分別輸出·H(a』)或·a』。
(7)如果隨機數屏蔽部116d能從隨機數s及函數值H(a,c1)導出第2加密文本c2,隨機數屏蔽除去部125d從第2加密文本c2及函數值H(a,c1)導出隨機數s,則也可以是其它的方法。
比如,隨機數屏蔽部116d也可以將第2加密文本c2作為·c2=s+H(a,c1)或·c2=s·H(a,c1)來導出。
5.實施方式4以下對作為本發明涉及的另一實施方式的內容分發系統10e(未圖示)作以說明。
內容分發系統10e,是以實施方式3所示的內容分發系統10d為基本並使其變型了的系統,與內容分發系統10d的相異之處在於除了驗證值a及共享密鑰K之外,加密裝置還從函數值G(s)生成隨機數值u,並利用隨機數值u對驗證值a加密,生成第1加密文本c1,此外相異之處還在於解密裝置輸出共享密鑰K時的判斷方法。
這裡,以與內容分發系統10d的差異點為中心,對內容分發系統10e做詳細說明。
5.1 內容分發系統10e的構成內容分發系統10e具有與內容分發系統10d相同的構成,取代加密裝置110d及解密裝置120d,而包含加密裝置110e及解密裝置120e。由於其它構成與內容分發系統10d相同,因而省略說明。
內容分發系統10e是一種利用NTRU密碼來進行密鑰分發的系統。加密裝置110e與解密裝置120e經網際網路130來連接。
5.2 加密裝置110e的構成加密裝置110e如圖17所示,由公開密鑰輸入部111d、隨機數生成部112d、第1函數部113e、加密部114e、第2函數部115d、隨機數屏蔽部116d、第1發送部117d、公共密鑰加密部118及第2發送部119來構成。
公開密鑰輸入部111d、隨機數生成部112d、第2函數部115d、隨機數屏蔽部116d、第1發送部117d、公共密鑰加密部118及第2發送部119與構成加密裝置110d的構成要素相同,因而省略說明,這裡,對與構成加密裝置110d的構成要素相異的第1函數部113e及加密部114e的構成及動作作以說明。
(1)第1函數部113e第1函數部113e,從隨機數生成部112d接受隨機數s,並生成所接受的隨機數s的函數值G(s)。接下來,如下所示,從所生成的函數值G(s)來生成驗證值a及共享密鑰k和隨機數值u。
這裡,函數G是輸出長為3k位的散列函數,第1函數部113e,將G(s)的上位k位作為驗證值a,將G(s)中間的k位作為共享密鑰K,將G(s)的下位k位作為隨機數值u。
接下來,第1函數部113e,將所生成的驗證值a輸出到加密部114e及第2函數部115d,將所生成的共享密鑰K輸出到公共密鑰加密部118,將所生成的隨機數值u輸出到加密部114e。
(2)加密部114e加密部114e從公開密鑰輸入部111d接受公開密鑰多項式h,從第1函數部113e接受驗證值a及隨機數值u。接下來,按以下所述,利用公開密鑰多項式h及隨機數值u,來生成驗證值a的第1加密文本c1。這裡,第1加密文本c1是基於NTRU密碼的加密文本。隨機數值u是盲值,用於使加密對象即驗證值a不明晰。
加密部114e,按照從隨機數值u唯一地求出的原則,來生成對於NTRU密碼的參數d,d個項的各係數為「1」,另外d個項的各係數為「-1」,其餘項的各係數為「0」的隨機數多項式r。
具體地說,比如加密部114e,將隨機數u設定為模擬隨機數系列的初始值(隨機數種子),從{0,1,...N-1}生成不重複的2d個模擬隨機數,將由最初的d個模擬隨機數表示的因次項的係數作為「1」,將其餘的d個模擬隨機數表示的因次項的係數作為「-1」,其它因次項的係數作為「0」,由此來生成隨機數多項式r。
接下來,加密部114e利用所生成的隨機數多項式r,與加密部114d同樣,生成第1加密文本c1=E(a p,r,h)。
接下來,加密部114e將所生成的第1加密文本c1輸出到第2函數部115d及第1發送部117d。
5.3 解密裝置120e的構成如圖18所示,解密裝置120e由秘密密鑰輸入部121e、解密部123e、第3函數部124d、隨機數屏蔽除去部125d、第4函數部126e、比較部127e、公共密鑰解密部128及第2接收部129來構成。
這裡,對於第3函數部124d、隨機數屏蔽除去部125d、公共密鑰解密部128及第2接收部129,由於與解密裝置120d中包含的各構成要素相同,因而省略說明,對與解密裝置120d中包含的各構成要素相異的秘密密鑰輸入部121e、解密部123e、第4函數部126e、第2比較部127e的構成及動作作以說明。
(1)秘密密鑰輸入部121e秘密密鑰輸入部121e從存儲卡170接受解密裝置120e的秘密密鑰多項式f及公開密鑰多項式h,並將秘密密鑰多項式f輸出到解密部123e,將公開密鑰多項式h輸出到比較部127e。
(2)解密部123e解密部123e從秘密密鑰輸入部121e接受秘密密鑰多項式f,從第1接收部122d接受第1加密文本c1。接下來,利用秘密密鑰多項式f,對第1加密文本c1解密,生成解密驗證值a』,將所生成的解密驗證值a』輸出到第3函數部124d,將所接受的第1加密文本c1輸出到比較部127e。
(3)第4函數部126e第4函數部126e具有基於與第1函數部113e所具有的函數相同函數G的算法。
第4函數部126e從隨機數屏蔽除去部125d接受解密隨機數s』,生成所接受的解密隨機數s』的散列函數值G(s』)。接下來,與第1函數部113e同樣,從函數值G(s』)生成驗證值a」和共享密鑰K』及隨機數值u』,並將驗證值a」和共享密鑰K』及隨機數值u』輸出到比較部127e。
(4)比較部127e如圖18所示,比較部127e,由比較運算部127p及加密部127q來構成。
加密部127q從秘密密鑰輸入部121e接受公開密鑰多項式h,從第4函數部126e接受驗證值a」及隨機數值u』。接下來,利用所接受的公開密鑰多項式h及隨機數值u』,與加密部114d同樣,對所接受的驗證值a」加密,生成第1再加密文本c1』,並將所生成的第1再加密文本c1』輸出到比較運算部127p。
比較運算部127p從解密部123b接受第1加密文本c1,從加密部127q接受第1再加密文本c1』。接下來,將所接受的第1加密文本c 1與第1再加密文本c1』進行比較,判斷是否c1』=c1。如果c1』=c1,則將所接受的共享密鑰K』輸出到公共密鑰解密部128,如果不是c1』=c1,則不輸出所接受的共享密鑰K』。
5.4 內容分發系統10e的動作驗證以下,利用圖19所示的處理系統圖,對內容分發系統10e的整體動作作以說明。
加密裝置110e接受解密裝置120e的公開密鑰多項式h(步驟S201),生成隨機數s(步驟S202),並生成函數值G(s)(步驟S203),從函數值G(s)導出驗證值a、共享密鑰K及隨機數值u(步驟S204e)。接下來,加密裝置110e利用公開密鑰多項式h及隨機數值u,由NTRU密碼對驗證值a加密,生成第1加密文本c1(步驟S205),從驗證值a及第1加密文本c1來生成函數值H(a,c1)(步驟S206),從隨機數s及函數值H(a,c1)來生成第2加密文本c2=s xor H(a,c1)(步驟S207)。接下來,加密裝置110b經網際網路130將第1加密文本c1及第2加密文本c2發送給解密裝置120e(步驟S208)。
即,該加密裝置110e進行以下處理(a)~(d),將加密文本C=(c1,c2)發送給解密裝置120e。
(a)生成隨機數s。
(b)生成G(s),從G(s)來生成a,K,u。
(c)利用公開密鑰多項式h及隨機數值u,來生成驗證值a的第1加密文本c1。
(d)生成c2=s xor H(a,c1)。
接下來,加密裝置110e利用所導出的共享密鑰K,由公共密鑰密碼對從內容伺服器裝置140輸入的明碼文本mi(1≤i≤n)加密,生成加密文本Ci(1≤i≤n)(步驟S 209),並經網際網路130向解密裝置120e發送(步驟S210)。
另一方面,解密裝置120e接受解密裝置120e的秘密密鑰多項式f及公開密鑰多項式h(步驟S251、步驟S251e),經網際網路130從加密裝置110e來接收第1加密文本c1及第2加密文本c2(步驟S208),利用秘密密鑰多項式f對第1加密文本c1解密,生成解密驗證值a』(步驟S252)。接下來,從解密驗證值a』及第1加密文本c 1來生成函數值H(a』,c1)(步驟S253),從第2加密文本c2及函數值H(a』,c1)來生成解密隨機數s』=c2xor H(a』,c1)(步驟S254)。接下來,解密裝置120e生成解密隨機數s』的函數值G(s』)(步驟S255),從所生成的函數值G(s』)來導出驗證值a」、共享密鑰K』及隨機數值u』(步驟S256e)。接下來,對驗證值a」加密,生成第1再加密文本c1』(步驟S261),如果c1』=c1(步驟S257e),則輸出共享密鑰K』(步驟S258)。
即,解密裝置120e進行以下處理(a)~(e),導出共享密鑰K』。
(a)利用秘密密鑰多項式f對第1加密文本c1解密,生成a』。
(b)生成s』=c2 xor H(a』,c1)。
(c)生成G(s』),從G(s』)生成a」,K』,u』。
(d)利用公開密鑰多項式h及隨機數值u』,來生成a」的第1再加密文本c1』。
(e)檢查c1』=c1是否成立。如果成立則輸出共享密鑰K』。
這裡,如果解密裝置120e中採用與加密裝置110e所用的公開密鑰多項式h對應的正確的秘密密鑰多項式f,則第1加密文本c1被正確解密,以下關係成立解密驗證值a』=a,從第2加密文本c2及H(a』,c1)生成的解密隨機數s』=s。因此以下關係成立從G(s』)導出的驗證值a」=a、共享密鑰K』=K、隨機數值u』=u。這樣,由於a」=a及u』=u成立,因而c1』=c1,解密裝置120e可導出與加密裝置110e相同的共享密鑰K。
接下來,解密裝置120e利用所導出的共享密鑰K』(=K),經網際網路130,從加密裝置110e接收公共密鑰加密文本Ci(1≤i≤n)(步驟S210),利用公共密鑰密碼對所接收的公共密鑰加密文本C i(1≤i≤n)解密,生成解密文本mi』(1≤i≤n) (步驟S259),並將所生成的解密文本mi』(1≤i≤n)向再生裝置150輸出。
這裡,由於公共密鑰加密文本生成時所用的密碼密鑰K與解密文本生成時所用的密碼密鑰K』相同,因而解密裝置120e可正確地得到mi』=mi(1≤i≤n)。
5.5 內容分發系統10e的效果在傳統的PSEC-KEM算法中,在散列函數H的輸入中採用a*P、a*W,並利用不採用秘密密鑰便難以從a*P來計算a*W的Diffie-Hellman問題,最終導出共享密鑰K,這樣,如果不知道秘密密鑰,便不能導出其共享密鑰K。因此,由於NTRU密碼等不利用Diffie-Hellman問題的其它公開密鑰密碼中,不存在與Diffie-Hellman問題的a*P、a*W相當的密碼,因而存在著不能適用PSEC-KEM算法的問題點。
然而,由於本發明的內容分發系統、加密裝置及解密裝置中,將散列函數H的輸入作為驗證值a及其加密文本c1,因而與實施方式3同樣,可採用NTRU密碼及其它公開密鑰密碼。
此外,如果發生解密錯誤,儘管解密裝置能得到錯誤的解密驗證值a』,但由於c1』與c1不相等,因而不輸出共享密鑰K』。這樣便具有即使發生了解密錯誤,也可防止在加密裝置與解密裝置之間共享錯誤密鑰的效果。
這樣,可利用NTRU密碼來構成密鑰嵌入機制,在加密裝置與解密裝置之間利用NTRU密碼來進行密鑰分發。
基於本發明的方式,採用與非專利文獻3中記述的證明方法同樣的方法,可從理論上證明其安全性。
5.6 變形例上述說明的實施方式,是本發明的一個實施例,本發明絕非限定於本實施方式,在不脫離其主旨的範圍內可以以各種方式來實施。儘管可施行與實施方式3同樣的變形,但本發明也包含以下場合。
(1)由加密部114e進行的從隨機數值u向隨機數多項式r的變換方法不局限於該方法,如果能從u唯一地求出r,則也可以是其它的變換方法。比如可以利用使隨機數值u與多項式對應的函數或函數值表來變換。
此外,也可以採用比如實施方式2的變形例(1)中所述的變換方法來進行變換。
(2)加密部114e及解密部123e中所用的公開密鑰密碼也可以是以下方式即,可在加密部114e中,利用公開密鑰及隨機數值u對驗證值a加密,生成第1加密文本c1,在解密部123e中利用秘密密鑰對第1加密文本c1解密,生成與驗證值a相等的解密驗證值a』。因此,加密部114e及解密部123e中所用的公開密鑰密碼,除了NTRU密碼之外,如果是採用隨機數的公開密鑰密碼,則可以利用任意密碼。
比如,如果採用E1Gama1密碼,則可將h,f分別作為E1Gama1密碼的公開密鑰、秘密密鑰,在加密部114e中,利用h及隨機數值u對a加密,生成c1,在解密部123e中,利用f對c1解密,生成a』。
(3)除了隨機數值u由第1函數部113e及第4函數部126e來生成之外,如果由加密裝置110e與解密裝置120e來獲得相同值,則也可以採用其它的生成方法。
比如,對任意函數Func,也可以作為u=Func(s)而由加密裝置110e與解密裝置120e獲得相同值。即也可以·生成G(s),並從G(s)生成a,K。
·生成Func(s),並設為u=Func(s)。
(4)除了隨機數u由第1函數部113e及第4函數部126e來生成之外,由於如果在加密裝置110e與解密裝置120e中能得到同一值即可,因而加密裝置110e也可以將隨機數值u直接發送給解密裝置120e。
即如下所述,也可以將加密文本C與隨機數值u發送給解密裝置120e。
·生成G(s),從G(s)來生成a,K。
·加密裝置110e通過其它途徑,向120e發送隨機數值u。
加密裝置110e也可以對隨機數u加密來發送。
(5)對於隨機數u,由於如果在加密裝置110e與解密裝置120e中能得到同一值即可,因而也可以由第1函數部113e及第4函數部126e來生成隨機數值u的一部分所構成的部分信息,從加密裝置110e將隨機數值u的剩餘部分信息直接發送給解密裝置120e。
比如如下所述,可以將加密文本C與隨機數值u2發送給解密裝置120e。
·生成G(s),從G(s)來生成a,K,u1。
·加密裝置110e通過其它途徑,向解密裝置120e發送隨機數值u 2。
·由u=u1 xor u2來生成隨機數值u。
加密裝置110e也可以對隨機數值u2加密發送。
(6)解密裝置120e,檢查第1加密文本c1是否是由第4函數部126e得到的驗證值a」的加密文本,當c1是a」的加密文本時,利用共享密鑰K』對公共密鑰加密文本Ci解密,但也可以由與實施方式3的解密裝置120d同樣的檢查方法來進行。
即,也可以如圖20的處理系統圖所示,採用與解密裝置120d同樣的解密部123d及比較部127d,如下所示來進行檢查。
(a)利用秘密密鑰多項式f對第1加密文本c1解密,生成a』(步驟S252)。
(b)生成s』=c2 xor H(a』,c1)(步驟S254)。
(c)生成G(s』)(步驟S255),從G(s』)生成a」,K』,u』(步驟S256e)。
(d)檢查是否a」=a』成立(步驟S257)。如果成立則輸出共享密鑰K』(步驟S258)。
此外該檢查也可以是第1加密文本c1是否是解密驗證值a』的加密文本的檢查。
7.實施方式3及實施方式4的總結如上所述,本發明是一種輸出共享密鑰數據、以及基於預先提供的公開密鑰數據對上述共享密鑰數據加密了的加密共享密鑰數據的共享密鑰生成裝置,具有生成秘密數數據的秘密數數據生成部;基於規定的處理,將上述秘密數數據變換成驗證值數據及上述共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據對上述驗證值數據加密,生成第1加密預備數據的第1加密部;基於規定的處理將上述驗證值數據變換成變換驗證值數據的驗證值變換部;基於上述變換驗證值數據對上述秘密數數據加密,生成第2加密預備數據的第2加密部,上述加密共享密鑰數據,由上述第1加密預備數據與上述第2加密預備數據來構成。
本發明是一種輸出共享密鑰數據、以及基於預先提供的公開密鑰數據對上述共享密鑰數據加密了的加密共享密鑰數據的共享密鑰生成裝置,具有生成秘密數數據的秘密數數據生成部;基於規定的處理,將上述秘密數數據及上述第1加密預備數據變換成驗證值數據及上述共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據對上述驗證值數據加密,生成第1加密預備數據的第1加密部;基於規定的處理將上述驗證值數據變換成變換驗證值數據的驗證值變換部;基於上述變換驗證值數據對上述秘密數數據加密,生成第2加密預備數據的第2加密部,上述加密共享密鑰數據,由上述第1加密預備數據與上述第2加密預備數據來構成。
本發明是一種輸出共享密鑰數據、以及基於預先提供的公開密鑰數據對上述共享密鑰數據加密了的加密共享密鑰數據的共享密鑰生成裝置,具有生成秘密數數據的秘密數數據生成部;基於規定的處理,將上述秘密數數據變換成驗證值數據及隨機數數據及上述共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據及上述隨機數據對上述驗證值數據加密,生成第1加密預備數據的第1加密部;基於規定的處理將上述驗證值數據變換成變換驗證值數據的驗證值變換部;基於上述變換驗證值數據對上述秘密數數據加密,生成第2加密預備數據的第2加密部,上述加密共享密鑰數據,由上述第1加密預備數據與上述第2加密預備數據來構成。
本發明是一種輸出共享密鑰數據、以及基於預先提供的公開密鑰數據對上述共享密鑰數據加密了的加密共享密鑰數據的共享密鑰生成裝置,具有生成秘密數數據的秘密數數據生成部;基於規定的處理,將上述秘密數數據變換成驗證值數據及隨機數數據及上述共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據及上述隨機數數據對上述驗證值數據加密,生成第1加密預備數據的第1加密部;基於規定的處理將上述驗證值數據及上述第1加密預備數據變換成變換驗證值數據的驗證值變換部;基於上述變換驗證值數據對上述秘密數數據加密,生成第2加密預備數據的第2加密部,上述加密共享密鑰數據,由上述第1加密預備數據與上述第2加密預備數據來構成。
這裡,上述秘密數數據可以是隨機生成的隨機數。
這裡,上述共享密鑰導出部,也可以作為規定的處理而採用單向性散列函數。
這裡,上述第1加密部,也可以由上述NTRU加密方式來加密,以生成上述第1加密預備數據。
這裡,上述驗證值變換部,也可以作為規定的處理而採用單向性散列函數。
這裡,上述驗證值變換部,也可以作為規定的處理,將上述驗證值數據按原樣來作為上述變換驗證值數據。
這裡,上述第2加密部,也可以進行上述秘密數數據與上述變換驗證值數據的按位加運算,以生成上述第2加密預備數據。
這裡,上述第2加密部,也可以將上述變換驗證值數據用作加密密鑰,由公共密鑰加密方式對上述秘密數數據加密,以生成上述第2加密預備數據。
這裡,上述第2加密部,也可以把上述變換驗證值數據與上述秘密數數據相加,以生成上述第2加密預備數據。
這裡,上述第2加密部,也可以將上述變換驗證值數據與上述秘密數數據相乘,以生成上述第2加密預備數據。
這裡,上述加密共享密鑰數據,也可以是上述第1加密預備數據與上述第2加密預備數據的位連通數據。
本發明是一種基於預先提供的秘密密鑰數據,對由第1加密預備數據與第2加密預備數據構成的加密共享密鑰數據解密,輸出共享密鑰數據的密鑰復原裝置,具有基於上述秘密密鑰數據對上述第1加密預備數據解密,生成驗證值數據的第1解密部;基於規定的處理將上述驗證值數據變換成變換驗證值數據的驗證值變換部;基於上述變換驗證值數據對上述第2加密預備數據解密,生成秘密數數據的第2解密部;基於規定的處理,將上述秘密數數據變換成驗證值驗證數據及上述共享密鑰數據的共享密鑰導出部,在上述驗證值數據與上述驗證值驗證數據一致的場合下,輸出上述共享密鑰數據。
本發明是一種基於預先提供的秘密密鑰數據,對由第1加密預備數據與第2加密預備數據構成的加密共享密鑰數據解密,輸出共享密鑰數據的共享密鑰復原裝置,具有基於上述秘密密鑰數據對上述第1加密預備數據解密,生成驗證值數據的第1解密部;基於規定的處理,將上述驗證值數據及上述第1加密預備數據變換成變換驗證值數據的驗證值變換部;基於上述變換驗證值數據對上述第2加密預備數據解密,生成秘密數數據的第2解密部;基於規定的處理,將上述秘密數數據變換成驗證值驗證數據及上述共享密鑰數據的共享密鑰導出部,在上述驗證值數據與上述驗證值驗證數據一致的場合下,輸出上述共享密鑰數據。
本發明是一種基於預先提供的秘密密鑰數據,對由第1加密預備數據與第2加密預備數據構成的加密共享密鑰數據解密,輸出共享密鑰數據的共享密鑰復原裝置,具有基於上述秘密密鑰數據對上述第1加密預備數據解密,生成驗證值數據的第1解密部;基於規定的處理,將上述驗證值數據變換成變換驗證值數據的驗證值變換部;基於上述變換驗證值數據對上述第2加密預備數據解密,生成秘密數數據的第2解密部;基於規定的處理,將上述秘密數數據變換成驗證值驗證數據及隨機數數據及上述共享密鑰數據的共享密鑰導出部,在上述驗證值數據與上述驗證值驗證數據一致的場合下,輸出上述共享密鑰數據。
本發明是一種基於預先提供的秘密密鑰數據,對由第1加密預備數據與第2加密預備數據構成的加密共享密鑰數據解密,輸出共享密鑰數據的共享密鑰復原裝置,具有基於上述秘密密鑰數據對上述第1加密預備數據解密,生成驗證值數據的第1解密部;基於規定的處理,將上述驗證值數據及第1加密預備數據變換成變換驗證值數據的驗證值變換部;基於上述變換驗證值數據對上述第2加密預備數據解密,生成秘密數數據的第2解密部;基於規定的處理,將上述秘密數數據變換成驗證值驗證數據及隨機數數據及上述共享密鑰數據的共享密鑰導出部,在上述驗證值數據與上述驗證值驗證數據一致的場合下,輸出上述共享密鑰數據。
本發明是一種基於預先提供的秘密密鑰數據及公開密鑰數據,對由第1加密預備數據與第2加密預備數據構成的加密共享密鑰數據解密,輸出共享密鑰數據的共享密鑰復原裝置,具有基於上述秘密密鑰數據對上述第1加密預備數據解密,生成驗證值數據的第1解密部;基於規定的處理,將上述驗證值數據變換成變換驗證值數據的驗證值變換部;基於上述變換驗證值數據對上述第2加密預備數據解密,生成秘密數數據的第2解密部;基於規定的處理,將上述秘密數數據變換成驗證值驗證數據及隨機數數據及上述共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據及上述隨機數據,對上述驗證值驗證數據加密,生成第3加密預備數據的第3加密部,在上述第1加密預備數據與上述第3加密預備數據一致的場合下,輸出上述共享密鑰數據。
本發明是一種基於預先提供的秘密密鑰數據及公開密鑰數據,對由第1加密預備數據及第2加密預備數據構成的加密共享密鑰數據解密,輸出共享密鑰數據的共享密鑰復原裝置,具有基於上述秘密密鑰數據對上述第1加密預備數據解密,生成驗證值數據的第1解密部;基於規定的處理,將上述驗證值數據變換成變換驗證值數據的驗證值變換部;基於上述變換驗證值數據對上述第2加密預備數據解密,生成秘密數數據的第2解密部;基於規定的處理,將上述秘密數數據變換成驗證值驗證數據及隨機數數據及上述共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據及上述隨機數據,對上述驗證值數據加密,生成第3加密預備數據的第3加密部,在上述第1加密預備數據與上述第3加密預備數據一致的場合下,輸出上述共享密鑰數據。
本發明是一種基於預先提供的秘密密鑰數據及公開密鑰數據,對由第1加密預備數據與第2加密預備數據構成的加密共享密鑰數據解密,輸出共享密鑰數據的共享密鑰復原裝置,具有基於上述秘密密鑰數據對上述第1加密預備數據解密,生成驗證值數據的第1解密部;基於規定的處理,將上述驗證值數據及上述第1加密預備數據變換成變換驗證值數據的驗證值變換部;基於上述變換驗證值數據對上述第2加密預備數據解密,生成秘密數數據的第2解密部;基於規定的處理,將上述秘密數數據變換成驗證值驗證數據及隨機數數據及上述共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據及上述隨機數據,對上述驗證值驗證數據加密,生成第3加密預備數據的第3加密部,在上述第1加密預備數據與上述第3加密預備數據一致的場合下,輸出上述共享密鑰數據。
本發明是一種基於預先提供的秘密密鑰數據及公開密鑰數據,對由第1加密預備數據與第2加密預備數據構成的加密共享密鑰數據解密,輸出共享密鑰數據的共享密鑰復原裝置,具有基於上述秘密密鑰數據對上述第1加密預備數據解密,生成驗證值數據的第1解密部;基於規定的處理,將上述驗證值數據及上述第1加密預備數據變換成變換驗證值數據的驗證值變換部;基於上述變換驗證值數據對上述第2加密預備數據解密,生成秘密數數據的第2解密部;基於規定的處理,將上述秘密數數據變換成驗證值驗證數據及隨機數數據及上述共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據及上述隨機數據,對上述驗證值數據加密,生成第3加密預備數據的第3加密部,在上述第1加密預備數據與上述第3加密預備數據一致的場合下,輸出上述共享密鑰數據。
這裡,上述共享密鑰導出部,可以作為規定的處理而採用單向性散列函數。
這裡,上述第1解密部,也可以由上述NTRU加密方式來解密,以生成驗證值數據。
這裡,上述驗證值變換部,也可以作為規定的處理而採用單向性散列函數。
這裡,上述驗證值變換部,也可以作為規定的處理,將上述驗證值數據按原樣來作為上述變換驗證值數據。
這裡,上述第2解密部,也可以進行上述第2加密預備數據與上述變換驗證值數據的按位加運算,以生成上述秘密數數據。
這裡,上述第2解密部,也可以將上述變換驗證值數據用作密碼密鑰,由公共密鑰密碼方式對上述第2加密預備數據解密,以生成上述秘密數數據。
這裡,上述第2解密部,也可以對上述第2加密預備數據相減上述變換驗證值數據,以生成上述秘密數數據。
這裡,上述第2加密部,也可以對上述第2加密預備數據相除上述變換驗證值數據,以生成上述秘密數數據。
本發明是一種基於預先提供的公開密鑰數據來生成對明碼文本數據加密了的加密文本數據的加密裝置,具有生成秘密數數據的秘密數數據生成部;基於規定的處理,將上述秘密數數據變換成驗證值數據及共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據對上述驗證值數據加密,生成第1加密預備數據的第1加密部;基於規定的處理將上述驗證值數據變換成變換驗證值數據的驗證值變換部;基於上述變換驗證值數據對上述秘密數數據加密,生成第2加密預備數據的第2加密部;基於上述共享密鑰數據,對上述明碼文本數據加密,生成第3加密預備數據的第3加密部,上述加密文本數據,由上述第1加密預備數據與上述第2加密預備數據及上述第3加密預備數據來構成。
本發明是一種基於預先提供的秘密密鑰數據,對由第1加密預備數據與第2加密預備數據及第3加密預備數據構成的加密文本數據解密,輸出解密文本數據的解密裝置,具有基於上述秘密密鑰數據對上述第1加密預備數據解密,生成驗證值數據的第1解密部;基於規定的處理,將上述驗證值數據變換成變換驗證值數據的驗證值變換部;基於上述變換驗證值數據對上述第2加密預備數據解密,生成秘密數數據的第2解密部;基於規定的處理,將上述秘密數數據變換成驗證值驗證數據及共享密鑰數據的共享密鑰導出部,還具有在上述驗證值數據與上述驗證值驗證數據一致的場合下,基於上述共享密鑰數據,對上述第3加密預備數據解密,生成上述解密文本數據的解密部。
本發明是一種基於預先提供的公開密鑰數據來生成對明碼文本數據加密了的加密文本數據的加密裝置、以及基於預先提供的秘密密鑰數據對加密文本數據解密,輸出解密文本數據的解密裝置所組成的密碼系統。上述加密裝置具有生成秘密數數據的秘密數數據生成部;基於規定的處理,將上述秘密數數據變換成驗證值數據及共享密鑰數據的共享密鑰導出部;基於上述公開密鑰數據對上述驗證值數據加密,生成第1加密預備數據的第1加密部;基於規定的處理將上述驗證值數據變換成變換驗證值數據的驗證值變換部;基於上述變換驗證值數據對上述秘密數數據加密,生成第2加密預備數據的第2加密部;基於上述共享密鑰數據對上述明碼文本數據加密,生成第3加密預備數據的第3加密部,上述加密文本數據,由上述第1加密預備數據與上述第2加密預備數據及上述第3加密預備數據來構成。上述解密裝置,具有基於上述秘密密鑰數據對上述第1加密預備數據解密,生成上述驗證值數據的第1解密部;基於規定的處理,將上述驗證值數據變換成上述變換驗證值數據的驗證值變換部;基於上述變換驗證值數據,對上述第2加密預備數據解密,生成上述秘密數數據的第2解密部;基於規定的處理,將上述秘密數數據變換成驗證值驗證數據及共享密鑰數據的共享密鑰導出部,還具有在上述驗證值數據與上述驗證值驗證數據一致的場合下,基於上述共享密鑰數據,對上述第3加密預備數據解密,生成上述解密文本數據的解密部。
如上所述,本發明鑑於傳統系統中的問題點,在密碼系統中,構成一種可採用NTRU密碼的密鑰嵌入機制,由此可在加密裝置與解密裝置之間採用NTRU密碼來進行密鑰分發。
由此可提供一種在傳統技術中不能實現的密碼系統,其價值較大。
8.其它變形例儘管基於上述實施方式對本發明作了說明,但顯然本發明並非限定於上述實施方式。本發明也包含以下場合。
(1)也可以取代由加密裝置經網際網路向解密裝置發送各加密文本,而由加密裝置將各加密文本存儲到DVD等記錄媒體,由解密裝置從記錄媒體讀出各加密文本。
(2)本發明所用的NTRU密碼,除了非專利文獻2中記載的方式之外,也可以是EESS(Efficient Embedded Security Standard)方式的NTRU密碼。對於EESS方式的NTRU密碼,「EESS;Consortiumfor Efficien t Embedded Security,Efficient Embedded SecurityStandard #1;Implementation Aspects of NTRU Encrypt and NTRUSign,Version 2.0.」available athttp//ceesstandards.org,May 2003中有詳述。因此,這裡省略詳細說明,以下只做簡單說明。
EESS方式的NTRU密碼中,隨機數多項式r是一種d個係數為1,(N-d)個係數為0的多項式,或者利用多個這種多項式來計算的多項式。因此,在上述實施方式中,在生成隨機多項式r時,如果生成為成為這種多項式,則也可以取代NTRU密碼,而採用EESS方式的NTRU密碼,可得到同樣效果。
(3)內容分發系統也可以是下述所示的構成。
內容分發系統由內容伺服器裝置、加密裝置、廣播裝置、接收裝置、解密裝置、再生裝置、監視器來構成。
加密裝置與解密裝置,與內容分發系統10的加密裝置110及解密裝置120對應。
內容伺服器裝置與加密裝置經專用線路來連接,內容伺服器裝置,經專用線路將由影像及聲音構成的電影等內容發送給加密裝置。加密裝置與廣播裝置經專用線路來連接。加密裝置將各加密文本發送給廣播裝置,廣播裝置對各加密文本多路復用,並加載在數字廣播波上來廣播。
接收裝置與解密裝置連接,解密裝置與再生裝置連接。接收裝置接收數字廣播波,從所接收的數字廣播波抽出各加密文本,並將所抽出的各加密文本向解密裝置發送。解密裝置接受各加密文本,利用所接受的各加密文本,生成再生內容,並將所生成的再生內容輸出到再生裝置。再生裝置與解密裝置及內置揚聲器的監視器連接。再生裝置接受再生內容,從所接受的再生內容來生成影像信號及聲音信號,監視器顯示影像,並輸出聲音。
(4)內容伺服器裝置與加密裝置,也可以由成為一體的裝置來構成。解密裝置與再生裝置也可以由成為一體的裝置來構成。
(5)在上述各實施方式中,存儲卡160預先存儲有公開密鑰多項式h,存儲卡170預先存儲有秘密密鑰多項式f及公開密鑰多項式h,加密裝置110及解密裝置120從存儲卡160及存儲卡170,分別取得公開密鑰多項式及秘密密鑰多項式,但並非限定於此。
加密裝置110可以預先存儲公開密鑰多項式,解密裝置120可以預先存儲公開密鑰多項式及秘密密鑰多項式。
密鑰管理裝置也可以生成秘密密鑰多項式及公開密鑰多項式,將所生成的秘密密鑰多項式及公開密鑰多項式秘密而又安全地發送給解密裝置120,並將所生成的公開密鑰多項式發送給加密裝置110。
(6)內容分發系統中被分發的內容,即由影像及聲音組成的電影等內容沒有限定。可以是由運動圖像、靜止圖像、聲音、音樂、文本、小說、DB軟體生成的資料庫;由表計算軟體生成的電子表數據;電腦程式及其它計算機用數據等。
上述內容也可以不是上述的著作物,而是加密及解密、數字署名及署名驗證等所用的密鑰信息。
比如也可以如上述各實施方式所示,加密裝置及解密裝置共享共享密鑰,加密裝置利用共享密鑰對內容密鑰加密,生成加密內容密鑰,利用內容密鑰對內容加密,生成加密內容,將所生成的加密內容密鑰及所生成的加密內容發送給解密裝置。解密裝置接收加密內容密鑰及加密內容,利用共享密鑰對加密內容密鑰解密,生成內容密鑰,利用所生成的內容密鑰對加密內容解密,以生成內容。
(7)本發明可以是上述所示的方法。可以是由計算機來實現這些方法的電腦程式,也可以是由上述電腦程式組成的數位訊號。
本發明中,可以將上述電腦程式或上述數位訊號,記錄到計算機可讀取的記錄媒體,比如軟盤、硬碟、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc)、半導體存儲器等。此外,也可以作為這些記錄媒體中記錄的上述電腦程式或上述數位訊號。
本發明也可以經由電氣通信線路、無線或有線通信線路、以網際網路為代表的網絡、數字廣播等來傳送上述電腦程式或上述數位訊號。
本發明可以是具有微處理器及存儲器的計算機系統,上述存儲器可存儲有上述電腦程式,上述微處理器可按上述電腦程式來動作。
此外,也可以通過將上述程序或上述數位訊號記錄到上述記錄媒體來傳送,或者通過經由上述網絡等來傳送上述程序或上述數位訊號,而由其它獨立的計算機系統來實施。
(8)也可以將上述實施方式及上述變形例分別組合。
產業上的可利用性上述說明的內容分發系統,在從內容提供者對利用者提供音樂、電影、小說等數位化著作物的產業中,被經營性地反覆持續使用。構成內容分發系統的加密裝置及解密裝置,在製造電氣產品等的電機設備產業中被製造及銷售。
對於通過將數位化著作物存儲到DVD等記錄媒體以在市場上流通,由此經網絡來流通或廣播,以此來進行提供的產業尤其適合。
權利要求
1.一種密鑰共享系統,是未被第三者知曉便生成共享密鑰的共享密鑰生成裝置及共享密鑰復原裝置來構成的密鑰共享系統,其特徵在於上述共享密鑰生成裝置具有生成種子值的種子值生成單元;第1共享密鑰生成單元,其從所生成的上述種子值來生成盲值及共享密鑰;加密單元,其基於所生成的上述盲值,對所生成的上述種子值加密,以生成加密信息;以及發送所生成的加密信息的發送單元,上述共享密鑰復原裝置具有接收上述加密信息的接收單元;解密單元,其對所接收的上述加密信息解密以生成解密種子值;第2共享密鑰生成單元,採用與上述第1共享密鑰生成單元相同的方法,從所生成的上述解密種子值來生成解密盲值及解密共享密鑰;再加密單元,其基於所生成的上述解密盲值,對所生成的上述解密種子值加密,以生成再加密信息;判斷單元,其基於所接收的上述加密信息及所生成的上述再加密信息,來判斷是否輸出上述解密共享密鑰;輸出單元,其在判斷為輸出的場合下,輸出所生成的上述解密共享密鑰。
2.權利要求1中記載的密鑰共享系統,其特徵在於上述共享密鑰生成裝置還具有取得內容的取得單元;加密單元,其利用所生成的上述共享密鑰,對所取得的內容加密,以生成加密內容,上述發送單元,還發送所生成的上述加密內容,上述接收單元,還接收上述加密內容,上述共享密鑰復原裝置還具有解密單元,其利用所輸出的上述解密共享密鑰,對所接收的上述加密內容解密,以生成解密內容;輸出所生成的解密內容的輸出單元。
3.一種共享密鑰生成裝置,是未被第三者知曉便向對方裝置傳送共享密鑰的共享密鑰生成裝置,其特徵在於具有生成種子值的種子值生成單元;共享密鑰生成單元,其從所生成的上述種子值來生成盲值及共享密鑰;加密單元,其基於所生成的上述盲值,對所生成的上述種子值加密,以生成加密信息;發送所生成的加密信息的發送單元。
4.權利要求3中記載的共享密鑰生成裝置,其特徵在於上述共享密鑰生成單元,對上述種子值施行單向性函數,生成函數值,並從所生成的函數值來生成上述盲值及上述共享密鑰,上述加密單元包含取得公開密鑰的公開密鑰取得部;公開密鑰加密部,其利用所取得的上述公開密鑰及所生成的上述盲值,對所生成的上述種子值施行公開密鑰加密算法,並作為上述加密信息來生成加密種子值。
5.權利要求4中記載的共享密鑰生成裝置,其特徵在於上述公開密鑰加密算法,基於NTRU加密方式,上述公開密鑰取得部,作為上述公開密鑰,取得由NTRU加密方式的密鑰生成算法生成的公開密鑰多項式,上述公開密鑰加密部,從上述種子值來生成種子值多項式,從上述盲值來生成盲值多項式,由NTRU加密方式的加密算法,將上述公開密鑰多項式用作密鑰,為攪亂上述種子值多項式而利用上述盲值多項式,對上述種子值多項式加密,並作為上述加密種子值來生成加密種子值多項式,上述發送單元,作為上述加密種子值,發送所生成的上述加密種子值多項式。
6.權利要求3中記載的共享密鑰生成裝置,其特徵在於上述加密單元包含取得公開密鑰的公開密鑰取得部;公開密鑰加密部,其生成盲值,利用所取得的上述公開密鑰及所生成的上述盲值,對所生成的上述種子值施行公開密鑰加密算法,以生成公開密鑰加密文本;函數部,其對所生成的上述種子值、上述盲值及上述共享密鑰的任意一個以上施行第2單向性函數,以生成第2函數值,上述加密單元,生成包含上述公開密鑰加密文本及上述第2函數值的上述加密信息。
7.權利要求6中記載的共享密鑰生成裝置,其特徵在於上述共享密鑰生成單元,對上述種子值施行單向函數,生成函數值,並從所生成的函數值來生成上述盲值及上述共享密鑰。
8.權利要求6中記載的共享密鑰生成裝置,其特徵在於上述共享密鑰生成單元,取代上述盲值及上述共享密鑰的生成,對上述種子值施行第1單向性函數,生成第1函數值,並從所生成的第1函數值來生成上述共享密鑰。
9.權利要求6中記載的共享密鑰生成裝置,其特徵在於上述公開密鑰加密算法,基於NTRU加密方式,上述公開密鑰取得部,作為上述公開密鑰,取得由NTRU加密方式的密鑰生成算法生成的公開密鑰多項式,上述公開密鑰加密部,從上述種子值來生成種子值多項式,從上述盲值來生成盲值多項式,由NTRU加密方式的加密算法,將上述公開密鑰多項式用作密鑰,為攪亂上述種子值多項式而利用上述盲值多項式,對上述種子值多項式加密,並作為上述公開密鑰加密文本來生成加密種子值多項式,上述加密單元,生成包含作為上述公開密鑰加密文本的上述加密種子值多項式及上述第2函數值的上述加密信息。
10.權利要求3中記載的共享密鑰生成裝置,其特徵在於上述共享密鑰生成單元,對上述種子值施行單向性函數,生成函數值,並從所生成的函數值來生成驗證值、上述盲值及上述共享密鑰,上述加密單元包含取得公開密鑰的公開密鑰取得部;第1加密部,其利用所取得的上述公開密鑰及所生成的上述盲值,對所生成的上述驗證值施行公開密鑰加密算法,以生成第1加密文本;第2加密部,其基於所生成的上述驗證值,對所生成的上述種子值施行其它的運算算法,以生成第2加密文本,上述加密單元,生成包含上述第1加密文本及上述第2加密文本的上述加密信息。
11.權利要求10中記載的共享密鑰生成裝置,其特徵在於上述公開密鑰加密算法,基於NTRU加密方式,上述公開密鑰取得部,作為上述公開密鑰,取得由NTRU加密方式的密鑰生成算法生成的公開密鑰多項式,上述第1加密部,從上述驗證值來生成驗證值多項式,從上述盲值來生成盲值多項式,由NTRU加密方式的加密算法,將上述公開密鑰多項式用作密鑰,為攪亂上述驗證值多項式而利用上述盲值多項式,對上述驗證值多項式加密,並作為上述第1加密文本來生成加密驗證值多項式,上述加密單元,生成包含作為上述第1加密文本的上述加密驗證值多項式及上述第2加密文本的上述加密信息。
12.權利要求11中記載的共享密鑰生成裝置,其特徵在於上述其它的運算算法,是公共密鑰加密算法,上述第2加密部,將上述驗證值用作密鑰,對上述種子值施行公共密鑰加密算法,以生成上述第2加密文本。
13.權利要求11中記載的共享密鑰生成裝置,其特徵在於上述其它的運算算法是按位加,上述第2加密部,對上述驗證值與上述種子值施行按位加,以生成上述第2加密文本。
14.權利要求11中記載的共享密鑰生成裝置,其特徵在於上述其它的運算算法是加法運算,上述第2加密部,對上述驗證值與上述種子值施行加法運算,以生成上述第2加密文本。
15.權利要求11中記載的共享密鑰生成裝置,其特徵在於上述其它的運算算法是乘法運算,上述第2加密部,對上述驗證值與上述種子值施行乘法運算,以生成上述第2加密文本。
16.權利要求3中記載的共享密鑰生成裝置,其特徵在於上述種子值生成單元生成隨機數,並將所生成的隨機數作為上述種子值。
17.權利要求3中記載的共享密鑰生成裝置,其特徵在於上述共享密鑰生成單元,對上述種子值施行單向性函數,生成函數值,並從所生成的函數值來生成上述盲值及上述共享密鑰。
18.權利要求17中記載的共享密鑰生成裝置,其特徵在於上述單向性函數是散列函數,上述共享密鑰生成單元,對上述種子值施行散列函數。
19.權利要求17中記載的共享密鑰生成裝置,其特徵在於上述共享密鑰生成單元,將所生成的函數值的一部分作為上述盲值,將其它部分作為上述共享密鑰,由此生成上述盲值及上述共享密鑰。
20.權利要求3中記載的共享密鑰生成裝置,其特徵在於上述共享密鑰生成裝置還具有取得內容的取得單元;加密單元,其利用所生成的上述共享密鑰,對所取得的內容加密,以生成加密內容,上述發送單元,還發送所生成的上述加密內容。
21.一種共享密鑰復原裝置,是未被第三者知曉便從共享密鑰生成裝置來接受共享密鑰的共享密鑰復原裝置,其特徵在於上述共享密鑰生成裝置生成種子值,從所生成的上述種子值來生成盲值及共享密鑰,基於所生成的上述盲值,對所生成的上述種子值加密,生成加密信息,並發送所生成的上述加密信息,上述共享密鑰復原裝置具有接收上述加密信息的接收單元;解密單元,其對所接收的上述加密信息解密,以生成解密種子值;共享密鑰生成單元,採用與基於上述共享密鑰生成裝置的共享密鑰生成方法相同的方法,從所生成的上述解密種子值來生成解密盲值及解密共享密鑰;再加密單元,其基於所生成的上述解密盲值,對所生成的上述解密種子值加密,以生成再加密信息;判斷單元,其基於所接收的上述加密信息及所生成的上述再加密信息,來判斷是否輸出上述解密共享密鑰;輸出單元,其在判斷為輸出的場合下,輸出所生成的上述解密共享密鑰。
22.權利要求21中記載的共享密鑰復原裝置,其特徵在於上述共享密鑰生成裝置對上述種子值施行單向性函數,生成函數值,從所生成的函數值來生成上述盲值及上述共享密鑰,取得公開密鑰,利用所取得的上述公開密鑰及所生成的上述盲值,對所生成的上述種子值施行公開密鑰加密算法,作為上述加密信息來生成上述加密種子值,並發送上述加密種子值,上述接收單元,作為上述加密信息來接收上述加密種子值,上述解密單元包含秘密密鑰取得部,其取得與上述公開密鑰對應的秘密密鑰;公開密鑰解密部,其利用所取得的秘密密鑰,對所接收的上述加密種子值,施行與上述公開密鑰加密算法對應的公開密鑰解密算法,以生成上述解密種子值,上述共享密鑰生成單元,對所生成的上述解密種子值施行上述單向性函數,生成解密函數值,從所生成的上述解密函數值來生成上述解密盲值及上述解密共享密鑰,上述再加密單元包含取得上述公開密鑰的公開密鑰取得部;再加密部,其利用所取得的上述公開密鑰及所生成的上述解密盲值,對所生成的上述解密種子值施行上述公開密鑰加密算法,作為上述再加密信息來生成上述再加密種子值,上述判斷單元,判斷所接收的上述加密種子值與所生成的上述再加密種子值是否一致,在一致的場合下,判斷為輸出上述解密共享密鑰。
23.權利要求22中記載的共享密鑰復原裝置,其特徵在於上述公開密鑰加密算法及上述公開密鑰解密算法,基於NTRU加密方式,上述共享密鑰生成裝置,作為上述公開密鑰,取得由NTRU加密方式的密鑰生成算法生成的公開密鑰多項式,從上述種子值來生成種子值多項式,從上述盲值來生成盲值多項式,由NTRU加密方式的加密算法,將上述公開密鑰多項式用作密鑰,為攪亂上述種子值多項式而利用上述盲值多項式,對上述種子值多項式加密,作為上述加密種子值來生成加密種子值多項式,作為上述加密種子值,來發送上述加密種子值多項式,上述接收單元,作為上述加密種子值,來接收上述加密種子值多項式,上述秘密密鑰取得部,作為上述秘密密鑰,來取得由NTRU加密方式的密鑰生成算法生成的秘密密鑰多項式,上述公開密鑰解密部,將所取得的上述秘密密鑰多項式用作密鑰,由NTRU加密方式的解密算法,對所接收的上述加密種子值多項式解密,生成解密種子值多項式,並從所生成的上述解密種子值多項式來生成上述解密種子值,上述公開密鑰取得部,作為上述公開密鑰來取得上述公開密鑰多項式,上述再加密部,從上述解密種子值來生成種子值多項式,從上述解密盲值來生成盲值多項式,由NTRU加密方式的加密算法,將上述公開密鑰多項式用作密鑰,為攪亂上述種子值多項式而利用上述盲值多項式,對上述種子值多項式加密,以生成再加密種子值多項式,上述判斷單元,判斷所接收的上述加密種子值多項式與所生成的上述再加密種子值多項式是否一致。
24.權利要求21中記載的共享密鑰復原裝置,其特徵在於上述共享密鑰生成裝置,取得公開密鑰,生成盲值,利用所取得的上述公開密鑰及所生成的上述盲值,對所生成的上述種子值施行公開密鑰加密算法,生成公開密鑰加密文本,對所生成的上述種子值、上述盲值及上述共享密鑰的任意一個以上,施行第2單向性函數,生成第2函數值,以生成包含上述公開密鑰加密文本及上述第2函數值的上述加密信息,並發送上述加密信息,上述接收單元,接收包含上述公開密鑰加密文本及上述第2函數值的上述加密信息,上述解密單元包含秘密密鑰取得部,其取得與上述公開密鑰對應的秘密密鑰;公開密鑰解密部,其利用所取得的上述秘密密鑰,對所接收的上述加密信息中包含的上述公開密鑰加密文本,施行與上述公開密鑰加密算法對應的公開密鑰解密算法,以生成解密種子值;函數部,其對所生成的解密種子值、上述解密盲值及上述解密共享密鑰的任意一個以上,施行上述第2單向性函數,以生成第2函數值,上述判斷單元,取代基於上述加密信息及上述再加密信息的判斷,而判斷所接收的上述加密信息中包含的上述第2函數值與所生成的上述解密第2函數值是否一致,在一致的場合下,判斷為輸出上述解密共享密鑰。
25.權利要求24中記載的共享密鑰復原裝置,其特徵在於上述共享密鑰生成裝置,對上述種子值施行單向性函數,生成函數值,並從所生成的函數值生成上述盲值及上述共享密鑰,上述共享密鑰生成單元,對所生成的上述解密種子值施行上述第1單向性函數,生成解密函數值,並從所生成的上述解密函數值來生成上述解密盲值及上述解密共享密鑰。
26.權利要求24中記載的共享密鑰復原裝置,其特徵在於上述共享密鑰生成裝置,取代上述盲值及上述共享密鑰的生成,而對上述種子值施行第1單向性函數,生成第1函數值,並從所生成的第1函數值生成上述共享密鑰,上述共享密鑰生成單元,取代上述解密盲值及上述解密共享密鑰的生成,而對所生成的上述解密種子值施行上述第1單向性函數,生成解密函數值,並從所生成的上述解密函數值生成上述解密共享密鑰。
27.權利要求24中記載的共享密鑰復原裝置,其特徵在於上述公開密鑰加密算法及上述公開密鑰解密算法,基於NTRU加密方式,上述共享密鑰生成裝置,作為上述公開密鑰,取得由NTRU加密方式的密鑰生成算法生成的公開密鑰多項式,從上述種子值來生成種子值多項式,從上述盲值來生成盲值多項式,由NTRU加密方式的加密算法,將上述公開密鑰多項式用作密鑰,為攪亂上述種子值多項式而利用上述盲值多項式,對上述種子值多項式加密,作為上述公開密鑰加密文本來生成加密種子值多項式,以生成包含作為上述公開密鑰加密文本的上述加密種子值多項式及上述第2函數值的上述加密信息,上述秘密密鑰取得部,作為上述秘密密鑰,來取得由NTRU加密方式的密鑰生成算法生成的秘密密鑰多項式,上述公開密鑰解密部,從上述公開密鑰加密文本來生成公開密鑰加密文本多項式,將所取得的上述秘密密鑰多項式用作密鑰,由NTRU加密方式的解密算法,對上述公開密鑰加密文本多項式解密,生成解密種子值多項式,從所生成的上述解密種子值多項式來生成上述解密種子值。
28.權利要求21中記載的共享密鑰復原裝置,其特徵在於上述共享密鑰生成裝置,對上述種子值施行單向性函數,生成函數值,並從所生成的函數值來生成驗證值、上述盲值及上述共享密鑰,取得公開密鑰,利用所取得的上述公開密鑰及所生成的上述盲值,對所生成的上述驗證值施行公開密鑰加密算法,以生成第1加密文本,基於所生成的上述驗證值,對所生成的上述種子值施行其它的運算算法,以生成第2加密文本,從而生成包含上述第1加密文本及上述第2加密文本的上述加密信息,並發送所生成的上述加密信息,上述接收單元,接收包含上述第1加密文本及上述第2加密文本的上述加密信息,上述解密單元包含秘密密鑰取得部,其取得與上述公開密鑰對應的秘密密鑰;公開密鑰解密部,其利用所取得的秘密密鑰,對所接收的上述加密信息中包含的上述第1加密文本,施行與上述公開密鑰加密算法對應的公開密鑰解密算法,以生成解密驗證值;運算解密部,其基於所生成的解密驗證值,對所接收的上述加密信息中包含的上述第2加密文本,施行進行上述其它運算算法的逆運算的運算算法,以生成解密種子值,上述共享密鑰生成單元,對所生成的上述解密種子值施行上述單向性函數,生成解密函數值,從所生成的上述解密函數值來生成解密驗證值、上述解密盲值及上述解密共享密鑰,上述再加密單元包含取得上述公開密鑰的公開密鑰取得部;再加密部,其利用所取得的上述公開密鑰及所生成的上述解密盲值,對所生成的上述解密驗證值,施行上述公開密鑰加密算法,以生成上述再加密信息,上述判斷單元,判斷上述加密信息中包含的上述第1加密文本與所生成的上述再加密信息是否一致,在一致的場合下,判斷為輸出上述解密共享密鑰。
29.權利要求28中記載的共享密鑰復原裝置,其特徵在於上述公開密鑰加密算法及上述公開密鑰解密算法,基於NTRU加密方式,上述共享密鑰生成裝置,作為上述公開密鑰,取得由NTRU加密方式的密鑰生成算法生成的公開密鑰多項式,從上述驗證值來生成驗證值多項式,從上述盲值來生成盲值多項式,由NTRU加密方式的加密算法,將上述公開密鑰多項式用作密鑰,為攪亂上述驗證值多項式而利用上述盲值多項式,對上述驗證值多項式加密,作為上述第1加密文本來生成加密驗證值多項式,以生成包含作為上述第1加密文本的上述加密驗證值多項式及上述第2加密文本的上述加密信息,並發送上述加密信息,上述接收單元,接收包含上述加密驗證值多項式及上述第2加密文本的上述加密信息,上述秘密密鑰取得部,作為上述秘密密鑰,來取得由NTRU加密方式的密鑰生成算法生成的秘密密鑰多項式,上述公開密鑰解密部,從上述第1加密文本來生成第1加密文本多項式,將所取得的上述秘密密鑰多項式用作密鑰,由NTRU加密方式的解密算法,對上述第1加密文本多項式解密,生成解密驗證多項式,從所生成的上述解密驗證值多項式來生成上述解密驗證值,上述公開密鑰取得部,取得上述公開密鑰多項式,上述再加密部,從上述解密驗證值來生成解密驗證值多項式,從上述解密盲值來生成盲值多項式,由NTRU加密方式的加密算法,將上述公開密鑰多項式用作密鑰,為攪亂上述解密驗證值多項式而利用上述盲值多項式,對上述解密驗證值多項式加密,作為上述再加密信息來生成再加密驗證值多項式,上述判斷單元,判斷作為上述第1加密文本的上述加密驗證值多項式與作為上述再加密信息的上述再加密驗證值多項式是否一致。
30.權利要求29中記載的共享密鑰復原裝置,其特徵在於上述其它的運算算法,是公共密鑰加密算法,進行上述逆運算的上述運算算法,是對應的公共密鑰解密算法,上述運算解密部,將上述解密驗證值用作密鑰,對上述第2加密文本施行公共密鑰解密算法,以生成上述解密種子值。
31.權利要求29中記載的共享密鑰復原裝置,其特徵在於上述其它的運算算法及進行上述逆運算的上述運算算法是按位加,上述運算解密部,對上述解密驗證值與上述第2加密文本施行按位加,以生成上述解密種子值。
32.權利要求29中記載的共享密鑰復原裝置,其特徵在於上述其它的運算算法是加法運算,進行上述逆運算的上述運算算法是減法運算,上述運算解密部,對上述解密驗證值與上述第2加密文本施行減法運算,以生成上述解密種子值。
33.權利要求29中記載的共享密鑰復原裝置,其特徵在於上述其它的運算算法是乘法運算,進行上述逆運算的上述運算算法是除法運算,上述運算解密部,對上述解密驗證值與上述第2加密文本施行除法運算,以生成上述解密種子值。
34.權利要求21中記載的共享密鑰復原裝置,其特徵在於上述共享密鑰生成單元,對上述解密種子值施行單向性函數,生成函數值,並從所生成的函數值來生成上述解密盲值及上述解密共享密鑰。
35.權利要求34中記載的共享密鑰復原裝置,其特徵在於上述單向性函數是散列函數,上述共享密鑰生成單元,對上述解密種子值施行散列函數。
36.權利要求34中記載的共享密鑰復原裝置,其特徵在於上述共享密鑰生成單元,將所生成的函數值的一部分作為上述解密盲值,將其它部分作為上述解密共享密鑰,由此生成上述解密盲值及上述解密共享密鑰。
37.權利要求21中記載的共享密鑰復原裝置,其特徵在於上述共享密鑰生成裝置還取得內容,利用所生成的上述共享密鑰,對所取得的內容加密,以生成加密內容,並發送所生成的上述加密內容,上述共享密鑰解密裝置還具有接收上述加密內容的內容接收單元;解密單元,其利用所輸出的上述解密共享密鑰,對所接收的上述加密內容解密,以生成解密內容;再生單元,其再生所生成的上述解密內容。
38.一種共享密鑰生成方法,是未被第三者知曉便向對方裝置傳送共享密鑰的共享密鑰生成裝置中所用的共享密鑰生成方法,其特徵在於包括生成種子值的種子值生成步驟;共享密鑰生成步驟,其從所生成的上述種子值來生成盲值及共享密鑰;加密步驟,其基於所生成的上述盲值,對所生成的上述種子值加密,以生成加密信息;發送所生成的加密信息的發送步驟。
39.一種共享密鑰生成程序,是未被第三者知曉便向對方裝置傳送共享密鑰的共享密鑰生成裝置中所用的共享密鑰生成程序,其特徵在於包括生成種子值的種子值生成步驟;共享密鑰生成步驟,其從所生成的上述種子值來生成盲值及共享密鑰;加密步驟,其基於所生成的上述盲值,對所生成的上述種子值加密,以生成加密信息;發送所生成的加密信息的發送步驟。
40.權利要求39中記載的共享密鑰生成程序,其特徵在於上述共享密鑰生成程序,被記錄到計算機可讀取的記錄媒體。
41.一種共享密鑰復原方法,是未被第三者知曉便從共享密鑰生成裝置接受共享密鑰的共享密鑰復原裝置中所用的共享密鑰復原方法,其特徵在於上述共享密鑰生成裝置生成種子值,從所生成的上述種子值來生成盲值及共享密鑰,基於所生成的上述盲值,對所生成的上述種子值加密,生成加密信息,並發送所生成的上述加密信息,上述共享密鑰復原方法包括接收上述加密信息的接收步驟;解密步驟,其對所接收的上述加密信息解密,以生成解密種子值;共享密鑰生成步驟,利用與基於上述共享密鑰生成裝置的共享密鑰生成方法相同的方法,從所生成的上述解密種子值來生成解密盲值及解密共享密鑰;再加密步驟,其基於所生成的上述解密盲值,對所生成的上述解密種子值加密,以生成再加密信息;判斷步驟,其基於所接收的上述加密信息及所生成的上述再加密信息,來判斷是否輸出上述解密共享密鑰;輸出步驟,其在判斷為輸出的場合下,輸出所生成的上述解密共享密鑰。
42.一種共享密鑰復原程序,是未被第三者知曉便從共享密鑰生成裝置接受共享密鑰的共享密鑰復原裝置中所用的共享密鑰復原程序,其特徵在於上述共享密鑰生成裝置生成種子值,從所生成的上述種子值來生成盲值及共享密鑰,基於所生成的上述盲值,對所生成的上述種子值加密,生成加密信息,並發送所生成的上述加密信息,上述共享密鑰復原程序包括接收上述加密信息的接收步驟;解密步驟,其對所接收的上述加密信息解密,以生成解密種子值;共享密鑰生成步驟,利用與基於上述共享密鑰生成裝置的共享密鑰生成方法相同的方法,從所生成的上述解密種子值來生成解密盲值及解密共享密鑰;再加密步驟,其基於所生成的上述解密盲值,對所生成的上述解密種子值加密,以生成再加密信息;判斷步驟,其基於所接收的上述加密信息及所生成的上述再加密信息,來判斷是否輸出上述解密共享密鑰;輸出步驟,其在判斷為輸出的場合下,輸出所生成的上述解密共享密鑰。
43.權利要求42中記載的共享密鑰復原程序,其特徵在於上述共享密鑰復原程序,被記錄到計算機可讀取的記錄媒體。
全文摘要
提供一種防止在加密裝置與解密裝置之間導出不同密鑰的內容分發系統。加密裝置110的隨機數生成部112生成隨機數s,第1函數部113生成隨機數s的函數值G(s),從函數值G(s)生成隨機數值u及共享密鑰K,加密部114利用公開密鑰多項式h及隨機數值u來生成隨機數s的第1加密文本c1。解密裝置120的解密部123利用秘密密鑰多項式f,對第1加密文本c1解密,生成解密隨機數s』,第2函數部126生成解密隨機數s』的函數值G(s』),從函數值G(s』)生成隨機數值u』及共享密鑰K』,比較部127利用隨機數值u』及共享密鑰K』,生成第1再加密文本c1』,如果第1加密文本c1與第1再加密文本c1』一致,便輸出共享密鑰K』。
文檔編號H04L9/08GK1692598SQ20038010050
公開日2005年11月2日 申請日期2003年11月28日 優先權日2002年12月3日
發明者山道將人, 布田裕一, 大森基司, 館林誠 申請人:松下電器產業株式會社