密钥共享系统、共享密钥生成装置及共享密钥复原装置的制作方法

文档序号:7576237阅读:324来源:国知局
专利名称:密钥共享系统、共享密钥生成装置及共享密钥复原装置的制作方法
技术领域
本发明涉及作为信息保密技术的加密技术,尤其涉及一种未被第三者知晓便配送密钥的技术。
背景技术
以往,为从发送装置向接收装置秘密发送信息,往往采用公开密钥加密方式。
在公开密钥加密方式中,发送装置利用接收装置的公开密钥,对通信内容加密来发送,接收装置接收被加密了的通信内容,利用自身的秘密密钥,对所接收的通信内容解密,从而得到原通信内容。(参照比如非专利文献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日
发明者山道将人, 布田裕一, 大森基司, 馆林诚 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1