技术领域
[0001] 本发明涉及将比进行加密的单位数据的大小更小的多个数据加密并储存的技术。
相关背景技术
[0002] 近年来,具备温度传感器等的各种传感器功能和通信功能这两个功能的标签(tag)的开发被不断推进,还研究了使用它们的各种应用。 例如,可以考虑对输送的生鲜食品及美术品贴上具有温度传感器的标签,测量输送时的温度那样的应用。 此外,作为别的应用,可以考虑面向需要长期间或定期地计测体温等的患者的健康管理用途。 这样,通过将具有这些计测功能的标签(以下称作传感器标签)粘贴在输送时的物品或患者的身体上,从而能够定期地计测状态。 将计测出的信息储存到传感器标签内,在结束了一定期间的计测之后,从物品或患者的身体上取下,使用通信功能读出内部的数据。 通过传感器标签的超小型化,能够在不使物品的运输者及患者意识到的情况下进行定期的计测。
[0003] 在将传感器标签用于上述健康管理用途的情况下,需要保证储存在传感器标签内的计测信息的机密性。 这是因为,计测出的生物体信息对于被计测者而言是隐私信息。 因此,在粘贴在身体上的传感器标签在没有注意时剥落而被第三者拾取的情况下、或因为数据读出后的传感器标签的管理的不完善而传递到第三者手中的情况下,需要防止被计测者的生物体信息的泄露。 所以,为了防止数据泄露,需要将计测出的生物体信息在传感器标签内部进行加密地储存那样的机制。
[0004] 加密的方法中大体存在两种。 是使用私钥加密的方法、和使用公钥加密的方法。 私钥加密的特征是加密密钥与解密密钥相同,公钥加密的特征是加密密钥(公钥)与解密密钥(私钥)不同。 此外,在哪种情况下,都在传感器标签中仅放入加密密钥。这里,设想传感器标签被解析、内部数据泄露的情况。 在这样的设想之下,意味着加密密钥被解析。
[0005] 在使用私钥加密的情况下,由于加密密钥与解密密钥相同,所以能够使用该加密密钥将放入到传感器标签中的加密数据容易地解密。 由此,不能说机密性确保是充分的。
[0006] 另一方面,在使用公钥加密的情况下,虽然能够得到加密密钥,但因为公钥加密的特征,不能在现实的时间内根据加密密钥导出解密密钥。 由此,不能导出解密密钥,不能将放入在传感器标签中的加密数据解密。 这样,如果在将储存数据加密的情况下使用公钥加密,则能够提高机密性。在该公钥加密中提出了各种方式,例如有RSA方式(Rivest ShamirAdleman)、ElGamal方式、椭圆ElGamal方式、NTRU方式等。
[0007] 现有技术文献
[0008] 专利文献1:日本特表2000-516733号公报发明概要
[0009] 发明要解决的问题
[0010] 在使用公钥加密的情况下,有进行加密的生物体信息的大小比用公钥加密来进行加密的单位小的特征。 此外,生物体信息被连续取得。
[0011] 这样的情况下的加密的实现方法大体分为两类。
[0012] 第一类是对大小较小的生物体信息嵌入固定值(padding:填充)来进行加密的方法。 第二类是将大小较小的生物体信息不加密而临时储存,如果它们储存了某一定大小以上则进行连结并加密的方法。
[0013] 在第一类方法的情况下,存在密文大小变大的问题。 举具体例进行说明。 这里,设想1024位(bit)的RSA加密和167次(degree)的NTRU加密,生物体信息为24位。 在1024位的RSA加密的情况下,加密的单位为1024位。 因此,对生物体信息24位连结1000位的固定值(填充),对该连结后的值进行加密。 由此,生成对1024位的明文的密文,但实际有意义的值仅为24位。 此外,在167次的NTRU加密的情况下,加密的单位为167位。 因此,对生物体信息24位连结143位的固定值(填充),对该连结后的值进行加密。由此,生成对167位的明文的密文,但实际有意义的值仅为24位。同时,密文数据的大小增加了本来不需要加密的固定值(填充)的大小的量,变得没有效率。
[0014] 另一方面,在第二类方法的情况下,由于临时储存的数据为还没有被加密的状态,所以存在万一被内部解析则该数据原样泄露的安全的问题。
具体实施方式
[0035] 作为本发明的一技术方案的加密装置,将比加密的单位长度小的加密对象数据加密,其特征在于,具备:存储部,存储管理信息,该管理信息表示在基于上述加密的单位长度决定的加密区域中已经被用于加密的已使用区域;加密部,在将比上述加密的单位长度小的新的加密对象数据加密时,基于上述管理信息确认上述加密区域中的已使用区域,通过在上述加密区域中对于上述已使用区域以外的未使用区域追加上述新的加密对象数据,生成加密数据;以及控制部,如果生成上述加密数据,则更新上述管理信息,以使上述新加密的数据包含在上述已使用区域中。
[0036] 根据该结构,加密装置通过将上述新的加密对象数据追加到未使用区域中而生成加密数据。 由此,每当将比加密的单位长度小的加密对象数据加密时,加密装置不再需要生成上述单位长度的加密数据,所以整体上能够大幅削减在加密中使用的数据大小。因而,加密装置能够尽量抑制加密后的数据的大小的增加。 此外,即使储存的数据被解析,由于被加密,所以也能够防止明文数据的泄露。
[0037] 这里,也可以是,上述加密部在将比上述加密的单位长度小的新的加密对象数据加密时,基于上述管理信息确认上述加密区域中的已使用区域,在上述加密对象数据被加密时应该使用的区域包含在上述未使用区域中的情况下,生成加密数据,以将上述新的加密对象数据追加到上述未使用区域中。
[0038] 根据该结构,由于在上述加密对象数据被加密时使用的区域包含在上述未使用区域中的情况下,加密装置将新的加密对象数据追加到该未使用区域中,所以能够在包含已经加密的数据的加密区域中可靠地进行加密。
[0039] 这里,也可以是,上述加密部在将比上述加密的单位长度小的新的加密对象数据加密时,基于上述管理信息确认上述加密区域中的已使用区域,在上述加密对象数据被加密时应该使用的区域超过上述未使用区域的情况下,使用新的加密区域来生成第2加密数据,该第2加密数据以上述新加密的数据为最初的加密数据;如果生成上述第2加密数据,则上述控制部根据上述第2加密数据,为了上述第2加密数据而生成第2管理信息并存储到上述存储部中,该第2管理信息表示在上述新的加密对象数据的加密中使用了的已使用区域。
[0040] 根据该结构,即使在不能进行使用包含已经加密的数据的加密区域的加密的情况下,加密装置也生成第2加密数据,所以能够使新的加密对象区域不会泄露。
[0041] 这里,也可以是,上述管理信息包含表示上述已使用区域的数据长度的信息。
[0042] 进而,也可以是,上述单位长度是能够加密的明文的数据长度;上述已使用区域的数据长度是能够加密的明文的数据长度之中的、已被用于加密的数据长度;在从上述单位长度减去上述已使用区域的数据长度而得到的值比上述新的加密对象数据的数据长度大的情况下,上述加密部判断为在上述加密对象数据被加密时应该使用的区域包含在上述未使用区域中。
[0043] 这里,也可以是,在从上述单位长度减去上述已使用区域的数据长度而得到的值比上述新的加密对象数据的数据长度小的情况下,上述加密部判断为在上述加密对象数据被加密时应该使用的区域超过上述未使用区域。
[0044] 根据该结构,加密装置能够使用加密的单位长度及已使用区域的数据容易地判断能否进行使用包含已经加密的数据的加密区域的加密。
[0045] 这里,也可以是,上述加密部具有:保持部,保持公钥加密的加密密钥;以及随机数的生成部,上述加密部使用由上述保持部保持的上述公钥及由上述生成部生成的上述随机数,生成基于上述单位长度决定的可变加密密钥;并将由该可变加密密钥构成的数据区域作为加密区域,追加上述新的加密对象数据。
[0046] 根据该结构,加密装置基于公钥生成与公钥不同的可变加密密钥,使用该可变加密密钥生成加密数据,所以能够更可靠地防止数据的泄露。
[0047] 这里,也可以是,上述加密部按每个上述加密的单位长度,使上述生成部生成新的随机数,并且生成不同的可变加密密钥。
[0048] 根据该结构,加密装置通过将上述可变加密密钥按每个上述加密的单位进行更新,由此,即使因上述可变加密密钥的泄露而造成一部分加密数据被解析,对于其他加密数据也能够防止数据的泄露,所以整体上能够更可靠地防止数据的泄露。
[0049] 这里,也可以是,上述加密部在将上述新的加密对象数据加密时,在上述新的加密对象数据使用基于上述加密的单位长度决定的加密区域而被第一次加密的情况下、而且在将上述新的加密对象数据加密时的已使用区域的数据大小比规定的最小大小还要小的情况下,附加规定的初始数据而生成上述加密数据,以使得将上述新的对象数据加密时的已使用区域的数据大小为上述最小大小以上。
[0050] 在将上述新的加密对象数据加密时,在上述新的对象数据为上述加密的单位长度的加密数据的最初的数据的情况下、而且在将上述新的对象数据加密时的数据大小比规定的最小大小还要小的情况下,假如将仅包含加密了上述新的加密对象数据的数据在内的加密数据输出到外部,则由于将上述新的对象数据加密时的数据大小较小,所以有可能被解析。
[0051] 所以,根据该结构,由于加密装置附加规定的初始数据而生成上述加密数据,以使得将上述新的对象数据加密时的数据大小成为上述最小大小以上,所以,即使将仅包含加密了上述新的加密对象数据的数据在内的加密数据输出到外部,将上述新的对象数据加密时的数据大小也能够确保规定的最小大小,所以即使被解析,也能够降低数据泄露的可能性。
[0052] 这里,也可以是,上述规定的初始数据是通过随机数生成的数值序列。
[0053] 根据该结构,由于加密装置作为初始数据而将随机数包含在加密数据中,所以能够使加密对象数据使用的部位的确定变得困难。
[0054] 这里,也可以是,该加密装置具有连接部,该连接部与外部装置连接:该外部装置具备:保持部,保持公钥加密的加密密钥;随机数的随机数生成部;以及密钥生成部,使用上述公钥及上述随机数生成可变加密密钥,上述加密部从上述外部装置输入上述可变加密密钥,使用由该输入的可变加密密钥构成的数据区域作为加密区域,生成上述加密数据。
[0055] 根据该结构,由于加密装置不需要有关可变加密密钥的生成的结构要素,所以能够在抑制该装置的制造成本的同时,可靠地取得可变加密密钥。
[0056] 这里,也可以是,该加密装置设有第2存储部;上述加密部具有:保持部,保持公钥加密的加密密钥;以及随机数的生成部,上述加密部使用上述公钥及上述随机数生成基于上述单位长度决定的可变加密密钥,将上述可变加密密钥保存到上述第2存储部中,并按每个上述加密的单位长度,从上述第2存储部读出不同的可变加密密钥,将由读出的可变加密密钥构成的数据区域作为加密区域,追加上述新的加密对象数据。
[0057] 根据该结构,由于加密装置保存有可变加密密钥,所以与在加密时生成的情况相比,能够使有关加密的处理时间变短。
[0058] 这里,也可以是,该加密装置具有与外部装置连接的连接部,该外部装置保持公钥加密的加密密钥;上述加密部具有随机数的随机数生成部;上述加密部使用从上述外部装置输入的公钥及上述随机数,生成基于上述单位长度的可变加密密钥,将由该可变加密密钥构成的数据区域作为加密区域,追加上述新的加密对象数据。
[0059] 根据该结构,由于加密装置不需要在制造时保持加密密钥,即能够在出厂后进行密钥设定,所以方便性进一步提高。
[0060] 这里,也可以是,该加密装置设有与外部装置连接的连接部,该外部装置对上述加密数据进行解密;上述控制部,在将上述新的加密对象数据加密时,在上述新的对象数据为上述加密的单位长度的加密数据的最初的数据的情况下、而且在将上述新的加密对象数据加密时的已使用区域的数据大小比规定的最小大小还要小的情况下,进行控制,以使得在基于将别的新的加密对象数据追加到上述加密数据而生成的加密数据的、已使用区域的数据大小达到上述最小大小之前,不将上述加密数据输出给上述外部装置。
[0061] 在将上述新的对象数据加密时的已使用区域的数据大小为规定的最小大小以下的情况下,假如将包含加密了上述新的加密对象数据的数据在内的加密数据输出到外部,则由于在加密中使用的数据大小较小,所以有可能被解析。
[0062] 所以,根据该结构,由于加密装置进行控制以使得在用于加密的数据大小达到最小大小之前不进行输出,所以无需担心在与外部的通信中该数据被第三者取得而被解析。
[0063] 这里,也可以是,在基于将别的新的加密对象数据追加到上述加密数据而生成的加密数据的、已使用区域的数据大小达到上述最小大小而将上述加密数据输出给上述外部装置的情况下,上述加密部生成第2加密数据,该第2加密数据以比上述加密的单位长度小的下一加密对象数据为最初被加密的数据。
[0064] 根据该结构,加密装置在将加密数据输出到外部的情况下,能够生成以下一加密对象数据为最初被加密的数据的第2加密数据。 由此,加密装置能够抑制将输出了一次的加密数据再次输出,所以能够防止第三者进行的对加密数据的解析。
[0065] 这里,也可以是,该加密装置设有与外部装置连接的连接部,该外部装置对上述加密数据进行解密;上述控制部将上述加密数据与上述管理信息一起输出给上述外部装置。
[0066] 根据该结构,加密装置将管理信息也与加密数据一起向外部装置输出,所以外部装置能够容易地确定加密数据中的被用于加密的区域。
[0067] 这里,也可以是,上述加密是NTRU加密、ELGamal加密、椭圆ELG加密中的某一种加密方式。
[0068] 根据该结构,加密装置通过使用NTRU加密、ElGamal加密、或椭圆ElGamal加密中的任一种加密方式,能够在尽量抑制使用数据的大小增加的同时,实现即使存储的数据被解析,对象数据也不会泄露。
[0069] 这里,也可以是,上述存储部通过防篡改技术而被保护。
[0070] 根据该结构,由于管理信息不会泄露给第三者,所以加密装置能够防止推测加密对象数据的攻击。
[0071] 此外,本发明是一种加密系统,包括加密装置和解密装置,该加密装置将比加密的单位长度小的加密对象数据加密,该解密装置对上述加密后的数据进行解密,其特征在于,上述加密装置具备:存储部,存储管理信息,该管理信息表示在基于上述加密的单位长度决定的加密区域中已经被用于加密的已使用区域;加密部,在将比上述加密的单位长度小的新的加密对象数据加密时,基于上述管理信息确认上述加密区域中的已使用区域,通过在上述加密区域中对于上述已使用区域以外的未使用区域追加上述新的加密对象数据,生成加密数据;以及控制部,如果生成上述加密数据,则更新上述管理信息,以使上述新加密的数据包含在上述已使用区域中,并将上述加密数据与上述更新后的管理信息一起输出给上述解密装置,上述解密装置具备解密处理部,该解密处理部将从上述加密装置输入的上述加密数据解密,并取得解密后的数据之中的、在基于从上述加密装置输入的上述管理信息所表示的已使用区域的区域中存在的解密对象数据。
[0072] 根据该结构,加密系统通过加密装置生成加密数据以将上述新的加密对象数据追加到未使用区域中。 由此,加密装置不需要每当将比加密的单位长度小的加密对象数据加密时生成上述单位长度的加密数据,所以整体上能够大幅地削减在加密中使用的数据大小。因而,加密系统能够尽量抑制加密后的数据的大小的增加。 此外,即使储存的数据被解析,由于被加密,所以也能够防止明文数据的泄露。
[0073] 1、实施方式1
[0074] 以下,参照附图,对本发明的实施方式1进行说明。
[0075] 1.1准备
[0076] 这里,对在本实施方式中使用的NTRU加密进行说明。
[0077] 以下,对NTRU加密的参数生成方法、密钥生成方法、加密及解密说明概要。另外,它们的详细情况记载在专利文献1中,所以这里简单地说明。
[0078] (1)NTRU加密的参数生成方法
[0079] NTRU加密具有非负整数的参数N、p、q、df、dg、d。 以下,对这些参数的意义进行说明。
[0080] (1-1)参数N
[0081] NTRU加密是通过多项式的运算进行加密和解密的公钥加密方式。 由NTRU加密处理的多项式的次数,由上述参数N决定。 由NTRU加密处理的多项式相对于上述参数N为N-1次以下的整数系数多项式,例如当N=5时,是X^4+X^3+1等的多项式。这里,“X^a”是指X的a次幂。 此外,在加密时或解密时使用的公钥h、私钥f、明文m、随机数r、密文c都表现为N-1次以下的多项式。 并且,多项式运算对于上述参数N,使用X^N=1的关系式来进行运算,以使运算结果总为N-1以下的多项式。 例如,在N=5的情况下,如果设多项式与多项式的乘积为“×”、整数与多项式的乘积(或整数与整数的乘积)为“·”,则根据X^5=1的关系,将多项式X^4+X^2+1与多项式X^3+X的乘积如下式那样运算,以使其总为N-1次以下的多项式。
[0082] (X^4+X^2+1)×(X^3+X)
[0083] =X^7+2·X^5+2·X^3+X
[0084] =X^2×1+2·1+2·X^3+X
[0085] =2·X^3+X^2+X+2
[0086] (1-2)参数p、q
[0087] 在NTRU加密中,使用作为2以上的整数的参数p、q。在NTRU加密中出现的多项式的系数取以p、q为模的余数。 这里,该参数p、q需要为互质。
[0088] (1-3)参数df、dg、d
[0089] 作为由NTRU加密处理的私钥的一部分的多项式f、当生成作为公钥的多项式h时与多项式f一起使用的多项式g、以及作为在将明文加密时使用的随机数的多项式r的选择方法,分别由参数df、dg、d决定。 首先,选择多项式f,以使df个系数是1、并且(df-1)个系数是-1、并且其他系数为0。 即,多项式f是N-1次以下的多项式,从0次(常数项)到N-1次有N个系数,进行选择,以使该N个系数中的df个系数是1、并且(df-1)个系数是-1、并且(N-2df+1)个系数为0。 并且,选择多项式g,以使dg个系数是1、并且dg个系数是-1、并且其他系数为0。 此外,选择作为随机数的多项式r,以使d个系数是1、并且d个系数是-1、并且其他系数为0。
[0090] 作为NTRU加密的参数的例子,可以考虑(N,p,q,df,dg,d)=(107,3,64,15,12,5),(N,p,q,df,dg,d)=(167,3,128,61,20,18),(N,p,q,df,dg,d)=(503,3,256,216,72,55)等。 假设以后使用的参数为(N,p,q,df,dg,d)=(167,3,128,61,20,18)。 但是,并不限定于此。 本参数对NTRU加密的安全性及性能(处理速度及各种数据的大小等)带来影响。 一般较大的参数安全性较高,但性能较差。
[0091] (2)NTRU加密的密钥生成方法
[0092] 在NTRU加密中,如上所述,使用参数df、dg随机地生成多项式f、多项式g。并且,计算满足Fp×f=1(mod p)的多项式Fp。 此外,使用满足Fq×f=1(mod q)的多项式Fq,通过
[0093] h=Fq×g(mod q)
[0094] 生成多项式h。 此时,两个值的组(f,Fp)为私钥数据(解密密钥),值h为公钥数据(加密密钥)。 这里,x=y(mod q),是将对多项式y的第i次的系数用模q除、以使得余数包含在0到q-1的范围中时的余数,作为多项式x的第i次的系数的运算(0≤i≤N-1)。 即,是将对y的各系数进行mod q运算以使得其包含在0到(q-1)的范围中的多项式作为多项式x的运算。 在用通常运算装置处理NTRU加密的情况下,各种数据(私钥数据及公钥数据)仅保持系数(即x^a的部分不知道)。 在进行加密处理时,只要使该系数彼此作用就足够。 由此,私钥数据f成为2·N位(将用来表示0、1、或-1的2位进行N次方),私钥数据Fp也在p是3的情况下为2·N位(将用来表示0、1、或-1的2位进行N次方)。 公钥数据h在参数q是128的情况下为7·N位(将用来表示0到127的7位进行N次方)。 另外,符号“·”如上述那样表示整数与整数的乘积。
[0095] (3)加密
[0096] 在NTRU加密的加密中,将作为明文的多项式m加密,计算(取得)作为密文的多项式c。首先,随机地生成上述那样的作为多项式的随机数r。 即,随机数r是N-1次以下的多项式,即是具有0次(常数项)到N-1次的N个系数的多项式。 此时,随机地选择(生成)多项式r,以使得N个系数中的d个系数是1、并且d个系数是-1、并且(N-2d)个系数为0。
[0097] 并且,使用生成的随机数r(多项式r)和公钥h,对系数为0、1或-1的N-1次以下的明文,通过“c=p·r×h+m(mod q)”,生成密文c。 另外,在专利文献1中,记载有关于从1组明文L_m中选择消息m(向多项式的变换)、对所选择的消息m(明文m)的密文的生成。
[0098] 该运算如上所述,是将对多项式(p·r×h+m)的各系数进行(mod q)运算以使其包含在0到(q-1)的范围中的多项式作为多项式c的运算。
[0099] (4)解密
[0100] 在NTRU加密的解密中,将作为密文的多项式c解密,计算(取得)作为解密文的多项式m′。 在解密中,首先,对密文c使用作为私钥的一部分的多项式f,通过“a=f×c(mod q*)”计算多项式a。
[0101] 这里,(mod q*)与上述(mod q)运算不同,是将对多项式(f×c)的第i次的系数用余数除、以使得其包含在<-q/2>+1到的范围中时的余数,作为多项式a的第i次的系数的运算(这里,i是0以上N-1以下的整数)。 即,在系数是从到q-1的情况下,减去q而进行调整以使其包含在上述范围中。 这里,表示在x以下的数中最大的数。 例如,<-1/2>=-1。
[0102] 接着,对多项式a,使用参数p,通过b=a(mod q),生成多项式b。
[0103] 并且,对多项式b,使用作为私钥的一部分的多项式Fp,通过m′=Fp×b(mod p*),计算(取得)解密文m′。
[0104] 另外,(mod p*)运算如上所述,是将对多项式(Fp×b)的第i次的系数用模p除、以使得其包含在<-p/2>+1到
的范围中时的余数,作为多项式m′的第i次的系数的运算(这里,i是0以上N-1以下的整数)。
[0105] (5)其他
[0106] 另外,关于该NTRU加密,上述参数都为p=3的参数,但除了该参数以外,还公开了为p=2的参数。
[0107] p=3的情况下的明文m是系数为0、1或-1的3值的多项式,而p=2的情况下的明文m是系数为0或1的2值的多项式。 并且,作为私钥数据的多项式f、多项式g、随机数r不论p=2还是p=3都是系数为0、1或-1的3值的多项式。
[0108] 此外,关于NTRU加密,还公开了通过生成公钥h以使密钥生成处理满足“h=p·Fq×g(mod q)”,从而用“c=r×h+m(mod q)”进行加密处理的方法。
[0109] 1.2数据加密系统的概要
[0110] 数据加密系统1如图1所示,由数据加密装置11、通信路径12、数据解密装置13构成。
[0111] 数据加密装置11具有计测被计测者的体温等的生物体信息的功能。计测数据每次以加密的状态储存到数据加密装置11的内部。
[0112] 数据加密装置11根据来自数据解密装置13的请求,将储存着的加密的数据向数据解密装置13发送。另外,数据加密装置11对于已经发送一次的加密数据不再次发送。
[0113] 数据解密装置13取得储存在数据加密装置11的内部中的1个以上的加密的数据。 数据解密装置13还将所取得的1个以上的加密的数据用解密密钥进行解密,计算(取得)明文的计测数据。
[0114] 通信路径12是能够在数据加密装置11与数据解密装置13之间收发各种数据的通信路径。 例如是因特网或电话线路、专用线路、Bluetooth(蓝牙)或特定省电型无线等的近距离无线、USB线缆等。
[0115] 作为数据加密系统1的具体的使用例,可以考虑以下这样的结构。 数据加密装置11被从医院提供给作为患者的被计测者。被计测者按照医院的指示,在适当的定时将数据加密装置11佩戴在自身的身体上,进行生物体信息的计测。医院在某个定时使用数据解密装置13从数据加密装置11读取加密计测数据,还使用解密密钥将加密计测数据解密,得到明文的计测数据。 医院基于得到的计测数据,进行作为患者的被计测者的诊断等。
[0116] 1.3数据加密装置11的结构
[0117] 接着,对数据加密装置11的结构进行说明。
[0118] 数据加密装置11如图2所示,由参数保存部110、传感器部111、可变换信息保存部112、变换可否判断部113、随机数生成部114、加密密钥保存部115、加密处理部116及发送处理部117构成。
[0119] (1)参数保存部110
[0120] 参数保存部110预先存储有NTRU加密的各参数(N,p,q,df,dg,d)。
[0121] (2)传感器部111
[0122] 传感器部111从被计测者计测测量数据D,将其与计数器信息CTR连结,生成作为加密的对象的对象数据TD。
[0123] 传感器部111将所生成的对象数据TD输出给变换可否判断部113。
[0124] 这里,测量数据D例如是体温及血压、血糖值、脉搏数、心率、步数、运动量等。 具体而言,在体温的情况下,测量数据D是由十位、个位、小数点后一位分别是1字节的合计3字节构成的数据。
[0125] 此外,计数器信息CTR是从0起递增的值,为了掌握计测出的对象数据TD的顺序而使用,是由个位、小数点后一位分别是1字节的合计3字节构成的数据。 通过计数器信息CTR,传感器部111最大能够计数到99。
[0126] 另外,传感器部111也可以不是定期地计测、而是在被给出了某种触发时进行计测。 例如,也可以是数据加密装置11具有按钮,在按钮被按下的情况下进行计测。
[0127] (3)可变换信息保存部112
[0128] 可变换信息保存部112如图3所示,具有用来保持一个以上的由密文识别符CTID、总大小TSIZE、已变换大小USIZE、发送可否标志UFLAG的组构成的可变换信息的可变换信息表T100。
[0129] 密文识别符CTID是确定保存在后述的密文保存部151中的密文数据CTDATA的识别符。
[0130] 总大小TSIZE对于密文识别符CTID确定的密文数据CTDATA表示在初始阶段能够变换的大小的合计。 另外,总大小TSIZE的单位是位(比特)。 例如,如果TSIZE是167,则意味着在初始状态的密文数据CTDATA中、能够变换最大167位的数据。
[0131] 已变换大小USIZE表示对由密文保存部151保持的、密文识别符CTID确定的密文数据CTDATA已经进行了变换的数据的大小。 已变换大小USIZE的单位是位。 例如,如果USIZE是150,则意味着对于由密文保存部151保持的密文数据CTDATA已经变换了150位的数据。
[0132] 发送可否标志UFLAG是表示由密文保存部151保持的、密文识别符CTID确定的密文数据CTDATA是否已经被发送给数据解密装置13的标志,可以取TRUE和FALSE。TRUE表示还没有被发送,FALSE表示已经被发送。 这里,在发送可否标志是TRUE的情况下,表示因为对应于该发送可否标志的密文数据还没有被发送给数据解密装置13、所以能够变换,在发送可否标志是FALSE的情况下,表示因为对应于该发送可否标志的密文数据已经被发送给数据解密装置13、所以不能变换。
[0133] 通过可变换信息保存部112使用用可变换信息表T100保持的信息,数据加密装置11将相同的密文数据复制两个以上,并进行控制,以便不对其分别用不同的对象数据进行变换。 其理由是因为,如果窃听输出的第三者万一知道了两个密文数据的初始密文数据是相同的,则通过取这两个密文数据的差分(算术减法运算),可以确定在变换中使用的对象数据的一部分信息(差分)。为了实现这一点,使用这里的已变换大小USIZE,以便控制为不将某个密文数据CTDATA的相同部位变换两次以上。 此外,使用发送可否标志UFLAG,以便控制为对已向外部输出了一次的密文数据CTDATA,不能再对该密文数据CTDATA进行变换。 其理由是因为,在存在在向外部输出的中途进行窃听的第三者的情况下,能够确定在变换中使用的对象数据。 具体而言,通过取第一次输出的密文数据CTDATA与第二次输出的密文数据CTDATA的差分(算术减法运算),能够容易地得到在第一次输出以后变换的对象数据。
[0134] 在本实施方式中,总大小、已变换大小都以能够加密的数据(可变换的数据)的单位长度(167位)为基准。如上所述,总大小(167位)表示可加密的数据的单位长度,已变换大小表示其中的已被用于变换的已利用的区域(数据长度)。
[0135] 另外,总大小、已变换大小也可以以密文数据的数据长度为基准。 在此情况下,总大小、已变换大小都为以可加密的数据的单位长度(167位)为基准的情况下的7倍的值。
[0136] (4)变换可否判断部113
[0137] 变换可否判断部113从传感器部111接受对象数据TD。
[0138] 变换可否判断部113取得作为所接受到的对象数据TD的数据大小的大小信息SIZE。 取得大小信息的方法有根据对象数据TD本身计算的方法。 另外,在大小信息SIZE是固定长度的情况下,不需要计算而使用预先设定的值。此外,也可以从传感器部111取得大小信息SIZE。
[0139] 接着,变换可否判断部113对可变换信息保存部112进行访问,按密文识别符CTID由小到大的顺序,确认是否存在发送可否标志UFLAG是TRUE、并且从总大小TSIZE减去已变换大小USIZE后的值比大小信息SIZE大的密文识别符CTID。
[0140] 在即便存在一个的情况下,变换可否判断部113也将与对象数据TD对应的密文识别符CTID向变换处理部152输出。
[0141] 在不存在的情况下,变换可否判断部113将对象数据TD和密文生成委托信号REQCT向密文生成部150输出。
[0142] 另外,大小信息SIZE也可以每次变化。
[0143] (5)随机数生成部114
[0144] 随机数生成部114根据来自后述的密文生成部150的请求,生成随机数,将该随机数向密文生成部150输出。
[0145] 具体而言,随机数生成部114如果从密文生成部150接受到请求随机数生成的随机数生成请求信息,则分别基于保存在参数保存部110中的参数N、df、dg、d,随机地生成作为多项式的随机数r。
[0146] 这里,随机数r是N-1次以下的多项式、即具有0次(常数项)到N-1次的N个系数的多项式。 此时,随机数生成部114随机地选择(生成)随机数r(多项式r),以使N个系数中的d个系数是1、并且d个系数是-1、并且(N-2d)个系数为0。
[0147] (6)加密密钥保存部115
[0148] 加密密钥保存部115保持公钥加密的加密密钥数据EK。
[0149] 具体而言,加密密钥EK是NTRU加密的公钥h。
[0150] (7)加密处理部116
[0151] 加密处理部116如图2所示,由密文生成部150、密文保存部151及变换处理部152构成。
[0152] 加密处理部116如果从变换可否判断部113接受到由对象数据TD和密文生成委托信号REQCT构成的组、或由对象数据TD和密文识别符CTID构成的组,则进行对接受到的对象数据TD的加密。
[0153] (7-1)密文生成部150
[0154] 密文生成部150如果从变换可否判断部113接受到密文生成委托信号REQCT,则从加密密钥保存部115取得公钥h。
[0155] 密文生成部150使用公钥h,生成NTRU加密的密文数据CTDATA。
[0156] 以下对生成密文数据CTDATA的方法进行叙述。 首先,密文生成部150将随机数生成请求信息向随机数生成部114输出。然后,密文生成部150从随机数生成部114接受随机数r。 接着,密文生成部150使用接受到的随机数r、由加密密钥保存部115保持着的公钥h(加密密钥数据EK)、和由参数保存部110保持着的参数p、q,计算(生成)密文数据CTDATA=p·r×h(mod q)。
[0157] 该运算如上所述,是将对多项式(p·r×h)的各系数进行mod q运算以使其包含在0到(q-1)的范围中的多项式、设为多项式c(=CTDATA)的运算。
[0158] 密文生成部150在密文保存部151中生成还没有使用的密文识别符CTID。 生成密文识别符CTID的方法既可以使用计数器,也可以设为对所使用的密文识别符加上1后的值。
[0159] 密文生成部150将所生成的密文识别符CTID与密文数据CTDATA的组保存到密文保存部151中。 进而,将总大小TSIZE设为167、将已变换大小SIZE设为0、将发送可否标志UFLAG设为TRUE,与前面生成的密文识别符CTID建立对应,保存到可变换信息保存部112中。
[0160] 密文生成部150将所生成的密文识别符CTID向变换处理部152输出。
[0161] 另外,对可变换信息保存部112作为初始值追加的信息,取决于生成由加密密钥保存部115保存着的加密密钥数据EK时的参数,所以并不限于此。
[0162] 这里,与以往的加密方法不同的点如下。
[0163] 以往的加密方法通过“p·r×h+m(mod q)”进行对明文m(多项式m)的加密,但这里,密文生成部150仅进行“p·r×h”的运算,不进行与明文m的相加(以往的加密的计算式的最后的“+m”的部分,与消息的融合处理)。 如果与专利文献1比较,则在密文生成部150中,不由密文生成部150从1组的明文L_m中选择消息m(向多项式的变换)、以及在计算密文数据时不进行与m的相加(计算式的最后的“+m”的部分,与消息的融合处理),是与专利文献1不同之处。
[0164] 即,由密文生成部150生成的密文数据CTDATA是明文m即将被加密之前的状态的数据。
[0165] NTRU加密的明文的单位长度是N位,对应于它的密文大小是7·N位(参数q为128的情况)。由此,对于1个密文数据CTDATA,能够由后面说明的变换处理部118变换的最大大小(即能够嵌入的消息的合计大小)为7·N位(参数q为128的情况)。
[0166] 另外,本发明的可变加密密钥对应于明文m即将被加密之前的状态的密文数据CTDATA。
[0167] (7-2)密文保存部151
[0168] 密文保存部151如图4所示,保持一个以上密文识别符CTID与密文数据CTDATA的组。
[0169] 这里,密文识别符CTID是与保存在可变换信息保存部112中的值对应的。 密文数据CTDATA是用NTRU加密的公钥数据加密的密文数据。
[0170] (7-3)变换处理部152
[0171] 变换处理部152取得作为从变换可否判断部113接受到的对象数据TD的数据大小的大小信息SIZE。 取得大小信息的方法与变换可否判断部113相同,所以省略。
[0172] 变换处理部152根据对象数据TD计算作为矢量化的多项式的消息m(系数为m1、 ……、m(SIZE))。 在NTRU加密的情况下,当p=3时,消息m是系数为0、1或-1的3值的多项式,而在p=2的情况下,消息m是系数为0或1的2值的多项式。
关于向多项式的变换方法,可以考虑将对象数据TD二值化(binarizing)、分别作为多项式的系数的方法等。
[0173] 变换处理部152如果从变换可否判断部113或密文生成部150接受到密文识别符CTID,则对密文保存部151进行访问,取得对应于所获取的密文识别符CTID的密文数据CTDATA。 并且,变换处理部152对可变换信息保存部112进行访问,取得对应于密文识别符CTID的已变换大小USIZE。
[0174] 变换处理部152基于所取得的已变换大小USIZE,判断将对象数据TD变换到所取得的密文数据CTDATA的哪个部分。具体而言,在设密文数据CTDATA的多项式的系数为e_1(多项式e的0次的系数)、e_2(多项式e的1次的系数)、 ……、e_N(多项式e的N-1次的系数)的情况下,从(USIZE)次的系数到(USIZE+SIZE-1)次的系数为变换对象。 换言之,e_(USIZE+1)、e_(USIZE+2)、 ……、e_(USIZE+SIZE)为变换对象。 该处理与在专利文献1的35页(1.3符号化(编码))中记载的处理同样,通过多项式的加法“+”进行。 将使对象数据TD成为了多项式的消息m加到密文数据CTDATA的特定的一部分中。 具体而言,对e_(USIZE+1)加上m_1(多项式m的0次的系数)、对e_(USIZE+2)加上m_2(多项式m的1次的系数)、 ……、对e_(USIZE+SIZE)加上m_(SIZE)(多项式m的SIZE-1次的系数)。 另外,此时实施(mod q)运算,以使各系数包含在0到(q-1)的范围内。
[0175] 接着,将变换后的密文数据CTDATA盖写(overwrite)到密文保存部151的相同的位置。 最后,对可变换信息保存部112的、对应于密文识别符CTID的已变换大小USIZE加上大小信息SIZE。
[0176] (具体例)
[0177] 使用图5,对将明文m#1及m#2加密的情况进行说明。另外,明文m#1及m#2为s-1次的多项式。
[0178] 图5(a)表示已变换大小USIZE的值的变化。 这里的加密单位长度是总大小TSIZE(=167)。
[0179] 首先,在一次也没有进行加密的情况下,加密单位长度D11中的已变换大小USIZE是值“0”。 在此状态下,如果将明文m#1(SIZE=s)加密,则总大小TSIZE中的SIZE的量被用于加密,所以为USIZE=s(参照加密单位长度D11)。 接着,如果将明文m#2(SIZE=s)加密,则由于在加密中仅使用SIZE的量,所以对明文m#1的加密时的USIZE再加上值s,成为USIZE=2s(参照加密单位长度D12)。
[0180] 图5(b)表示密文数据的变化。
[0181] 首先,密文生成部150通过“p·r×h”运算,生成作为明文m即将被加密之前的状态的数据的、密文数据D100,保存到密文保存部151中。 此时,对应于由可变换信息保存部112保存的密文数据D100的已变换大小USIZE是0。 又及,如上所述,密文数据D100的数据长度是167位的7倍、即1169位。
[0182] 变换处理部152在将明文m#1加密时,从密文保存部151取得加密数据D100,从可变换信息保存部112取得对应于密文数据D100的已变换大小。
[0183] 由于所取得的已变换大小USIZE的值是0,所以变换处理部152对e_1、e_2、 ……、e_S分别加上明文m#1的多项式的系数m_1(0次的系数)、m_2(1次的系数)、 ……、m_s(s-1次的系数),生成将明文m#1加密后的密文数据D101,将保存在密文保存部151中的密文数据D100更新为密文数据D101。 进而,变换处理部152如图5(a)所示,将对应于由可变换信息保存部112保存的加密数据D101的已变换大小USIZE从0更新为s。 这在以可加密的数据(可变换的数据)的单位长度(167位)为基准的情况下意味着利用了单位长度(167位)中的s位的量。 另外,在以密文数据D100的数据长度(1169位)为基准的情况下,将已变换大小USIZE从0更新为7·s。
[0184] 变换处理部152在将明文m#2加密时,从密文保存部151取得密文数据D101,从可变换信息保存部112取得对应于密文数据D101的已变换大小。
[0185] 由于所取得的已变换大小USIZE的值是s,所以变换处理部152对e_(s+1)、e_(s+2)、……、e_(s+s)分别加上明文m#2的多项式的系数m′_1(0次的系数)、m′_2(1次的系数)、 ……、m′_s(s-1次的系数),生成将明文m#2加密后的密文数据D102,将保存在密文保存部151中的密文数据D101更新为密文数据D102。 进而,变换处理部152将对应于由可变换信息保存部112保存的加密数据D102的已变换大小USIZE从s更新为2s。这在以可加密的数据的单位长度(167位)为基准的情况下意味着利用了单位长度(167位)中的2s位的量。 另外,在以密文数据D100的数据长度(1169位)为基准的情况下,将已变换大小USIZE从0更新为7·2s。
[0186] 接着,利用图6,使用一例说明对明文m#1及m#2的运算。
[0187] 密文生成部150如图6(a)所示,通过由p·r×h(mod q)计算
[0188] CTDATA=p·r×h(mod q)
[0189] =e_1+e_2×X+…+e_s×X^(s-1)+e_(s+1
[0190] )×X^s
[0191] +e_(s+2)×X^(s+1)+…+e_2s×X^(2s)
[0192] +…·+e_N××^(N-1)
[0193] 从而生成密文数据D100。
[0194] 变换处理部152在将明文m#1加密时,如图6(b)所示,对明文m#1的多项式乘以X^(USIZE),加到密文数据D100中。
[0195] 即, 如 图 6(b) 所 示, 通 过 对 密 文 数 据 (CTDATA)D100 计 算CTDATA+m#1×X^(USIZE),能够对e_1、e_2、 ……、e_s分别加上明文m#1的多项式的系数m_1(0次的系数)、m_2(1次的系数)、 ……、m_s(s-1次的系数)。
[0196] 进而,变换处理部152在将明文m#2加密时,如图6(c)所示,对明文m#2的多项式乘以X^(USIZE),加到密文数据D101中。
[0197] 即, 如 图 6(c) 所 示, 通 过 对 密 文 数 据 (CTDATA)D101 计 算CTDATA+m#2×X^(USIZE),能够对e_(s+1)、e_(s+2)、 ……、e_(s+s)分别加上明文m#2的多项式的系数m′_1(0次的系数)、m′_2(1次的系数)、……、m′_s(s-1次的系数),生成密文数据D102。
[0198] 这里,如图6(b)、图6(c)所示,可知在对明文m#2使用密文数据D101进行加密(变换)时,对于在加密(变换)中使用了m#1的密文数据D101的0次到s-1次的系数不带来任何影响而加上明文m#2的多项式的系数m′_1、m′_2、 ……、m′_s。
[0199] 这里的处理的要点是为了不对密文数据CTDATA的相同的位位置加上两次以上对象数据而进行的,只要是实现这一点的方法,也可以是其他方法。 在由通常运算装置处理NTRU加密的情况下,使各种数据(私钥数据及公钥数据)仅保持系数,只要在加密处理时仅将该系数彼此用于计算就可以。
[0200] (8)发送处理部117
[0201] 发送处理部117根据来自数据解密装置13的请求,进行经由通信路径12将由密文保存部151保持的密文数据CTDATA发送给数据解密装置13的处理。
[0202] 首先,如果从数据解密装置13接受到表示数据的请求的发送请求信息,则对可变换信息保存部112进行访问,确认是否存在发送可否标志UFLAG是TRUE、已变换大小USIZE为预先给出的大小以上的密文识别符CTID。 预先给出的大小例如是80。 这是为了防止在发送仅变换了一定位以下的密文的情况下、可能由非法的第三者解析的情况发生。 该解析方法如下。
[0203] (步骤1)对公钥h计算满足h×inv_h=1(mod q)的inv_h。
[0204] (步骤2)假定为包括作为已变换的部位的明文数据候补值m′。 作为已变换的部位为预想值,对于其他部位设为0。
[0205] (步骤3)对密文数据CTDATA计算作为多项式的第一中间值CV1=CTDATA-m′。
[0206] (步骤4)对第一中间值CV1,计算作为多项式的第二中间值CV2=p·CV1×inv_h。
[0207] (步骤5)对作为多项式的第二中间值CV2,确认是否各系数生成随机数r时的条件完全一致(N个系数中的d个系数是1、并且d个系数是-1、并且(N-2d)个系数为0)。如果一致,则将在(步骤2)中假定的明文数据候补值m′作为正确的明文数据m输出。如果不一致,则将在(步骤2)中假定的明文数据候补值m′改变为别的值,再次重复(步骤3)~(步骤5)。
[0208] 这里,预先变换某一定位以上的理由是为了使得通过增加在(步骤2)中应假定的样式(pattem)数、不可能实现尝试所有组合(総当り,trying all thecombinations)。
[0209] 假如在不存在这样的密文识别符CTID的情况下,判断为没有应对数据解密装置发送的信息,回答该消息。 另一方面,假如在存在这样的密文识别符CTID的情况下,将对应于该密文识别符CTID的发送可否标志UFLAG设定为FALSE,从密文保存部151取得对应于密文识别符CTID的密文数据CTDATA,将该密文数据CTDATA和已变换大小USIZE经由通信路径12向数据解密装置13发送。
[0210] 发送处理部117将对应于与在发送处理中发送了的一个以上的密文数据建立了对应的识别符CTID的、发送可否标志UFLAG,设定为FALSE。
[0211] 1.4数据加密装置11的动作
[0212] 这里,对数据加密装置11的动作的一例进行说明。以下,分为测量时的动作及数据发送时的动作进行说明。
[0213] (1)测量时的动作
[0214] 以下,参照图7的流程图,对测量时的动作进行说明。
[0215] 传感器部111从被计测者计测生物体信息BD,将连结了计数器信息CTR的对象数据TD输出给变换可否判断部113(步骤S100)。
[0216] 变换可否判断部113从传感器部111接受对象数据TD。 取得作为对象数据TD的数据大小的大小信息SIZE。 并且,对可变换信息保存部112进行访问,按密文识别符CTID由小到大的顺序,判断是否存在与发送可否标志UFLAG是TRUE、并且从总大小TSIZE减去已变换大小USIZE后的值比大小信息SIZE大的密文数据CTDATA相对应的密文识别符CTID(步骤S105)。
[0217] 在判断为存在的情况下(步骤S105中的“是”),变换可否判断部113对与该密文识别符CTID对应的密文数据CTDATA,判断为能够变换所接受到的对象数据,变换可否判断部113将密文识别符CTID和对象数据TD向变换处理部152输出。 此时,测量处理向步骤S115转移。
[0218] 在判断为不存在的情况下(步骤S105中的“否”),变换可否判断部113将密文生成委托信号REQCT和对象数据TD向加密处理部116输出。
[0219] 加密处理部116的密文生成部150如果从变换可否判断部113接受到密文生成委托信号REQCT,则向随机数生成部114输出随机数生成请求信息。 然后,密文生成部150从随机数生成部114接受随机数r。 并且,密文生成部150从加密密钥保存部115取得公钥h。 密文生成部150使用所取得的公钥h、随机数r、以及由参数保存部110保持着的参数p、q,生成密文数据CTDATA(=p·r+h(mod q))。 密文生成部150接着生成在密文保存部151中还没有被使用的密文识别符CTID,将密文识别符CTID与密文数据CTDATA的组保存到密文保存部151中。 进而,分别将总大小TSIZE及发送可否标志UFLAG设定为初始值(TRUE)、将已变换大小USIZE设定为初始值(0),与前面生成的密文识别符CTID建立对应,追加到可变换信息保存部112中。 最后,将密文识别符CTID和对象数据TD向变换处理部152输出(步骤S110)。
[0220] 变换处理部152从变换可否判断部113或密文生成部150接受密文识别符CTID,还从变换可否判断部113接受对象数据TD。变换处理部152使用与接受到的密文识别符CTID对应的密文数据,将接受到的对象数据TD加密,即,将对应于接受到的密文识别符CTID的密文数据变换为嵌入了接受到的对象数据TD的密文数据(步骤S115)。
[0221] 变换处理部152通过对与由可变换信息保存部112保持的密文识别符CTID相对应的已变换大小USIZE加上大小信息SIZE,将与作为变换对象的密文数据相对应的可变换信息更新(步骤S120)。
[0222] <变换处理>
[0223] 这里,使用图8所示的流程图,对在步骤S115中进行的变换处理进行说明。
[0224] 变换处理部152从变换可否判断部113或密文生成部150接受密文识别符CTID,还从变换可否判断部113接受对象数据TD(步骤S200)。
[0225] 变换处理部152取得作为接受到的对象数据TD的数据大小的大小信息SIZE(步骤S205)。
[0226] 变换处理部152对密文保存部151进行访问,取得对应于密文识别符CTID的密文数据CTDATA(步骤S210)。
[0227] 变换处理部152对可变换信息保存部112进行访问,取得对应于密文识别符CTID的已变换大小USIZE(步骤S215)。
[0228] 变换处理部152基于所取得的已变换大小USIZE,决定将对象数据TD变换到所取得的密文数据CTDATA的哪个部分,即,决定变换对象的系数e_(USIZE+1)、e_(USIZE+2)、 ……、e_(USIZE+SIZE)(步骤S220)。
[0229] 变换处理部152对变换对象的系数e_(USIZE+1)、e_(USIZE+2)、 ……、e_(USIZE+SIZE)分别加上对象数据TD的各系数m_1、m_2、 ……、m_SIZE,生成嵌入了对象数据TD的密文数据CTDATA(步骤S225)。
[0230] <步骤S105的具体例>
[0231] 这里,将步骤S105中的判断时的具体例表示在图9(a)、图9(b)中。
[0232] 图9(a)表示密文数据D200中的已变换大小USIZE与对象数据TD的大小SIZE之和(USIZE+SIZE)是加密单位长度D200的总大小TSIZE以下的情况。 在此情况下,在步骤S105中,判断为使用已有的密文数据能够进行对象数据TD的变换(加密),决定为存在与其对应的密文识别符CTID。
[0233] 图9(b)表示密文数据D200中的已变换大小USIZE与对象数据TD的大小SIZE之和(USIZE+SIZE)比加密单位长度D201的总大小TSIZE大的情况。 在此情况下,在步骤S105中,判断不能进行使用已有的密文数据的对象数据TD的变换(加密),对能够进行对象数据TD的变换(加密)的其他密文数据进行同样的处理。
[0234] 另外,这里基于以可加密的数据(可变换的数据)的单位长度(167位)为基准的情况进行说明。如上所述,在以密文数据D100的数据长度(1169位)为基准的情况下,只要使总大小、已变换大小及对象数据TD的大小分别为7倍而进行上述判断就可以。
[0235] (2)数据发送时的动作
[0236] 以下,参照图10的流程图,对数据发送时的动作进行说明。
[0237] 发送处理部117接受来自数据解密装置13的发送请求信息(步骤S300)。
[0238] 发送处理部117对可变换信息保存部112进行访问,确认是否存在发送可否标志UFLAG是TRUE、已变换大小USIZE为一定以上的密文识别符CTID(步骤S305)。
[0239] 在判断为不存在的情况下(步骤S305中的“否”),发送处理部117回答没有应对数据解密装置13发送的信息而结束。
[0240] 在判断为存在的情况下(步骤S305中的“是”),发送处理部117从密文保存部151取得分别对应于已变换大小USIZE为一定以上的一个以上的密文识别符CTID的密文数据CTDATA(步骤S310)。
[0241] 发送处理部117从可变换信息保存部112取得与所取得的密文识别符CTID分别对应的已变换大小USIZE(步骤S315)。
[0242] 发送处理部117分别对所取得的密文数据CTDATA,将该密文数据CTDATA和与其对应的已变换大小USIZE建立对应,经由通信路径12向数据解密装置13发送(步骤S320)。
[0243] 发送处理部117将与在发送处理中已发送的一个以上的密文识别符CTID对应的发送可否标志UFLAG设定为FALSE(步骤S315)。
[0244] 1.5数据解密装置13的结构
[0245] 接着,对数据解密装置13的结构进行说明。
[0246] 数据解密装置13如图11所示,由请求受理部200、收发处理部201、解密密钥保存部202、解密处理部203、解密文保存部204及显示部205构成。
[0247] (1)请求受理部200
[0248] 请求受理部200如果通过用户操作从用户受理了测量数据D的收集的指示,则将发送请求信息向收发处理部201输出。
[0249] (2)收发处理部201
[0250] 收发处理部201如果从请求受理部200受理发送请求信息,则将所受理的发送请求信息经由通信路径12向数据加密装置11发送。
[0251] 收发处理部201从数据加密装置11经由通信路径12接收1个以上的密文数据CTDATA、和与上述1个以上的密文数据CTDATA分别对应的已变换大小USIZE。 收发处理部201将接收到的密文数据CTDATA和已变换大小USIZE向解密处理部203输出。
[0252] 收发处理部201如果从数据加密装置11接受到表示没有应发送的信息之意的信息,则将所接受到的信息向显示部205输出。
[0253] (3)解密密钥保存部202
[0254] 解密密钥保存部202保持有公钥加密的解密密钥数据DK。
[0255] 这里,解密密钥保存部202保持的解密密钥数据DK是与保存在加密密钥保存部115中的公钥h对应的NTRU解密的私钥(f,Fp)。 NTRU加密的私钥数据的生成方法由于已在前面说明,所以省略。
[0256] (4)解密处理部203
[0257] 解密处理部203进行公钥加密的解密处理。
[0258] 解密处理部203预先存储有由测量数据D和计数器信息CTR构成的数据的数据大小的值。另外,在本实施方式中,由测量数据D和计数器信息CTR构成的数据的数据大小是5字节。
[0259] 解密处理部203如果从收发处理部201接受到1个以上的密文数据CTDATA、和与上述1个以上的密文数据CTDATA分别对应的已变换大小USIZE,则访问解密密钥保存部202,作为解密密钥数据DK而取得NTRU加密的私钥(f,Fp)。
[0260] 解密处理部203按照NTRU加密的解密处理,使用所取得的私钥(f,Fp),对接受到的1个以上的加密数据CTDATA分别实施解密处理。
[0261] 另外,关于加密数据的解密,已在上述1.1(4)中说明,所以这里简单地说明。另外,关于解密的详细情况,记载在专利文献1的35~36页(1.4復号(解密))中。
另外,关于其动作原理,也同样记载在专利文献1的36页(1.5なぜ復号が機能するのか(为什么解密起作用))中。
[0262]
[0263] 解密处理部203将作为多项式的密文数据DTDATA解密,计算(取得)同样是多项式的解密文数据DTDATA。
[0264] 解密处理部203预先存储有NTRU加密中的各参数(N,p,q,df,dg,d)。
[0265] 解密处理部203对密文数据DTDATA使用作为私钥(解密密钥)的一部分的多项式f,通过a=f×c(mod q*),计算多项式a。
[0266] 接着,解密处理部203对多项式a使用参数p,通过b=a(mod p),生成多项式b。
[0267] 并且,解密处理部203对多项式b,使用作为私钥(解密密钥)的一部分的多项式Fp,通过x=Fp×b(mod p*),计算(取得)临时解密文数据x。
[0268] 解密处理部203从计算出的临时解密文数据x中的最初的元素仅取出已变换大小USIZE的量的元素x′(以下称作消息x′)。解密处理部203具体而言仅将(x_1、……、x_(USIZE))取出,将(x_(USIZE+1)、 ……、x_N)丢弃。
[0269] 解密处理部203从作为由系数为x_1、 ……、x_(USIZE)构成的多项式的消息x′,取得由测量数据D和与其对应的计数器信息CTR构成的1个以上的解密文数据DTDATA,将所取得的1个以上的解密文数据DTDATA向解密文保存部204保存。 具体而言,解密处理部203使用预先存储的值“5”,从消息x′的开头的系数(0次的系数)起每5个系数进行分割,取得1个以上的解密文数据DTDATA。
[0270] (5)解密文保存部204
[0271] 解密文保存部204如图12所示,保持多个解密文数据DTDATA。
[0272] (6)显示部205
[0273] 显示部205将保存在解密文保存部204中的解密文数据DTDATA加以显示。 基于包含在解密文数据中的计数器信息,将对应的测量数据D的数值的推移图表化而进行显示。
[0274] 此外,显示部205如果从收发处理部201接受到表示没有应发送的信息之意的信息,则显示表示从数据加密装置11接收到的密文数据是0件之意的消息。
[0275] 1.6数据解密装置13的动作
[0276] 这里,对数据解密装置13的动作的一例进行说明。这里,对数据接收时的动作进行说明。
[0277] (1)数据接收时的动作
[0278] 以下,参照图13的流程图,对数据接收时的动作进行说明。
[0279] 如果请求受理部200从用户受理了测量数据D的收集的指示,则收发处理部201将发送请求信息经由通信路径12向数据加密装置11发送(步骤S400)。
[0280] 收发处理部201从数据加密装置11经由通信路径12接收1个以上的密文数据CTDATA和与上述1个以上的密文数据CTDATA分别对应的已变换大小USIZE,或者接收表示没有应发送信息之意的信息(步骤S405)。
[0281] 收发处理部201判断是否接收到了1个以上的密文数据CTDATA(步骤S410)。
[0282] 在判断为接收到了1个以上的密文数据CTDATA的情况下(步骤S410中的“是”),收发处理部201将接收到的1个以上的密文数据和与上述1个以上的密文数据CTDATA分别对应的已变换大小USIZE向解密处理部203输出。
[0283] 解密处理部203如果从收发处理部201接受到1个以上的密文数据、和与上述1个以上的密文数据CTDATA分别对应的已变换大小USIZE,则对接受到的1个以上的加密数据CTDATA分别实施解密处理(步骤S415)。
[0284] 显示部205将保存在解密文保存部204中的解密文数据DTDATA加以显示(步骤S420)。
[0285] 在没有接收到1个以上的密文数据CTDATA、即判断为接收到表示没有应发送的信息之意的信息的情况下(步骤S410中的“否”),收发处理部201将接收到的信息向显示部205输出。 显示部205如果从收发处理部201接受到表示没有应发送的信息之意的信息,则显示表示从数据加密装置11接收到的密文数据是0件之意的消息,结束处理。
[0286] <解密处理>
[0287] 这里,使用图14所示的流程图,对在步骤S415中进行的解密处理进行说明。
[0288] 解密处理部203访问解密密钥保存部202,取得解密密钥数据DK(步骤S500)。
[0289] 解密处理部203取得接受到的1个以上的密文数据CTDATA中的1个未解密的密文数据CTDATA(步骤S505)。
[0290] 解密处理部203将所取得的密文数据CTDATA解密,取得临时解密文x(步骤S510)。
[0291] 解密处理部203使用对应于所取得的密文数据CTDATA的已变换大小USIZE,取得消息x′(步骤S515)。
[0292] 解密处理部203从所取得的消息x′中取得由测量数据D和计数器信息CTR构成的1个以上的解密文数据(步骤S520)。
[0293] 解密处理部203将所取得的1个以上的解密文数据DTDATA分别保存到解密文保存部204(步骤S525)。
[0294] 解密处理部203判断是否存在未解密的密文数据CTDATA(步骤S530)。
[0295] 在判断为存在的情况下(步骤S530中的“是”),解密处理部203返回步骤S505,继续处理。
[0296] 在判断为不存在的情况下(步骤S530中的“否”),解密处理部203结束解密处理。
[0297] 1.7变形例
[0298] 在上文中说明的实施方式是本发明的实施方式的一例,本发明并不受该实施方式的任何限定,在不脱离其主旨的范围中能够以主要的形态实施。 以下这样的情况也包含在本发明中。
[0299] (1)由密文生成部150生成的密文数据是即将进行与NTRU加密的加密处理的明文的算术加法运算(融合处理)之前的值,但并不限于此。
[0300] 例如,也可以使用加密密钥(公钥h)将预先给出的固定值(全0)作为明文进行加密,将该加密后的值作为密文数据。 这是因为,在NTRU加密中,密文数据通过将明文数据进行(多项式系数彼此的)加法运算而生成,但即使加上全0,结果也不会变化。通过这样,能够沿用已经有的NTRU加密装置等而实施本发明。
[0301] (2)密文生成部150通过计算而生成密文数据,但并不限定于此。
[0302] 例如,也可以从外部经由通信路径接收新的密文数据。 此外,也可以取得预先在装置出厂时嵌入到装置中的密文数据。 进而,也可以预先在装置出厂时以加密的状态嵌入到加密装置中,从外部接收其解密密钥。 由此,不再需要由装置计算并生成密文数据。
[0303] 以下,对于关于从外部装置经由通信路径接收新的密文数据的情况下的数据加密系统1a,以与实施方式不同的点为中心进行说明。
[0304] 数据加密系统1a如图15所示,由数据加密装置11a、通信路径12a、数据解密装置13a、密文数据生成装置14a构成。
[0305] 数据解密装置13a与在上述实施方式中表示的数据解密装置13是同样的,所以省略这里的说明。
[0306] 数据加密装置11a与在上述实施方式中表示的数据加密装置11同样,将计测数据以加密的状态储存到内部,根据数据解密装置13a的请求,将储存着的加密的数据向数据解密装置13a发送。 另外,数据加密装置11a对于已发送了一次的加密的数据,不进行再次发送。
[0307] 通信路径12a是能够在数据加密装置11a与数据解密装置13a之间、以及在数据加密装置11a与密文数据生成装置14a间收发各种数据的通信路径。
[0308] (2-1)数据加密装置11a的结构
[0309] 这里,对数据加密装置11a的结构进行说明。
[0310] 数据加密装置11a如图15所示,由参数保存部110a、传感器部111a、可变换信息保存部112a、变换可否判断部113a、加密处理部116a及收发处理部117a构成。
[0311] 参数保存部110a、传感器部111a及可变换信息保存部112a分别与在上述实施方式中表示的参数保存部110、传感器部111及可变换信息保存部112同样,所以这里的说明省略。
[0312] (变换可否判断部113a)
[0313] 变换可否判断部113a与在上述实施方式中表示的变换可否判断部113同样,进行对象数据TD的接受、该对象数据TD的大小信息SIZE的取得。
[0314] 变换可否判断部113a访问可变换信息保存部112a,按密文识别符CTID由小到大的顺序,确认是否存在发送可否标志UFLAG是TRUE、并且从总大小TSIZE减去已变换大小USIZE后的值比大小信息SIZE大的密文识别符CTID。
[0315] 在即便存在一个的情况下,变换可否判断部113a也将对象数据TD和对应的一个密文识别符CTID向变换处理部152a输出。
[0316] 在不存在的情况下,变换可否判断部113a将对象数据TD和密文生成委托信号REQCT向变换处理部152a输出。
[0317] (加密处理部116a)
[0318] 加密处理部116a如图15所示,由密文保存部151a及变换处理部152a构成。
[0319] 加密处理部116a与在上述实施方式中表示的加密处理部116同样,如果从变换可否判断部113a接受到由对象数据TD和密文生成委托信号REQCT构成的组、或由对象数据TD与密文识别符CTID构成的组,则进行对所接受到的对象数据TD的加密。
[0320] 密文保存部151a与在上述实施方式中表示的密文保存部151是同样的,所以这里的说明省略。
[0321] 以下,对变换处理部152a进行说明。
[0322] 变换处理部152a取得作为从变换可否判断部113a接受到的对象数据TD的数据大小的大小信息SIZE。
[0323] 变换处理部152a如果从变换可否判断部113a接受到密文识别符CTID,则与在上述实施方式中表示的变换处理部152同样,进行对应于所接受到的密文识别符CTID的密文数据CTDATA的取得、已变换大小USIZE的取得、使用所取得的密文数据CTDATA及已变换大小USIZE进行的对象数据TD的变换、盖写、已变换大小USIZE的更新。
[0324] 变换处理部152a如果从变换可否判断部113a接受到密文生成委托信号REQCT,则将表示请求新的密文数据CTDATA(=p·r×h(mod q))之意的请求信息经由收发处理部117a向加密数据生成装置14a发送。
[0325] 变换处理部152a如果从密文数据生成装置14a接受到新的密文数据,则生成在密文保存部151a中还没有使用的新的密文识别符CTID。 变换处理部152a将所生成的密文识别符CTID与新的密文数据构成的组保存到密文保存部151a中。 进而,将总大小TSIZE设为167,将已变换大小USIZE设为0,将发送可否标志UFLAG设为TRUE,与前面生成的新的密文识别符CTID建立对应,保存到可变换信息保存部112a中。
[0326] 变换处理部152a通过与从变换可否判断部113a接受到密文识别符CTID的情况同样的动作,进行对象数据TD的变换、盖写、已变换大小USIZE的更新。
[0327] (收发处理部117a)
[0328] 收发处理部117a除了在上述实施方式中表示的发送处理部117的动作以外,还进行以下的动作。
[0329] 收发处理部117a如果从变换处理部152a接受到请求信息,则将接受到的请求信息向密文数据生成装置14a发送。
[0330] 收发处理部117a如果从密文数据生成装置14a接受到新的密文数据,则将接受到的新的密文数据向变换处理部152a输出。
[0331] (2-2)密文数据生成装置14a的结构
[0332] 密文数据生成装置14a如图15所示,由收发处理部300a、密文生成部301a、随机数生成部302a及加密密钥保存部303a构成。
[0333] 随机数生成部302a及加密密钥保存部303a分别与在上述实施方式中表示的随机数生成部114及加密密钥保存部115是同样的,所以这里的说明省略。
[0334] (密文生成部301a)
[0335] 密文生成部301a如果从数据加密装置11a接受到请求信息,则与在上述实施方式中表示的密文生成部150同样,生成新的密文数据CTDATA(=p·r×h(mod q))。
[0336] 密文生成部301a将所生成的新的密文识别符CTID经由收发处理部300a向数据加密装置11a发送。
[0337] (收发处理部300a)
[0338] 收发处理部300a如果从数据加密装置11a接受到请求信息,则将接收到的请求信息向密文生成部301a输出。
[0339] 收发处理部300a如果从密文生成部301a接受到新的密文数据,则将接受到的新的密文数据向数据加密装置11a发送。
[0340] (2-3)动作
[0341] 这里,对数据加密装置11a的测量处理,利用图7所示的流程图,仅说明不同点。
[0342] 不同点是图7中所示的步骤S110,以下进行说明。
[0343] 数据加密装置11a在由变换可否判断部113a判断为不存在能够变换的密文数据的情况下(步骤S105中的“否”),变换处理部152a将请求信息向密文数据生成装置14a发送。 并且,密文数据生成装置14a生成新的密文数据CTDATA(=p·r×h(mod q)),并向数据加密装置11a发送。 数据加密装置11a如果从密文数据生成装置14a接受到新的密文数据CTDATA,则变换处理部152a生成新的密文识别符CTID,将新的密文识别符CTID与新的密文数据CTDATA的组保存到密文保存部151a中。 进而,分别将总大小TSIZE及发送可否标志UFLAG设定为初始值(TRUE)、将已变换大小USIZE设定为初始值(0),与前面生成的密文识别符CTID建立对应,追加到可变换信息保存部112a中。
[0344] 然后,进行步骤S115以后的动作。 另外,关于变换处理,由于能够以与图8所示的动作的流程同样的动作的流程实现,所以这里的说明省略。
[0345] 此外,关于数据加密装置11a进行的发送处理,也由于能够通过图10所示动作的流程实现,所以这里的说明省略。
[0346] 此外,关于数据解密装置13a进行的接收处理及解密处理也由于能够通过图13及图14所示的动作的流程实现,所以这里的说明省略。
[0347] (2-4)其他
[0348] 在数据加密装置11a与数据解密装置13a之间、以及在数据加密装置11a与密文数据生成装置14a之间,使用相同的通信路径12a收发各种数据,但并不限定于此。
[0349] 也可以通过分别不同的通信路径进行数据的收发。 例如,数据加密装置11a是能够安装到密文数据生成装置14a中的装置,是通过将数据加密装置11a安装到密文数据生成装置14a上而建立通信路径的结构。 即,只要是在数据加密装置11a与密文数据生成装置14a之间建立通信路径、各装置间成为用通信路径连接的状态的结构就可以。 此外,关于数据加密装置11a和数据解密装置13a也是同样的。
[0350] (3)在可变换信息保存部112中保持已变换大小USIZE,但并不限定于此。 例如,也可以代替已变换大小USIZE而保持可变换大小。其为从总大小TSIZE减去已变换大小USIZE后的值。 由此,在判断变换可否时,不再需要进行减法。
[0351] (4)在本实施例中,使用NTRU加密,但并不限定于此。 具体而言,只要是在公钥加密中、在将数据加密时使用随机数、通过将由该随机数生成的值和明文数据用某种运算(算术加法运算、算术减法运算、异或、算术乘法运算、多项式的加法运算、多项式的减法运算等)融合来计算密文的方式,是怎样的方式都可以。 例如,其中包括ElGamal加密、椭圆ElGamal加密等。
[0352] 或者,也可以在私钥加密中使用。
[0353] 在下文中,对公钥加密中的椭圆ElGamal加密的情况进行叙述。 在下文中,分为参数生成、密钥生成、密文生成方法、变换方法及解密进行说明。
[0354] <参数生成>
[0355] 椭圆曲线的定义式由y^2=x^3+a×x+b给出。 这里,z^j是z的j次幂,a×x表示a与x的乘法。 a、b是自然数,由a、b决定椭圆曲线。 此外,定义椭圆曲线的定义域(field ofdefinition)一般由GF(p^m)给出。 这里,p是素数,m是自然数。 这里,为了简单,设m=1,将定义域用GF(p)处理。 此外,设p为160位。
[0356] <密钥生成>
[0357] 私钥是ks,公钥KP满足KP=ks*G。 这里,G是椭圆ElGamal加密的基点,是椭圆曲线上的点。 此外,ks*G表示通过将基点G相加ks次得到的椭圆曲线上的点。
[0358] <密文数据的生成方法>
[0359] 数据加密装置产生随机数r,并计算PC=r*G。 接着,数据加密装置计算c=r*KG,将PC的x坐标x(PC)与c的连结作为密文数据。此外,设总大小TSIZE为160,设已变换大小USIZE为0。
[0360] <变换方法(m)>
[0361] 这里,对变换n位的数据z的情况进行说明。
[0362] 首先,数据加密装置计算从存储的加密了至少1个对象数据的密文数据的总大小TSIZE减去已变换大小USIZE后的值(减法值)。
[0363] 数据加密装置判断计算出的减法值是否是不到n位,在判断为是不到n位的情况下,通过上文所示的密文数据的生成方法生成密文数据,进行以下所示的处理。 此外,在判断为不到n位的情况下,利用在减法值的计算中使用的密文数据,进行以下所示的处理。 另外,在不需要将新生成的密文数据与在减法值的计算中使用的密文数据加以区别的情况下,统称为密文数据c进行说明。
[0364] 对密文数据c的第(USIZE+1)位到第(USIZE+n)位的各个位、和数据z的第1位到第n位的各个位进行异或的运算。 这里,对密文数据c的第(USIZE+1)位和数据z的1位实施异或的运算,将其结果盖写到密文数据c的第(USIZE+1)位。 对密文数据c的第(USIZE+2)位和数据z的2位实施异或的运算,将其结果盖写到密文数据c的第(USIZE+2)位。 通过将该动作重复到密文数据c的(USIZE+n)位,能够对数据z的所有的位值实施异或。
[0365] 数据加密装置对数据z的所有的位值实施异或之后,对已变换大小USIZE的值加上n而进行更新。
[0366] 这里,以下表示对数据z的所有的位值实施异或的运算方法的一例。
[0367] 数据加密装置对数据z的位序列实施移位运算,以使位序列的开头对应于密文数据c的第(USIZE+1)位。
[0368] 并且,数据加密装置通过在实施了移位运算的数据z和密文数据c各自的第(USIZE+1)位到第(USIZE+n)位的范围中实施异或,能够对数据z的所有的位值使用异或。
[0369] <解密>
[0370] 对包含在密文数据中的x(PX)计算Z=x(PC)^3+a×x(PC)+b在GF(p)下的平方根rt,设为PC′=(x(PC),rt)。 例如,表示p=3mod4的情况下的GF(p)下的平方根的计算方法。 其他平方根的计算方法是公知的。 另外,d mod e表示将d用e除时的余数。 z的平方根通过计算z^((p+1)/4)求出。 一般,由于z^(p-1)=1mod p成立,所以为z^(p+1)=z^2mod p,由于为z^((p+1)/4)=(z^2)^(1/4)=z^(1/2),所以可知能够得到z的平方根。 接着,使用私钥ks计算PC′的ks倍的点ks*PC′。 最后,使用ks*PC′计算c xor x(ks*PC′),将该结果作为解密文数据。另外,x(P)是P的x坐标,xor表示异或运算符。
[0371] (5)对于由密文生成部150生成的密文,为了防止已知明文攻击,如图16所示,也可以预先变换随机数。 随机数的位数例如可以是不可能尝试所有组合的80位等。 这是为了防止在发送仅变换某一定位以下的密文的情况下,可能由非法的第三者进行解析的情况。 该解析方法如下。
[0372] (5-1)对公钥h,计算满足h×inv_h=1(mod q)的inv_h。
[0373] (5-2)假定为包括已变换的部位的明文数据候补值m′。 已变换的部位为预想值,对于其他部位设为0。
[0374] (5-3)对密 文数据CTDATA计 算作为 多项 式的第 一中间 值CV1=CTDATA-m′。
[0375] (5-4)对于第一中间值CV1,计算作为多项式的第二中间值CV2=p·CV1×inv_h。
[0376] (5-5)对于作为多项式的第二中间值CV2,确认是否各系数与生成随机数r时的条件完全一致(N个系数中的d个系数是1、并且d个系数是-1、并且(N-2d)个系数为0)。 如果一致,则将在(5-2)中假定的明文数据候补值m′作为正确的明文数据m输出。 如果不一致,则将在(5-2)中假定的明文数据候补值m′改变为别的值,再次重复(5-3)~(5-5)。
[0377] 这里,预先变换某一定位以上的理由是因为,通过增加在(5-2)中要假定的样式数,使得尝试所有组合成为不可能。 由此,不再需要发送处理部117进行的已变换大小USIZE的检查。此外,可变换信息保存部112的已变换大小USIZE的初始值为变换后的随机数的位数。
[0378] 这样,在将比规定的大小(这里是80位)小的明文最先加密为密文数据的情况下,有可能通过已知明文攻击进行解析、以非法地取得该明文。 所以,通过预先附加规定的大小,在明文被最初加密为密文数据的情况下也能够防止已知明文攻击。
[0379] 另外,这里为了防止已知明文攻击而变换由80位构成的随机数,但也可以变换由80位构成的全0。
[0380] (6)也可以通过将可变换信息保存部112做成安全存储器,使得不能从外部进行访问。由此,已变换大小USIZE不会泄露给第三者,所以例如能够防止推测在变形例(5)中叙述的明文数据的攻击。 由此,能够变得更安全。
[0381] (7)数据加密装置11的由加密密钥保存部115保存的加密密钥EK(公钥h)也可以能够从外部进行设定。 由此,能够在出厂后进行密钥设定,所以方便性更高。
[0382] 例如,数据加密装置也可以在初次执行密文数据的生成之前,从保持加密密钥EK(公钥h)的外部的装置取得公钥h,并保存所取得的公钥h。 公钥h保存后的密文数据的生成由于与实施方式是同样的,所以这里的说明省略。
[0383] 或者,也可以每当生成密文数据CTDATA(=p·r×h(mod q))时从保持加密密钥EK(公钥h)的外部的装置取得公钥h。 在此情况下,数据加密装置也可以通过具备图2所示的各结构要素中的除了加密密钥保存部以外的其他结构要素来实现。此时,密文生成部如果从变换可否判断部接受到密文生成委托信号REQCT,则向保持公钥h的外部的装置发送请求公钥h的请求信息。并且,如果从外部的装置接受到公钥h,则与实施方式所示的动作同样,生成密文数据CTDATA(=p·r×h(mod q))。
[0384] (8)发送处理部117根据来自外部的请求而每次进行相同的处理,但并不限定于此。 例如,也可以进行动作,以使得在从外部收到了特殊的命令的情况下,不进行已变换大小USIZE的检查而发送全部的密文数据CTDATA。此外,也可以根据认证方法的差异来改变其动作。
[0385] (9)密文生成部150通过计算来生成密文数据,但并不限定于此。例如,数据加密装置11也可以将由密文生成部150生成的两个以上(还没有变换的初始状态的)密文数据预先保持到密文保存部151中。
[0386] 在此情况下,例如数据加密装置11的变换处理部152在不能进行通过1个密文数据进行的数据的变换之前,使用该1个密文数据来变换(加密)数据。 并且,如果变换可否判断部113判断为不能进行通过该1个密文数据的变换(不能加密),则变换处理部152使用保持在密文保存部151中的其他加密数据进行数据的变换。
[0387] 或者,数据加密装置11的密文生成部150也可以进行动作以选择该两个以上的密文数据中的某个。该选择方法也可以使用随机数随机地选择。 通过这样,能够以较少的数量的密文数据高效率地变换对象数据。 另外,由于将相同的密文数据复制多个、对其分别用不同的对象数据变换,所以有可能从输出的多个密文数据中泄露一部分信息。具体而言,如果第三者知道输出的多个密文数据的初始的密文数据相同,则通过取这些多个密文数据的差分(算术减法),能够确定在变换中使用的对象数据的差分。但是,通过使其随机地选择密文数据,能够降低确定初始状态为相同的密文数据的概率。
[0388] (10)数据解密装置预先存储有由测量数据D和计数器信息CRT构成的数据的大小的值(这里是5字节),但并不限定于此。
[0389] 数据加密装置11也可以将在变换中使用的对象数据的大小信息SIZE全部保管,在向数据解密装置13输出密文数据时将这些大小信息SIZE一起输出。 由此,即使对象数据是可变长度,数据解密装置13也使用大小信息SIZE将消息x′分割,所以能够按照原来的对象数据、即由测量数据D和计数器信息CRT构成的每个数据进行复原,之后的使用变得容易。
[0390] (11)数据加密装置11也可以在向数据解密装置13输出密文数据时将对应于它们的密文识别符CTID一起输出。 例如,假设密文识别符表示由数据加密装置11生成的顺序。由此,数据解密装置13在将密文数据解密而取得解密文数据之后,能够使用这些密文识别符CTID而掌握包含在解密文数据中的传感器信息的计测(生成)的顺序。
[0391] (12)在数据加密装置11中,在变换中使用的对象数据并不限于测量的传感器信息。 例如,既可以是某个(例如传感器信息)值的散列(hash)值或代码化的值,也可以是密钥数据。 此外,也可以将不同种类的值(例如测量数据、散列值和密钥)混杂来变换同一个密文数据。
[0392] (13)在上述实施方式中,设已变换大小USIZE的值为已利用和未利用的边界值(对象数据的大小s的倍数),但并不限定于此。
[0393] 已变换大小USIZE的值也可以是比对象数据的大小s大的值的倍数。 例如,也可以是对对象数据的大小s加上了规定值w后的值(s+w)的倍数。
[0394] (14)在上述实施方式中,将密文数据从开头数据起依次加以使用地将对象数据加密,但并不限定于此。
[0395] 也可以随机地使用密文数据中的没有被用于加密的区域。
[0396] 例如,在第1次的加密中,从密文数据的开头数据起,使用对象数据的大小s的量的数据。 在下次加密(第2次加密)中,从密文数据的第4s个数据起使用对象数据的大小长度的量的数据。 在第3次的加密中,从密文数据的第2s个数据起使用对象数据的大小长度的量的数据。 由此,能够随机地使用密文数据中的没有被用于加密的区域。
[0397] (15)上述各装置具体而言是由微处理器、ROM、RAM、硬盘单元、显示单元、键盘、鼠标等构成的计算机系统。 在上述RAM或硬盘单元中存储有计算机程序。 通过上述微处理器按照上述计算机程序动作,各装置实现其功能。 这里,计算机程序是为了实现规定的功能而将表示对计算机的命令的命令代码组合多个而构成的。
[0398] (16)构成上述各装置的结构要素的一部分或全部也可以由1个系统LSI(Large Scale Integration:大规模集成电路)构成。系统LSI是将多个结构部集成在1个芯片上而制造的超多功能LSI,具体而言是包括微处理器、ROM、RAM等而构成的计算机系统。在上述RAM中存储有计算机程序。 通过上述微处理器按照上述计算机程序动作,系统LSI实现其功能。
[0399] 例如,构成数据加密装置的可变换信息保存部112及变换可否判断部113、随机数生成部114及加密密钥保存部115、密文生成部150及密文保存部151、变换处理部152等的各功能块典型地也可以实现为作为集成电路的LSI。它们既可以单独地单芯片化,也可以包括一部分或全部而单芯片化。
[0400] 此外,构成数据解密装置的解密密钥保存部202及解密处理部203、解密文保存部204等的各功能块典型地也可以实现为作为集成电路的LSI。它们既可以单独地单芯片化,也可以包括一部分或全部而单芯片化。
[0401] 这里,作为集成电路的一例而设为LSI,但根据集成度的差异,也有称作IC、系统LSI、超级(super)LSI、特级(ultra)LSI的情况。
[0402] 此外,集成电路化的方法并不限于LSI,也可以通过专用电路或通用处理器实现。 也可以使用能够在LSI制造后进行编程的FPGA(FieldProgrammable Gate Array:现场可编程门阵列)、或能够再构成LSI内部的电路单元的连接及设定的可重构处理器。
[0403] 进而,如果因半导体技术的进步或派生的其他技术而出现替代LSI的集成电路化的技术,则当然也可以使用该技术进行功能块的集成化。 有可能是生物技术的应用等。
[0404] (17)构成上述各装置的结构要素的一部分或全部也可以由可相对于各装置拆装的IC卡或单体的模块构成。 上述IC卡或上述模块是由微处理器、ROM、RAM等构成的计算机系统。上述IC卡或上述模块也可以包括上述超多功能LSI。通过微处理器按照计算机程序动作,上述IC卡或上述模块实现其功能。 该IC卡或该模块也可以具有防篡改性。
[0405] (18)本发明也可以是上述所示的方法。 此外,也可以是通过计算机实现这些方法的计算机程序,也可以是由上述计算机程序构成的数字信号。
[0406] (19)此外,本发明也可以是将上述计算机程序或上述数字信号记录到计算机可读取的记录介质——例如软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc:蓝光光盘)、半导体存储器等中的产品。 此外,也可以是记录在这些记录介质中的上述数字信号。
[0407] (20)此外,本发明也可以是将上述计算机程序或上述数字信号经由电通信线路、无线或有线通信线路、以因特网为代表的网络、数字广播等传送的形式。
[0408] (21)此外,本发明也可以是具备微处理器和存储器的计算机系统,上述存储器存储有上述计算机程序,上述微处理器按照上述计算机程序动作。
[0409] (22)此外,也可以通过将上述程序或上述数字信号记录到上述记录介质中并移送、或者将上述程序或上述数字信号经由上述网络等移送,由独立的其他计算机系统实施。
[0410] (23)也可以将上述实施方式及上述变形例分别组合。
[0411] 1.8其他
[0412] (1)作为本发明的一个形态的数据加密装置,其特征在于,具备:对象数据取得部,持续多次取得对象数据;密文数据保存部,保持一个以上的密文数据;未变换信息保存部,保持确定上述一个以上的密文数据各自的未变换部位的未变换信息;变换处理部,至少基于上述未变换信息及上述对象数据,变换上述一个以上加密数据中的某个。
[0413] (2)也可以是,上述(1)的数据加密装置还具备:变换可否判断部,至少基于上述对象数据的数据大小和上述未变换信息,判断是否能够变换上述一个以上的密文数据中的某个;密文数据取得部,在由上述变换可否判断部判断为不能变换的情况下,取得新的密文数据。
[0414] (3)也可以是,上述(2)的数据加密装置还具备保持公钥加密的加密密钥的加密密钥保存部、和生成随机数数据的随机数生成部,上述密文数据取得部至少基于上述加密密钥及上述随机数数据生成密文数据。
[0415] (4)也可以是,在上述(3)的数据加密装置中,上述密文数据取得部进行包含在公钥加密的加密处理中的计算中的、即将与对象数据的融合处理之前的计算,生成其值作为密文数据。
[0416] (5)也可以是,在上述(3)的数据加密装置中,上述密文数据取得部具有预先给出的明文初始值数据,通过按照公钥加密的加密处理,使用上述加密密钥及上述随机数将上述明文初始值数据加密,来生成密文数据。
[0417] (6)也可以是,在上述(5)的数据加密装置中,上述明文初始值数据是0。
[0418] (7)也可以是,上述(2)的数据加密装置还具备能够从外部接收数据的接收处理部,上述密文数据取得部经由上述收发处理部取得上述密文数据。
[0419] (8)也可以是,上述(1)的数据加密装置还具备对外部输出由上述密文数据保存部保持的上述密文数据的输出处理部。
[0420] (9)也可以是,在上述(8)的数据加密装置中,上述可变换信息包含对上述一个以上的密文数据的每个表示是否能够进行进一步的变换的变换可否标志,上述输出处理部在向外部输出时,将与已进行外部输出的上述密文数据相对应的上述变换可否标志设定为不能。
[0421] (10)也可以是,在上述(8)的数据加密装置中,上述可变换信息包含对上述一个以上的密文数据的每个表示在密文数据中已经变换的数据大小的已变换大小、或表示可变换的剩余的数据大小的可变换大小中的某个,上述输出处理部将上述已变换大小或上述可变换大小与要输出的上述密文数据一起向外部输出。
[0422] (11)也可以是,在上述(10)的数据加密装置中,上述输出部进行控制,以仅将上述已变换大小为某一定以上的上述密文数据、或上述可变换大小为某一定以下的上述密文数据向外部输出。
[0423] (12)也可以是,在上述(3)的数据加密装置中,上述密文数据取得部基于NTRU加密、或ElGamal加密、或椭圆ElGamal加密中的某一种公钥加密的加密处理的全部或一部分,生成密文数据,上述变换处理部至少使用算术加法运算、算术减法运算、算术乘法运算、异或中的某一种。
[0424] (13)也可以是,在上述(3)的数据加密装置中,上述密文数据取得部还在生成上述密文数据之后,基于由上述随机数生成部生成的与上述对象数据无关的第二随机数数据,变换上述密文数据。
[0425] (14)也可以是,在上述(1)的数据加密装置中,上述可变换信息保存部是安全存储器,上述可变换信息不能从外部访问。
[0426] (15)也可以是,在上述(1)的数据加密装置中,上述对象数据取得部还具有计测计数器的功能、以及取得传感器信息的功能,上述对象数据是将上述传感器信息与上述计数器连结的值。
[0427] (16)也可以是,在上述(15)的数据加密装置中,上述传感器信息是体温、血压、血糖值、脉搏值、心率、运动量、步数中的某一种数据,也可以是基于定时器定期计测的信息。
[0428] (17)也可以是,在上述(1)的数据加密装置中,还具备能够从外部设定上述加密密钥的加密密钥设定部。
[0429] (18)作为本发明的一个形态的数据解密装置,其特征在于,具备:取得部,从外部取得密文数据和大小信息;解密密钥保存部,保持解密密钥;解密文数据保存部,保存解密文数据;解密处理部,使用上述解密密钥,将上述密文数据解密,取得解密文数据;删除处理部,基于上述大小信息,将上述解密文数据的一部分删除,将删除后的上述解密文数据保存到上述解密文数据保存部中。
[0430] (19)也可以是,在上述(18)的数据解密装置中,上述解密密钥是基于公钥加密的解密密钥,上述解密处理部按照公钥加密的解密处理进行解密处理。
[0431] (20)也可以是,在上述(19)的数据解密装置中,上述解密处理部是基于NTRU加密、或ElGamal加密、或椭圆ElGamal加密中的某一种公钥加密的解密处理的。
[0432] (21)本发明的一个形态是一种数据加密系统,上述数据加密系统由数据加密装置和数据解密装置构成,其特征在于,上述加密装置具备:对象数据取得部,持续多次取得对象数据;密文数据保存部,保持一个以上的密文数据;未变换信息保存部,保持确定上述一个以上的密文数据各自的未变换部位的未变换信息;变换可否判断部,至少基于上述对象数据的数据大小和上述未变换信息,判断是否能够变换上述一个以上的密文数据中的某个;密文数据取得部,在由上述变换可否判断部判断为不能变换的情况下,取得新的密文数据;变换处理部,至少基于上述未变换信息及上述对象数据,变换上述一个以上加密数据中的某个,上述解密装置具备:取得部,从外部取得密文数据和大小信息;解密密钥保存部,保持解密密钥;解密文数据保存部,保存解密文数据;解密处理部,使用上述解密密钥,将上述密文数据解密,取得解密文数据;删除处理部,基于上述大小信息,将上述解密文数据的一部分删除,将删除后的上述解密文数据保存到上述解密文数据保存部中。
[0433] (22)也可以是,在上述(21)的数据加密系统中,上述数据加密装置还具备:加密密钥保存部,保持公钥加密的加密密钥;随机数生成部,生成随机数数据;上述密文数据取得部至少基于上述加密密钥及上述随机数数据生成密文数据,上述解密密钥是对应于上述加密密钥的解密密钥,上述解密处理部按照上述公钥加密的解密处理而进行解密处理。
[0434] (23)也可以是,在上述(22)的数据加密系统中,上述密文数据取得部基于NTRU加密、或E1Gamal加密、或椭圆E1Gamal加密中的某种公钥加密的加密处理的全部或一部分,生成密文数据,上述变换处理部使用算术加法运算、算术减法运算、算术乘法运算、异或中的至少某一种,上述解密处理部基于与上述密文数据取得部相同的公钥加密的解密处理进行解密处理。
[0435] 工业实用性
[0436] 有关本发明的数据加密系统由于在将多个大小较小的数据加密储存的情况下,在尽量抑制密文大小增加的同时、即使将存储的数据解析也防止对象数据的泄露,所以在电池容量或存储器、通信速度等的严格的制约下需要加密储存的情况下是具有实用性的。
[0437] 此外,有关本发明的数据加密装置及数据解密装置在制造、销售这些装置的产业中能够经营性、即反复且持续地使用。
[0438] 标号说明
[0439] 1数据加密系统
[0440] 11数据加密装置
[0441] 12通信路径
[0442] 13数据解密装置
[0443] 110参数保存部
[0444] 111传感器部
[0445] 112可变换信息保存部
[0446] 113可变换判断部
[0447] 114随机数生成部
[0448] 115加密密钥保存部
[0449] 116加密处理部
[0450] 117发送处理部
[0451] 150密文生成部
[0452] 151密文保存部
[0453] 152变换处理部
[0454] 200请求受理部
[0455] 201收发处理部
[0456] 202解密密钥保存部
[0457] 203解密处理部
[0458] 204解密文保存部
[0459] 205显示部