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