首页 / 再加密方法、再加密系统以及再加密装置

再加密方法、再加密系统以及再加密装置失效专利 发明

技术领域

[0001] 本发明涉及一种再加密方法、再加密系统以及再加密装置,具体地说,涉及一种在通过预定装置保存在多个用户之间共享的加密数据进行每个用户的阅览权限管理的环境下,确实地避免包括装置管理者在内的无权限者阅览加密数据的技术。

相关背景技术

[0002] 在多个用户之间共享存储在服务器等中的加密数据的状况下,即使使某用户的访问权失效,如果该用户仍然保存有加密数据解密用的解密密钥,则有可能允许从该用户对加密数据的阅览。为了防止这样的从访问权失效的用户的阅览,需要使用其他的加密密钥重新对加密数据进行加密。
[0003] 关于该情况下的加密,例如可以采用以下的方法,即在上述服务器等中对加密数据进行一次解密,再次用其他的加密密钥对通过该解密得到的明文数据进行加密。但是,在采用这样的方法的情况下,从服务器泄露通过上述解密得到的明文数据的风险变高。
[0004] 因此,已知不进行解密地将加密数据用新的加密密钥进行再加密的技术。特别在近年来,作为能够在云服务上更安全地共享数据的技术,该再加密技术正在被关注。作为这样的再加密技术,例如提出了以下的存储节点用再加密系统(参照专利文献1)等,其被设置在存储节点中,将加密数据变换为能够用第二加密密钥解密的再加密数据,其中,该存储节点具备:加密部,其使用第一加密密钥对明文数据进行加密,制作加密数据;数据保存部,其可读出地存储上述加密数据。
[0005] 在该技术中,在存储服务器中生成并保存多个加密密钥,另一方面,数据制作者将对象数据保持为明文数据地登录到存储服务器中。另外,存储服务器对该明文数据应用第一加密密钥,通过流加密方式进行加密。然后,存储服务器对具有访问权的每个用户,使用其公钥分别进行与上述第一加密密钥对应的加密。存储服务器一同管理该加密后的第一加密密钥和上述流加密的数据和明文数据。
[0006] 在这样的状况下,在使某用户对加密数据(对上述明文数据进行流加密所得的数据)的访问权失效时,存储服务器使用自身生成的第二加密密钥,对上述加密数据进行加密(双重加密),使用第一加密密钥解密该双重加密后的数据。此外,在流加密技术中,用于加密的密钥和用于解密的密钥相同。
[0007] 存储服务器用其余的用户(访问权有效的用户)的公钥分别加密上述第二加密密钥,一同管理用第一加密密钥解密上述双重加密后的数据所得的数据、用各公钥加密第二加密密钥所得的数据。在此,在流加密技术中,与加密的顺序无关,因此用第二加密密钥对用第一加密密钥进行流加密后的数据进行双重加密进而用第一加密密钥解密后的数据与简单地用第二加密密钥加密后的数据相等。
[0008] 在现有技术中,应用该性质,实现了对于成为对象的加密数据不解密地用新的加密密钥进行再加密的方法。
[0009] 但是,在现有技术中,由数据制作者将加密对象的数据保持明文数据地登录到存储服务器中。因此,存储服务器的管理者能够直接阅览加密前的明文数据。另外,该明文数据即使在存储服务器中被加密,但由于该存储服务器自身生成并管理上述各加密密钥,因此存储服务器的管理者能够自由地使用在存储服务器中保存的加密密钥对加密数据进行解密。
[0010] 即,存在无法排除以下那样的状况的问题,即使是没有数据的阅览权限的存储服务器的管理者,也能够使用在该服务器中保存的加密密钥解密加密数据,阅览该明文数据。
[0011] 专利文献1:专利第5133850号公报

具体实施方式

[0047] 系统结构
[0048] 以下,使用附图详细说明本发明的实施方式。图1是表示本实施方式的包括再加密装置20的再加密系统1的整体结构例子的图。在该图中,与整体结构一起还表示了构成再加密系统1的各计算机的功能结构例子。图1所示的再加密系统1是在通过再加密装置20(预定装置)保存在多个用户之间共享的加密数据进行每个用户的阅览权限管理的环境下,确实地避免包括再加密装置20的管理者在内的无权限者阅览加密数据的系统。
[0049] 本实施方式的再加密系统1是经由因特网等适当的网络30可通信地将多个用户终端10(在本实施方式中,为了区别多个用户终端10,为了方便而记载为“10-1”、“10-2”、“10-3”、“10-4”,但在不需要特别地将用户终端之间相区别地进行记载的情况下,作为用户终端10)和再加密装置20连接起来而构成的计算机网络系统。
[0050] 如图1所示,各用户终端10-1~10-4可由秘密密钥生成部101、密钥运算部102、公开ID存储部103、密钥存储部104、信息生成部105、加密处理部106、加密数据收发部107、一次存储部108以及信息显示部109构成。
[0051] 其中,秘密密钥生成部101生成在各用户终端10-1~10-4中管理的秘密密钥。另外,密钥运算部102动态地生成加密密钥、解密密钥等。另外,公开ID存储部103存储用于识别通信对象终端的ID(标识)。另外,密钥存储部104安全地管理在秘密密钥生成部101中生成的秘密密钥。另外,信息生成部105生成向通信对象终端的消息。另外,加密处理部106使用加密密钥对消息进行加密,或使用解密密钥对加密数据进行解密。另外,加密数据收发部107收发加密数据。另外,一次存储部108是使用了半导体的一次存储区域。另外,信息显示部109显示消息。此外,上述识别通信对象的ID只要是邮件地址、身份证编号等能够公开地确定个人的信息即可,在每个使用的系统中预先向用户通知。
[0052] 如图2所示例的那样,可以通过普通的计算机实现具有这样的功能的各用户终端10-1~10-4。例如,可以作为通过CPU(中央处理单元)等运算装置14执行的计算机程序
12来实现秘密密钥生成部101、密钥运算部102、信息生成部105、加密处理部106、加密数据收发部107。这样的计算机程序12例如可以预先存储、保存在硬盘、闪速存储设备等存储装置11中、或从网络30接受发布来利用。另外,也可以作为上述存储装置1来实现公开ID存储部103、密钥存储部104。另外,可以用存储器13来实现一次存储部108。另外,例如可以作为液晶显示装置、有机EL(Electro Luminescence电致发光)显示器等输出装置
16来实现信息显示部109。除此以外,用户终端10-1~10-4具备用于接受来自用户的指示、输入的键盘、鼠标等输入装置15、经由网络30与其他装置进行通信的通信装置17。
[0053] 另外,再加密装置20的功能结构如下所述。如图1所示,再加密装置20可以由加密数据收发部201、收发者控制部202、变换密钥存储部203、加密数据存储部204、密钥运算部205、再加密处理部206、一次存储部207、访问密钥存储部208以及双重加密密钥存储部209构成。
[0054] 其中,加密数据收发部201收发加密数据。另外,收发者控制部202控制上载到再加密装置20的加密数据是从哪个用户终端向哪个用户终端的消息。另外,变换密钥存储部203管理在再加密中使用的变换密钥。另外,加密数据存储部204存储再加密数据。另外,密钥运算部205计算用于登录变换密钥的信息,或生成随机数。另外,再加密处理部206进行再加密处理。另外,访问密钥存储部208存储对用于解密加密数据的信息进行加密所得的信息(以下称为访问密钥)。另外,双重加密密钥存储部209存储在对加密数据进一步双重地加密时使用的加密密钥(以下称为双重加密密钥)。
[0055] 如图3所示例的那样,可以通过普通的计算机来实现这样的再加密装置20。例如,可以作为通过CPU(中央处理单元)等运算装置24执行的计算机程序22来实现加密数据收发部201、收发者控制部202、密钥运算部205、以及再加密处理部206。这样的计算机程序22例如预先存储、保存在硬盘、闪速存储设备等存储装置21中、或从网络30接受发布来利用。另外,可以作为存储装置21来实现变换密钥存储部203、加密数据存储部204、访问密钥存储部208、以及双重加密密钥存储部209。另外,可以用存储器23来实现一次存储部207。除此以外,再加密装置20具备经由网络30与用户终端10-1~10-4等其他装置进行通信的通信装置25。
[0056] 本实施方式的术语等的定义
[0057] 在此,预先说明在本实施方式中使用的函数和运算符的含义。在本实施方式中记载的“h()”是对输入数据进行杂乱化的哈希函数。另外,“EK()”是流加密的加密函数,表示使用密钥K对输入数据进行加密处理的函数。另外,“DK()”是流加密的解密函数,表示使用密钥K对输入数据进行解密处理的函数。
[0058] 另外,“A|B”表示数据A和数据B的连结,可以根据需要从连结的数据分离数据A和数据B。另外,图中的“○中的+”的标记表示异或运算(xor)。
[0059] 此外,在本实施方式中,使用流加密作为加密函数和解密函数,但在多重地进行加密处理或解密处理时,只要是具有其处理结果与处理的顺序不相关的可换性的性质的加密函数、解密函数,则可以采用任意的函数。由此,也可以不一定使用在本实施方式中列举的流加密。另外,在本实施方式中,上述的哈希函数的哈希值、用于加密的加密密钥、用于解密的解密密钥为相同长度的固定长度。
[0060] 在此,重新记载“再加密”的定义。广义含义的“再加密”为“对密文再次进行加密”,但本实施方式中的含义即狭义含义的“再加密”表示“将发送到A的密文不进行解密地变换为能够用只有B保存的解密密钥进行解密的形式”。
[0061] 在广义含义中,还包括“将密文暂时解密并再次加密”、“对密文双重地加密”,但如在本实施方式中设想的那样,在加密学的研究领域中,一般作为定义使用上述狭义含义的“再加密”的情况较多。
[0062] 处理步骤例子
[0063] 以下,根据附图说明本实施方式的再加密方法的实际步骤。通过由构成再加密系统1的各装置、即再加密装置20和用户终端10分别读出到存储器等中来执行的程序,来实现与以下说明的再加密方法对应的各种动作。另外,该程序由用于进行以下说明的各种动作的代码构成。
[0064] 图4~9是表示本实施方式的再加密方法的步骤例子1~6的顺序图。在此,说明用于进行再加密的变换密钥的登录、在用户终端之间收发的消息的加密、该加密数据的再加密处理、再加密数据的解密和消息取得这样的伴随着用户终端之间的消息收发的一连串的顺序。
[0065] 图4的顺序图是表示在通过再加密装置20对加密数据进行再加密时使用的与用户终端10-4和用户终端10-1之间相关的变换密钥的登录方法的顺序图。
[0066] 在该情况下,首先用户S的用户终端10-4(进行发送给用户终端10-1的消息的制作、发送的用户终端)为了向用户A的用户终端10-1通知消息的内容,对再加密装置20执行变换密钥的登录申请(步骤S001)。该变换密钥为通过再加密装置20对消息的加密数据进行再加密时使用的密钥。
[0067] 另一方面,再加密装置20如果从用户终端10-4接收到上述变换密钥的登录申请,则通过适当的随机数生成算法生成与预先确定的哈希值相同的长度的随机数p(步骤S002),将该随机数p发送到作为变换密钥登录申请源的上述用户终端10-4(步骤S003)。
[0068] 另一方面,用户终端10-4向哈希函数输入通过密钥存储部104管理的自身的秘密密钥Ks和通过公开ID存储部103与用户终端10-1相关地管理的公开ID“IDa”,来计算哈希值Ks(a)=h(Ks,IDa),由此生成对密钥进行加密的密钥加密密钥(步骤S004)。
[0069] 接着,用户终端10-4使用在上述步骤S004中生成的密钥加密密钥,通过流加密对与预先确定的哈希值相同的长度并且值全部为0的消息“全部0”进行加密,生成与预先确定的哈希值相同长度的随机数rs(a)=EKs(a)(全部0)(步骤S005)。
[0070] 另外,用户终端10-4向用户终端10-1发送对在上述步骤S003中接收到的随机数p和在步骤S005中生成的随机数rs(a)进行xor所得的值“p xor rs(a)”(步骤S006)。
[0071] 在该情况下,用户终端10-1如果接收到从上述用户终端10-4发送来的值“p xor rs(a)”,则向哈希函数输入通过密钥存储部104管理的自身的秘密密钥Ka和通过公开ID存储部103管理的用于识别用户终端10-4的公开ID即IDs,来计算哈希值Ka(s)=h(Ka,IDs),生成密钥加密密钥(步骤S007)。
[0072] 接着,用户终端10-1使用在上述步骤S007中生成的密钥加密密钥,通过流加密对与预先确定的哈希值相同长度并且值全部为0的消息“全部0”进行加密,生成与预先确定的哈希值相同长度的随机数ra(s)=EKa(s)(全部0)(步骤S008)。
[0073] 另外,用户终端10-4向再加密装置20发送对在上述步骤S006中接收到的值“p xor rs(a)”和在步骤S008中生成的随机数ra(s)进行xor所得的值“ra(s)xor p xor rs(a)”(步骤S009)。
[0074] 此外,在流加密的性质方面,在步骤S009中向再加密装置20发送的值“ra(s)xor p xor rs(a)”与使用密钥加密密钥Ka(s)通过流加密对在步骤S006中接收到的值“p xor rs(a)”进行加密所得的值相等。
[0075] 另一方面,再加密装置20如果从用户终端10-1接收到“ra(s)xor p xor rs(a)”,则将该值与在上述步骤S002中使用的随机数p进行xor,计算用户终端10-4和用户终端10-1的变换密钥“ra(s)xor rs(a)”(步骤S010),将上述的变换密钥“ra(s)xor rs(a)”作为用户终端10-4和用户终端10-1的变换密钥登录到变换密钥存储部203的表T203(图18、图26)中(步骤S011)。
[0076] 图5是表示在通过再加密装置20对加密数据进行再加密时使用的用户终端10-1和用户终端10-2的变换密钥的登录方法的顺序图。在该情况下,首先用户A的用户终端10-1为了向用户B的用户终端10-2通知消息的内容,向再加密装置20进行变换密钥的登录申请(步骤S101)。该变换密钥成为在对上述消息进行再加密时再加密装置20使用的密钥。
[0077] 另一方面,再加密装置20如果接收到上述变换密钥登录申请,则生成与预先确定的哈希值相同长度的随机数p’(步骤S102),将该随机数p’发送到作为变换密钥登录申请源的上述用户终端10-1(步骤S103)。
[0078] 另一方面,用户终端10-1向哈希函数输入通过密钥存储部104管理的自身的秘密密钥Ka和通过公开ID存储部103与用户终端10-4(消息的发送源)相关地管理的公开ID“IDs”,来计算哈希值Ka(s)=h(Ka,IDs),由此生成对密钥进行加密的密钥加密密钥(步骤S104)。
[0079] 接着,用户终端10-1使用在上述步骤S104中生成的密钥加密密钥,通过流加密对与预先确定的哈希值相同长度并且值全部为0的消息“全部0”进行加密,生成与预先确定的哈希值相同长度的随机数ra(s)=EKa(s)(全部0)(步骤S105)。
[0080] 另外,用户终端10-1向用户终端10-2发送对在上述步骤S103中接收到的随机数p’和在步骤S105中生成的随机数ra(s)进行xor所得的值“p’xor ra(s)”(步骤S106)。
[0081] 另一方面,用户终端10-2如果接收到从上述用户终端10-4发送来的值“p’xor ra(s)”,则向哈希函数输入通过密钥存储部104管理的自身的秘密密钥Kb和通过公开ID存储部103与用户终端10-1相关地管理的公开ID“IDa”,计算哈希值Kb(a)=h(Kb,IDa),生成密钥加密密钥(步骤S107)。
[0082] 接着,用户终端10-2使用在上述步骤S107中生成的密钥加密密钥,通过流加密对与预先确定的哈希值相同长度并且值全部为0的消息“全部0”进行加密,生成与预先确定的哈希值相同长度的随机数rb(a)=EKb(a)(全部0)(步骤S108)。
[0083] 另外,用户终端10-2向再加密装置20发送对在上述步骤S106中接收到的值“p’xor ra(s)”和在步骤S108中生成的随机数rb(a)进行xor所得的值“rb(a)xor p’xor ra(s)”(步骤S109)。
[0084] 此外,在流加密的性质方面,在上述步骤S109中向再加密装置20发送的值“rb(a)xor p’xor ra(s)”与使用密钥加密密钥Kb(a)通过流加密对在步骤S106中接收到的值“p’xor ra(s)”进行加密所得的值相等。
[0085] 另一方面,再加密装置20如果从上述用户终端10-2接收到“rb(a)xor p’xor ra(s)”,则将该值与在上述步骤S102中使用的随机数p’进行xor,计算针对用户终端10-4生成的消息的用户终端10-1和用户终端10-2的变换密钥“rb(a)xor ra(s)”(步骤S110)。
[0086] 另外,再加密装置20将上述的变换密钥“rb(a)xor ra(s)”作为针对用户终端10-4生成的消息的用户终端10-1和用户终端10-2的变换密钥登录到变换密钥存储部203中(步骤S111)。这样登录的变换密钥成为用于将从消息发送者的用户终端10-4发送给消息接收者的用户终端10-1的加密消息变换为发送给具有对该加密消息的访问权的其他用户终端10-2的加密消息的密钥。
[0087] 此外,生成消息的用户终端只是用户终端10-4,当在本系统1中该情况明确的情况下,将针对用户终端10-4生成的消息的用户终端10-1和用户终端10-2的变换密钥简单地作为用户终端10-1和用户终端10-2的变换密钥而登录到变换密钥存储部203的表T203(图18、图26)中。另外,在用户A的用户终端10-1和用户C的用户终端10-3中也进行从上述步骤S101到步骤S111的处理,对具有从上述消息发送者的用户终端10-4发送给消息接收者的用户终端10-1的加密消息的访问权的其他全部用户终端进行变换密钥的登录。此外,将此处的针对用户终端10-4生成的消息的用户终端10-1和用户终端10-3的变换密钥设设为“rc(a)xor ra(s)”。
[0088] 图18、图26中示例的表T203表示了与在上述步骤S011、步骤S111中在再加密装置20的变换密钥存储部203中登录的变换密钥相关的表的内容。该表T203由作为消息的接收目标的用户终端的信息、作为消息的发送/变换源的用户终端的信息、变换密钥的栏构成。
[0089] 通过以上说明的变换密钥的登录方法,能够将在对用户终端10-1、10-2、10-3、10-4中分别管理的秘密密钥Ka、Kb、Kc、Ks不向自己以外的用户终端和再加密装置20泄露地进行再加密时所需要的变换密钥登录到再加密装置20中。
[0090] 接着,图6是表示以下处理的流程的顺序图,该处理直到通过上述用户终端10-4生成发送给用户终端10-1的消息M、消息M的加密数据以及将其加密中所使用的加密密钥进行加密所得的数据,并向再加密装置20发送所生成的加密数据和对加密密钥进行加密所得的数据为止。
[0091] 在该情况下,首先用户终端10-4生成发送给用户终端10-1的消息M(步骤S201),针对该消息M,通过密钥运算部102动态地生成随机的消息加密密钥K1(步骤S202)。
[0092] 另外,用户终端10-4使用在上述步骤S202中生成的消息加密密钥K1,通过流加密对消息M进行加密,生成加密数据EK1(M)(步骤S203)。
[0093] 接着,用户终端10-4向哈希函数输入通过密钥存储部104管理的自身的秘密密钥Ks和通过公开ID存储部103与用户终端10-1关联地管理的公开ID“IDa”,来计算哈希值Ks(a)=h(Ks,IDa),生成密钥加密密钥(步骤S204)。
[0094] 接着,用户终端10-4使用上述生成的密钥加密密钥Ks(a),通过流加密对消息加密密钥K1进行加密(步骤S205)。此外,这时的加密数据成为EKs(a)(K1)=rs(a)xor K1。并且,用户终端10-4计算消息加密密钥K1的哈希值h(K1)(步骤S206),使用上述密钥加密密钥Ks(a)通过流加密对上述哈希值h(K1)进行加密(步骤S207)。此外,这时的加密数据成为EKs(a)(h(K1))=rs(a)xor h(K1)。
[0095] 接着,用户终端10-4将在上述步骤S203、步骤S205、步骤S207中生成的值结合,作为发送给用户终端10-1的加密数据和对加密密钥进行加密所得的数据,发送到再加密装置20(步骤S208)。
[0096] 图7是表示以下的处理的顺序图,该处理为再加密装置20将从用户终端10-4发送的发送给用户终端10-1的加密数据和对加密密钥进行加密所得的数据中的对加密密钥进行加密所得的数据变换为面向用户终端10-1的访问密钥。
[0097] 在该情况下,再加密装置20如果接收到在上述步骤S208中从用户终端10-4发送来的发送给用户终端10-1的加密数据和对加密密钥进行加密所得的数据,则从变换密钥存储部203的表T203(图18)取得从用户终端10-4向用户终端10-1的变换密钥“ra(s)xor rs(a)”(步骤S209)。
[0098] 接着,再加密装置20将在上述步骤S208中发送来的数据中的在步骤S203中生成的加密数据EK1(M)保管在加密数据存储部204的表T204-1(图18)中(步骤S210)。
[0099] 接着,再加密装置20使用在步骤S209中取得的变换密钥“ra(s)xor rs(a)”,对在步骤S208中发送来的数据中的在步骤S205中生成的加密数据EKs(a)(K1)进行再加密处理。本实施方式的再加密处理简单地为异或运算处理(xor)。通过该再加密处理,再加密装置20取得以下的值。
[0100] (ra(s)xor rs(a))xor EKs(a)(K1)
[0101] =(ra(s)xor rs(a))xor(rs(a)xor K1)
[0102] =(ra(s)xor K1)=EKa(s)(K1)
[0103] 然后,再加密装置20将取得的值EKa(s)(K1)作为用户终端10-4和用户终端10-1的访问密钥的一部分,登录到访问密钥存储部208的表T208-1(图19)中(步骤S211)。
[0104] 接着,再加密装置20使用在步骤S209中取得的变换密钥“ra(s)xor rs(a)”,对在上述步骤S208中发送来的数据中的在步骤S207中生成的加密数据EKs(a)(h(K1))进行再加密处理。通过该再加密处理,再加密装置20取得以下的值。
[0105] (ra(s)xor rs(a))xor EKs(a)(h(K1))
[0106] =(ra(s)xor rs(a))xor(rs(a)xor h(K1))
[0107] =(ra(s)xor h(K1))=EKa(s)(h(K1))
[0108] 然后,再加密装置20将取得的值EKa(s)(h(K1))作为用户终端10-4和用户终端10-1的访问密钥的另一部分,登录到访问密钥存储部208的表T208-1(图19)中(步骤S212)。
[0109] 图8是表示以下处理的流程的顺序图,该处理将面向用户终端10-1的访问密钥变换为面向用户终端10-2的访问密钥,以便用户终端10-2能够通过再加密装置20解密从用户终端10-4发送给再加密装置20的以用户终端10-1为目的地的加密数据。
[0110] 在该情况下,再加密装置20从变换密钥存储部203的表T203(图18),取得针对用户终端10-4生成的消息的从用户终端10-1向用户终端10-2的变换密钥“rb(a)xor ra(s)”(步骤S213)。
[0111] 接着,再加密装置20使用在步骤S213中取得的变换密钥“rb(a)xor ra(s)”,对在步骤S211中得到的值EKa(s)(K1)进行再加密处理。通过该再加密处理,再加密装置20取得以下的值。
[0112] (rb(a)xor ra(s))xor EKa(s)(K1)
[0113] =(rb(a)xor ra(s))xor(ra(s)xor K1)
[0114] =(rb(a)xor K1)=EKb(a)(K1)
[0115] 然后,再加密装置20将取得的值EKb(a)(K1)作为针对用户终端10-4生成的消息的用户终端10-1和用户终端10-2的访问密钥的一部分,登录到访问密钥存储部208的表T208-1(图19)中(步骤S214)。
[0116] 接着,再加密装置20使用在步骤S213中取得的变换密钥“rb(a)xor ra(s)”,对在步骤S212中取得的值EKa(s)(h(K1))进行再加密处理。通过该再加密处理,再加密装置20取得以下的值。
[0117] (rb(a)xor ra(s))xor EKa(s)(h(K1))
[0118] =(rb(a)xor ra(s))xor(ra(s)xor h(K1))
[0119] =(rb(a)xor h(K1))=EKb(a)(h(K1))
[0120] 然后,再加密装置20将取得的值EKb(a)(h(K1))作为针对用户终端10-4生成的消息的用户终端10-1和用户终端10-2的访问密钥的另一部分,登录到访问密钥存储部208的表T208-1(图19)中(步骤S215)。
[0121] 图9是表示直到用户终端10-1或用户终端10-2分别取得在再加密装置20中登录的加密数据和访问密钥,对上述加密数据进行解密从而取得消息M为止的流程的顺序图。
[0122] 在该情况下,用户终端10-1从再加密装置20的加密数据存储部204的表T204-1(图23)取得加密数据EK1(M),从再加密装置20的访问密钥存储部208的表T208-1(图19)取得访问密钥EKa(s)(K1)和EKa(s)(h(K1))(步骤S216)。
[0123] 接着,用户终端10-1生成用于对加密数据进行解密的密钥加密密钥(步骤S217)。具体地说,用户终端10-1计算将通过密钥存储部104管理的自身的秘密密钥Ka和通过公开ID存储部103对用户终端10-4管理的公开ID“IDs”输入到哈希函数后的哈希值Ka(s)=h(Ka,IDs),由此生成密钥加密密钥。
[0124] 接着,用户终端10-1使用所生成的密钥加密密钥Ka(s),通过流加密对在步骤S216中取得的访问密钥中的EKa(s)(K1)进行解密处理。通过该解密处理,用户终端10-1能够如以下那样解密消息加密密钥K1(步骤S218)。
[0125] DKa(s)(EKa(s)(K1))=ra(s)xor(ra(s)xor K1)=K1
[0126] 接着,用户终端10-1使用在步骤S218中解密后的消息加密密钥K1,通过流加密对在步骤S216中取得的加密数据EK1(M)进行解密处理。通过该解密处理,用户终端10-1能够如以下那样解密消息M(步骤S219)。
[0127] DK1(EK1(M))=M
[0128] 另外,同样地,用户终端10-2从再加密装置20的加密数据存储部204的表T204-1(图23)取得加密数据EK1(M),并从再加密装置20的访问密钥存储部208的表T208-1(图19)取得访问密钥EKb(a)(K1)和EKb(a)(a)(h(K1))(步骤S220)。
[0129] 接着,用户终端10-2生成用于对加密数据进行解密的密钥加密密钥(步骤S221)。具体地说,用户终端10-2计算将通过密钥存储部104管理的自身的秘密密钥Kb和通过公开ID存储部103与用户终端10-1相关地管理的公开ID“IDa”输入到哈希函数所得的哈希值Kb(a)=h(Kb,IDa),由此生成密钥加密密钥。
[0130] 接着,用户终端10-2使用所生成的密钥加密密钥Kb(a),通过流加密对在步骤S220中取得的访问密钥中的EKb(a)(K1)进行解密处理。通过该解密处理,用户终端10-2能够如以下那样解密消息加密密钥K1(步骤S222)。
[0131] DKb(a)(EKb(a)(K1))=rb(a)xor(rb(a)xor K1)=K1
[0132] 接着,用户终端10-2使用在步骤S222中解密后的消息加密密钥K1,通过流加密对在步骤S220中取得的加密数据EK1(M)进行解密处理。通过该解密处理,用户终端10-2能够如以下那样解密消息M(步骤S223)。
[0133] DK1(EK1(M))=M
[0134] 以上,使用图4~图9说明了以下的机制:将用于进行再加密的变换密钥登录到再加密装置20中的机制;用于由用户终端10-4对发送给用户终端10-1的消息进行加密,并通过再加密装置20以用户终端10-1能够解密的形式对其加密数据实施再加密处理,在用户终端10-1中解密该再加密数据从而取得上述消息的机制;用于通过再加密装置20以用户终端10-2能够解密的形式对上述再加密数据进一步实施再加密处理,在用户终端10-2中解密该再加密数据从而取得上述消息的机制。
[0135] 接着,使用图10和图11,说明以下的作为本发明的课题的机制,在使用户B的用户终端10-2对于通过再加密装置20管理的加密数据EK1(M)的访问权失效时,为了防止用户终端10-2的阅览,对再加密装置20管理的加密数据EK1(M)不进行解密地用新的加密密钥进行再加密。另外,使用图12和图13说明接着用户B之后进一步使用户C的用户终端10-3对于用上述新的加密密钥再加密后的数据的访问权失效时,对再加密数据不进行解密地进一步用新的加密密钥进行再加密的机制。
[0136] 图10是表示直到以下处理的流程的顺序图,在消除了用户终端10-2对于在再加密装置20中管理的加密数据EK1(M)的访问权时,由再加密装置20使用生成的加密密钥K2再次对加密数据EK1(M)进行加密来生成双重加密数据,使得该用户终端10-2无法解密上述加密数据EK1(M),对于面向用户终端10-1的访问密钥EKa(s)(K1)和EKa(s)(h(K1))进行变换使得用户终端10-1能够解密该双重加密数据。
[0137] 再加密装置20根据来自用户终端10-1、用户终端10-3以及用户终端10-4中的任意一个用户终端的委托,关于用户终端10-2对加密数据EK1(M)的访问权,删除在访问密钥存储部208的表T208-2(参照图20)中登录的用户终端10-2的访问密钥(步骤S301)。
[0138] 接着,再加密装置20针对上述加密数据EK1(M),通过密钥运算部205动态地生成随机的双重加密密钥K2,并将其保管在双重加密密钥存储部209的表T209(图22)中(步骤S302)。
[0139] 接着,再加密装置20使用在步骤S302中生成的双重加密密钥K2,通过流加密双重地加密在加密数据存储部204的表T204-1(图23)中保管的加密数据EK1(M),计算双重加密数据EK2(EK1(M))。然后,将在加密数据存储部204中保管的加密数据EK1(M)置换为该双重加密数据EK2(EK1(M))(步骤S303)。这时,使用标识符将上述双重加密数据EK2(EK1(M))记录到表T209(图22)和表T204-2(图24)中,使得再加密装置20能够识别用双重加密密钥K2进行了双重加密的情况。在此,在表T204-2中,向双重加密数据EK2(EK1(M))分配了标识符“2”。另外,在表T209中,向双重加密密钥K2也分配了标识符“2”。因此,再加密装置20能够识别双重加密数据EK2(EK1(M))通过双重加密密钥K2进行了双重加密。
[0140] 接着,再加密装置20使用在步骤S302中生成的双重加密密钥K2,对在访问密钥存储部208的表T208-1(图19)中保管的、用户终端10-4和用户终端10-1的访问密钥的单侧即EKa(s)(h(K1))实施再加密处理。此外,此处的再加密处理也简单地为异或运算处理(xor)。通过该再加密处理,再加密装置20得到以下的值。
[0141] EKa(s)(h(K1))xor K2
[0142] =(ra(s)xor h(K1))xor K2
[0143] =ra(s)xor(h(K1)xor K2)
[0144] =EKa(s)(h(K1)xor K2)
[0145] 然后,再加密装置20将在访问密钥存储部208的表T208-1(图19)中保管的用户终端10-4和用户终端10-1的访问密钥的单侧即EKa(s)(h(K1))置换为通过该再加密处理得到的值EKa(s)(h(K1)xor K2)(参照步骤S304、图20的表T208-2)。另外,同样地将用户终端10-1和用户终端10-3的访问密钥的单侧即EKC(a)(h(K1))也置换为使用了双重加密密钥K2的再加密处理值EKC(a)(h(K1)xor K2)(参照图20的表T208-2)。
[0146] 图11是表示直到以下处理为止的流程的顺序图,即用户终端10-1取得在再加密装置20中登录的上述双重加密数据EK2(EK1(M))和访问密钥EKa(s)(K1)和EKa(s)(h(K1)xor K2),对双重加密数据进行解密而取得消息M。
[0147] 在该情况下,用户终端10-1从再加密装置20的加密数据存储部204的表T204-2(图24)取得双重加密数据EK2(EK1(M)),并从再加密装置20的访问密钥存储部208的表T208-2(图20)取得访问密钥EKa(s)(K1)和EKa(s)(h(K1)xor K2)(步骤S305)。
[0148] 接着,用户终端10-1生成用于解密双重加密数据的密钥加密密钥(步骤S306)。具体地说,用户终端10-1计算将通过密钥存储部104管理的自身的秘密密钥Ka和通过公开ID存储部103与用户终端10-4相关地管理的公开ID“IDs”输入到哈希函数所得的哈希值Ka(s)=h(Ka,IDs),由此生成密钥加密密钥。
[0149] 接着,用户终端10-1使用生成的密钥加密密钥Ka(s),通过流加密对在步骤S305中取得的访问密钥中的EKa(s)(K1)进行解密处理。通过该解密处理,用户终端10-1能够如以下那样解密消息加密密钥K1(步骤S307)。
[0150] DKa(s)(EKa(s)(K1))
[0151] =ra(s)xor(ra(s)xor K1)
[0152] =K1
[0153] 接着,用户终端10-1使用在步骤S306中生成的密钥加密密钥Ka(s),通过流加密对在步骤S305中取得的访问密钥中的EKa(s)(h(K1)xor K2)进行解密处理。通过该解密处理,用户终端10-1能够解密以下的值(步骤S308)。
[0154] DKa(s)(EKa(s)(h(K1)xor K2))
[0155] =ra(s)xor(ra(s)xor(h(K1)xor K2))
[0156] =h(K1)xor K2
[0157] 用户终端10-1计算将在步骤S307中解密后的消息加密密钥K1输入到哈希函数h()所得的哈希值h(K1),并计算该哈希值h(K1)和在步骤S308中得到的值h(K1)xor K2的异或(xor),如以下那样取得双重加密密钥K2(步骤S309)。
[0158] h(K1)xor(h(K1)xor K2)=K2
[0159] 然后,用户终端10-1使用在步骤S309中解密后的双重加密密钥K2,通过流加密对在步骤S305中取得的双重加密数据EK2(EK1(M))进行解密处理。通过该解密处理,用户终端10-1能够得到以下的值(步骤S310)。
[0160] DK2(EK2(EK1(M)))=EK1(M)
[0161] 然后,用户终端10-1使用在步骤S307中解密后的消息加密密钥K1,通过流加密对在步骤S310中取得的值EK1(M)进行解密处理。通过该解密处理,用户终端10-1能够如以下那样解密消息M(步骤S311)。
[0162] DK1(EK1(M))=M
[0163] 图12是表示直到以下处理为止的流程的顺序图,即在接着用户终端10-2之后,进而针对用户终端10-3消除了对双重加密数据EK2(EK1(M))的访问权时,由再加密装置20使用再次生成的加密密钥K3对双重加密数据EK2(EK1(M))实施加密处理,使得用户终端10-3无法解密双重加密数据EK2(EK1(M)),并再次变换面向用户终端10-1的访问密钥EKa(s)(K1)和EKa(s)(h(K1)xor K2),使得如果是具有访问权的用户终端10-1则能够解密。
[0164] 在该情况下,再加密装置20根据来自用户终端10-1或用户终端10-4的消除用户终端10-3对双重加密数据EK2(EK1(M))的访问权的委托,删除在访问密钥存储部208中登录的用户终端10-3的访问密钥(参照步骤S401、图21的表T208-3)。
[0165] 接着,再加密装置20针对上述双重加密数据EK2(EK1(M)),通过密钥运算部205动态地生成随机的双重加密密钥K3,将其保管在双重加密密钥存储部209的表T209(图22)中(步骤S402)。
[0166] 接着,再加密装置20使用在步骤S402中生成的双重加密密钥K3通过流加密对在加密数据存储部204的表T204-2(图24)中保管的双重加密数据EK2(EK1(M))双重地进行加密,计算双重加密数据EK3(EK2(EK1(M)))(步骤S403)。
[0167] 接着,再加密装置20根据在加密数据存储部204的表T204-2(图24)中保管的双重加密数据EK2(EK1(M))的标识符,从双重加密密钥存储部209的表T209(图22)取出具有与上述EK2(EK1(M))的标识符相同的标识符的双重加密密钥K2,使用该双重加密密钥K2解密在步骤S403中得到的双重加密数据EK3(EK2(EK1(M)))。通过该解密处理,再加密装置20得到以下的值。
[0168] DK2(EK3(EK2(EK1(M))))=EK3(EK1(M))。
[0169] 然后,将在加密数据存储部204的表T204-2(图24)中保管的双重加密数据EK2(EK1(M))置换为此处得到的值EK3(EK1(M))(步骤S404)。这时,使用标识符将上述双重加密数据EK3(EK1(M))记录到图22的表T209和图25的表T204-3中,使得再加密装置20能够识别上述双重加密数据EK3(EK1(M))通过双重加密密钥K3进行了双重加密。在此,在表T204-3中,向双重加密数据EK3(EK1(M))分配了标识符“3”,并在表T209中向双重加密密钥K3也分配了标识符“3”,因此,再加密装置20能够识别双重加密数据EK3(EK1(M))通过双重加密密钥K3进行了双重加密。
[0170] 接着,再加密装置20使用对在步骤S404中从双重加密密钥存储部209的表T209(图22)取出的双重加密密钥K2和在步骤S402中生成的双重加密密钥K3进行了xor所得的值作为加密密钥,对在访问密钥存储部208的表T208-2(图20)中保管的用户终端10-4和用户终端10-1的访问密钥的单侧即EKa(s)(h(K1)xor K2)实施再加密处理。此外,此处的再加密处理也简单为异或运算处理(xor)。通过该再加密处理,再加密装置20得到以下的值。
[0171] EKa(s)(h(K1)xor K2xor(K2xor K3)
[0172] =(ra(s)xor(h(K1)xor K2))xor(K2xor K3)
[0173] =ra(s)xor(h(K1)xor K3)
[0174] =EKa(s)(h(K1)xor K3)
[0175] 然后,再加密装置20将在访问密钥存储部208的表T208-2(图20)中保管的用户终端10-4和用户终端10-1的访问密钥的单侧即EKa(s)(h(K1)xor K2)置换为通过该再加密处理得到的值EKa(s)(h(K1)xor K3)(参照步骤S405、图21的表T208-3)。
[0176] 图13是表示直到以下处理为止的流程的顺序图,即用户终端10-1取得以用户终端10-2和用户终端10-3无法解密的形式登录在再加密装置20中的上述双重加密数据EK3(EK1(M))和访问密钥EKa(s)(K1)以及EKa(s)(h(K1)xor K3),解密上述双重加密数据而取得消息M。
[0177] 在该情况下,用户终端10-1从再加密装置20的加密数据存储部204的表T204-3(图25)取得双重加密数据EK3(EK1(M)),并从再加密装置20的访问密钥存储部208的表T208-3(图21)取得访问密钥EKa(s)(K1)和EKa(s)(h(K1)xor K3)(步骤S406)。
[0178] 接着,用户终端10-1生成用于解密双重加密数据的密钥加密密钥(步骤S407)。具体地说,用户终端10-1计算将通过密钥存储部104管理的自身的秘密密钥Ka和通过公开ID存储部103与用户终端10-4相关地管理的公开ID“IDs”输入到哈希函数所得的哈希值Ka(s)=h(Ka,IDs),由此生成密钥加密密钥。
[0179] 接着,用户终端10-1使用所生成的密钥加密密钥Ka(s),通过流加密对在步骤S406中取得的访问密钥中的EKa(s)(K1)进行解密处理。通过该解密处理,用户终端10-1能够如以下那样解密消息加密密钥K1(步骤S408)。
[0180] DKa(s)(EKa(s)(K1))
[0181] =ra(s)xor(ra(s)xor K1)
[0182] =K1
[0183] 接着,用户终端10-1使用在步骤S407中生成的密钥加密密钥Ka(s),通过流加密对在步骤S406中取得的访问密钥中的EKa(s)(h(K1)xor K3)进行解密处理。通过该解密处理,用户终端10-1能够解密以下的值(步骤S409)。
[0184] DKa(s)(EKa(s)(h(K1)xor K3))
[0185] =ra(s)xor(ra(s)xor(h(K1)xor K3))
[0186] =h(K1)xor K3
[0187] 接着,用户终端10-1计算将在步骤S408中解密后的消息加密密钥K1输入到哈希函数h()所得的哈希值h(K1),计算该哈希值h(K1)和在步骤S409中得到的值h(K1)xor K3的异或(xor),如以下那样取得双重加密密钥K3(步骤S410)。
[0188] h(K1)xor(h(K1)xor K3)=K3
[0189] 然后,用户终端10-1使用在步骤S410中解密所得的双重加密密钥K3,通过流加密对在步骤S406中取得的双重加密数据EK3(EK1(M))进行解密处理。通过该解密处理,用户终端10-1能够得到以下的值(步骤S411)。
[0190] DK3(EK3(EK1(M)))=EK1(M)
[0191] 然后,用户终端10-1使用在步骤S408中解密所得的消息加密密钥K1,通过流加密对在步骤S411中取得的值EK1(M)进行解密处理。通过该解密处理,用户终端10-1能够如以下那样解密消息M(步骤S412)。
[0192] DK1(EK1(M))=M
[0193] 以上根据图10、图11,说明了以下的作为本发明的课题的方法:在使用户B的用户终端10-2对再加密装置20管理的加密数据EK1(M)的访问权失效时,为了防止用户终端10-2的阅览,对再加密装置20管理的加密数据EK1(M)不进行解密地用新的加密密钥进行再加密,根据图12和图13,说明了以下的方法:接着用户B之后在进一步使用户C的用户终端
10-3对用上述新的加密密钥再加密后的数据的访问权失效时,对再加密数据不进行解密地进而用新的加密密钥进行再加密。
[0194] 以上,具体说明了本发明的实施方式,但本发明并不限于此,在不脱离其主旨的范围内能够进行各种变更。例如,在上述实施方式中,在步骤S208中再加密装置20从用户终端10-4接收到加密数据EK1(M)等时,在再加密装置20中,直接将上述加密数据EK1(M)保管在加密数据存储部204中,但再加密装置20也可以对具有访问权的每个用户终端对该接收到的加密数据EK1(M)进行再加密后保管在加密数据存储部204中。更具体地,使用图14~图17说明该实施方式。
[0195] 图14是表示在与图7~图13的处理不同的实施方式中,针对从用户终端10-4发送到再加密装置20的发给用户终端10-1的加密数据EK1(M)以及对加密密钥进行加密后的数据“EKs(a)(K1)、EKs(a)(h(K1))”,通过再加密装置20面向用户终端10-1对加密数据EK1(M)实施双重加密处理从而生成双重加密数据,并将对加密密钥进行加密所得的数据“EKs(a)(K1)、EKs(a)(h(K1))”变换为面向用户终端10-1的访问密钥以使用户终端10-1能够解密上述双重加密数据为止的处理的流程的顺序图。
[0196] 再加密装置20如果接收到在步骤S208中从用户终端10-4发送来的发给用户终端10-1的加密数据EK1(M)和对加密密钥进行加密后的数据“EKs(a)(K1)、EKs(a)(h(K1))”,则再加密装置20针对上述加密数据EK1(M),通过密钥运算部205动态地生成随机的双重加密密钥K2,并保管在双重加密密钥存储部209的表T209(图22)中(步骤S501)。
[0197] 接着,再加密装置20使用在步骤S501中生成的双重加密密钥K2通过流加密双重地对上述加密数据EK1(M)进行加密,计算双重加密数据EK2(EK1(M))。然后,作为发给用户终端10-1,将该双重加密数据EK2(EK1(M))保管在加密数据存储部204的表T204-4(图28)中(步骤S502)。
[0198] 这时,使用标识符记录到图22的表T209和图28的表T204-4中,使得再加密装置20能够识别出用双重加密密钥K2对双重加密数据EK2(EK1(M))进行了双重加密的情况。在此,在表T204-4中,向双重加密数据EK2(EK1(M))分配了标识符“2”,在表T209中,向双重加密密钥K2也分配标识符“2”,因此,再加密装置20能够识别出用双重加密密钥K2对双重加密数据EK2(EK1(M))双重地进行了加密的情况。
[0199] 接着,再加密装置20从变换密钥存储部203的表T203(图26)取得从用户终端10-4向用户终端10-1的变换密钥“ra(s)xor rs(a)”(步骤S503)。
[0200] 接着,再加密装置20使用在步骤S503中取得的变换密钥“ra(s)xor rs(a)”,对在步骤S208中发送来的数据中的EKs(a)(K1)实施再加密处理。使此处的再加密处理简单地为异或运算处理(xor)。通过该再加密处理,再加密装置20取得以下的值。
[0201] (ra(s)xor rs(a))xor EKs(a)(K1)
[0202] =(ra(s)xor rs(a))xor(rs(a)xor K1)
[0203] =(ra(s)xor K1)=EKa(s)(K1)
[0204] 然后,再加密装置20将取得的值EKa(s)(K1)作为用户终端10-4和用户终端10-1的访问密钥的一部分,登录到访问密钥存储部208的表T208-4(图27)中(步骤S504)。
[0205] 接着,再加密装置20使用在步骤S503中取得的变换密钥“ra(s)xor rs(a)”对在步骤S208中发送来的数据中的EKs(a)(h(K1))进行再加密处理。通过该再加密处理,再加密装置20取得以下的值。
[0206] (ra(s)xor rs(a))xor EKs(a)(h(K1))
[0207] =(ra(s)xor rs(a))xor(rs(a)xor h(K1))
[0208] =(ra(s)xor h(K1))=EKa(s)(h(K1))
[0209] 接着,再加密装置20使用在步骤S501中生成的双重加密密钥K2,对所得到的值EKa(s)(h(K1))实施再加密处理。使此处的再加密处理也简单地为异或运算处理(xor)。通过该再加密处理,再加密装置20得到以下的值。
[0210] EKa(s)(h(K1))xor K2
[0211] =(ra(s)xor h(K1))xor K2
[0212] =ra(s)xor(h(K1)xor K2)
[0213] =EKa(s)(h(K1)xor K2)。
[0214] 然后,再加密装置20将所得到的值EKa(s)(h(K1)xor K2)作为用户终端10-4和用户终端10-1的访问密钥的另一部分,登录到访问密钥存储部208的表T208-4(图27)中(步骤S505)。
[0215] 图15是表示针对在图14的顺序图中在再加密装置20中登录的发给用户终端10-1的双重加密数据EK2(EK1(M))和访问密钥“EKa(s)(K1)、EKa(s)(h(K1)xor K2)”,通过再加密装置20面向用户终端10-2对上述双重加密数据EK2(EK1(M))进一步实施加密处理,将面向用户终端10-1的访问密钥“EKa(s)(K1)、EKa(s)(h(K1)xor K2)”变换为面向用户终端10-2的访问密钥以使用户终端10-2能够解密上述加密处理后的数据为止的处理的流程的顺序图。
[0216] 在该情况下,再加密装置20针对双重加密数据EK2(EK1(M)),通过密钥运算部205动态地生成随机的双重加密密钥K3,并保管在双重加密密钥存储部209的表T209(图29)中(步骤S506)。
[0217] 接着,再加密装置20使用在步骤S506中生成的双重加密密钥K3通过流加密对加密数据存储部204的表T204-4(在图28中保管的发给用户终端10-1的双重加密数据EK2(EK1(M)))双重地进行加密,计算双重加密数据EK3(EK2(EK1(M)))。
[0218] 然后,再加密装置20根据在加密数据存储部204的表T204-4中保管的发给用户终端10-1的双重加密数据EK2(EK1(M))的标识符,从双重加密密钥存储部209的表T209取出具有与上述EK2(EK1(M))的标识符相同的标识符的双重加密密钥K2,使用该双重加密密钥K2解密双重加密数据EK3(EK2(EK1(M)))。通过该解密处理,再加密装置20得到以下的值。
[0219] DK2(EK3(EK2(EK1(M))))=EK3(EK1(M))
[0220] 然后,再加密装置20将该双重加密数据EK3(EK1(M))作为发给用户终端10-1而保管在加密数据存储部204的表T204-4(图28)中(步骤S507)。这时,使用标识符记录到图29的表T209和图28的表T204-4中,以使再加密装置20能够识别出通过双重加密密钥K3将上述双重加密数据EK3(EK1(M))进行了双重加密的情况。在此,在表T204-4中,向双重加密数据EK3(EK1(M))分配了标识符“3”,在表T209中,向双重加密密钥K3也分配了标识符“3”,因此,再加密装置20能够识别出用双重加密密钥K3对双重加密数据EK3(EK1(M))双重地进行了加密的情况。
[0221] 接着,再加密装置20从变换密钥存储部203的表T203(图26),取得针对来自用户终端10-4的消息的从用户终端10-1向用户终端10-2的变换密钥“rb(a)xor ra(s)”(步骤S508)。
[0222] 接着,再加密装置20使用在步骤S508中取得的变换密钥“rb(a)xor ra(s)”,从访问密钥存储部208的表T208-4中对作为用户终端10-1的访问密钥的一部分的EKa(s)(K1)进行再加密处理。此外,在本实施方式中,使该再加密处理简单地为异或运算处理(xor)。通过该再加密处理,再加密装置20取得以下的值。
[0223] (rb(a)xor ra(s))xor EKa(s)(K1)
[0224] =(rb(a)xor ra(s))xor(ra(s)xor K1)
[0225] =(rb(a)xor K1)
[0226] =EKb(a)(K1)
[0227] 然后,再加密装置20将得到的值EKb(a)(K1)作为用户终端10-1和用户终端10-2的访问密钥的一部分,登录到访问密钥存储部208的表T208-4(图27)中(步骤S509)。
[0228] 接着,再加密装置20使用在步骤S508中取得的变换密钥“rb(a)xor ra(s)”,从访问密钥存储部208的表T208-4中对作为用户终端10-1的访问密钥的一部分的EKa(s)(h(K1)xor K2)进行再加密处理。在本实施方式中,使该再加密处理简单地为异或运算处理(xor)。通过该再加密处理,再加密装置20取得以下的值。
[0229] (rb(a)xor ra(s))xor EKa(s)(h(K1)xor K2)
[0230] =(rb(a)xor ra(s))xor(ra(s)xor(h(K1)xor K2))
[0231] =(rb(a)xor(h(K1)xor K2))
[0232] =EKb(a)(h(K1)xor K2)
[0233] 然后,再加密装置20使用将在步骤S507中从双重加密密钥存储部209的表T209取出的双重加密密钥K2和在步骤S506中生成的双重加密密钥K3进行xor运算所得的值作为加密密钥,对得到的值EKb(a)((h(K1)xor K2))进行再加密处理。使此处的再加密处理也简单地为异或运算处理(xor)。通过该再加密处理,再加密装置20取得以下的值。
[0234] EKb(a)(h(K1)xor K2)xor(K2xor K3)
[0235] =(rb(a)xor(h(K1)xor K2))xor(K2xor K3)
[0236] =rb(a)xor(h(K1)xor K3)
[0237] =EKb(a)(h(K1)xor K3)
[0238] 然后,再加密装置20将所得到的值EKb(a)(h(K1)xor K3)作为用户终端10-1和用户终端10-2的访问密钥的一部分,登录到访问密钥存储部208的表T208-4(图27)中(步骤S510)。
[0239] 图16是表示用户终端10-1取得在图14的顺序图中在再加密装置20中登录的面向用户终端10-1的双重加密数据和访问密钥,对上述双重加密数据进行解密从而取得消息M为止的流程的顺序图。
[0240] 在该情况下,用户终端10-1从再加密装置20的加密数据存储部204的表T204-4(图28)取得双重加密数据EK2(EK1(M)),从再加密装置20的访问密钥存储部208的表T208-4(图27)取得访问密钥EKa(s)(K1)和EKa(s)(h(K1)xor K2)(步骤S511)。
[0241] 接着,用户终端10-1生成用于解密双重加密数据的密钥加密密钥(步骤S512)。具体地说,用户终端10-1计算将通过密钥存储部104管理的自身的秘密密钥Kaa、通过公开ID存储部103与用户终端10-4相关地管理的公开ID“IDs”输入到哈希函数所得的哈希值Ka(s)=h(Ka,IDs),由此生成密钥加密密钥。
[0242] 接着,用户终端10-1使用生成的密钥加密密钥Ka(s),通过流加密对在步骤S511中取得的访问密钥中的EKa(s)(K1)进行解密处理。通过该解密处理,用户终端10-1能够如以下那样解密消息加密密钥K1(步骤S513)。
[0243] DKa(s)(EKa(s)(K1))
[0244] =ra(s)xor(ra(s)xor K1)
[0245] =K1
[0246] 接着,用户终端10-1使用在步骤S512中生成的密钥加密密钥Ka(s),通过流加密对在步骤S511中取得的访问密钥中的EKa(s)(h(K1)xor K2)进行解密处理。通过该解密处理,用户终端10-1能够解密以下的值(步骤S514)。
[0247] DKa(s)(EKa(s)(h(K1)xor K2))
[0248] =ra(s)xor(ra(s)xor(h(K1)xor K2))
[0249] =h(K1)xor K2
[0250] 接着,用户终端10-1计算将在步骤S513中解密后的消息加密密钥K1输入到哈希函数h()所得的哈希值h(K1),计算该哈希值h(K1)和在步骤S514中得到的值h(K1)xor K2的异或(xor),如以下那样取得双重加密密钥K2(步骤S515)。
[0251] h(K1)xor(h(K1)xor K2)=K2
[0252] 然后,用户终端10-1使用在步骤S515中解密所得的双重加密密钥K2,通过流加密对在步骤S511中取得的双重加密数据EK2(EK1(M))进行解密处理。通过该解密处理,用户终端10-1能够得到以下的值(步骤S516)。
[0253] DK2(EK2(EK1(M)))=EK1(M)
[0254] 然后,用户终端10-1使用在步骤S513中解密所得的消息加密密钥K1,通过流加密对在步骤S516中取得的值EK1(M)进行解密处理。通过该解密处理,用户终端10-1能够如以下那样解密消息M(步骤S517)。
[0255] DK1(EK1(M))=M
[0256] 图17是表示用户终端10-2取得在图15的顺序图中在再加密装置20中登录的面向用户终端10-2的双重加密数据和访问密钥,解密上述双重加密数据而取得消息M为止的流程的顺序图。
[0257] 在该情况下,用户终端10-2从再加密装置20的加密数据存储部204的表T204-4(图28)取得双重加密数据EK3(EK1(M)),从再加密装置20的访问密钥存储部208的表T208-4(图27)取得访问密钥EKb(a)(K1)和EKb(a)(h(K1)xor K3)(步骤S518)。
[0258] 接着,用户终端10-2生成用于解密双重加密数据的密钥加密密钥(步骤S519)。具体地说,用户终端10-1计算将通过密钥存储部104管理的自身的秘密密钥Kbb、通过公开ID存储部103对于用户终端10-1管理的公开ID“IDa”输入到哈希函数所得的哈希值Kb(a)=h(Kb,IDa),由此生成密钥加密密钥。
[0259] 接着,用户终端10-2使用所生成的密钥加密密钥Kb(a),通过流加密对在步骤S518中取得的访问密钥中的EKb(a)(K1)进行解密处理。通过该解密处理,用户终端10-2能够如以下那样解密消息加密密钥K1(步骤S520)。
[0260] DKb(a)(EKb(a)(K1))
[0261] =rb(a)xor(rb(a)xor K1)
[0262] =K1
[0263] 接着,用户终端10-2使用在步骤S519中生成的密钥加密密钥Kb(a),通过流加密对在步骤S518中取得的访问密钥中的EKb(a)(h(K1)xor K3)进行解密处理。通过该解密处理,用户终端10-2能够解密以下的值(步骤S521)。
[0264] DKb(a)(EKb(a)(h(K1)xor K3))
[0265] =rb(a)xor(rb(a)xor(h(K1)xor K3))
[0266] =h(K1)xor K3
[0267] 接着,用户终端10-2计算将在步骤S520中解密所得的消息加密密钥K1输入到哈希函数h()所得的哈希值h(K1),计算该哈希值h(K1)和在步骤S521中得到的值h(K1)xor K3的异或(xor),如以下那样取得双重加密密钥K3(步骤S522)。
[0268] h(K1)xor(h(K1)xor K3)=K3
[0269] 然后,用户终端10-2使用在步骤S522中解密所得的双重加密密钥K3,通过流加密对在步骤S518中取得的双重加密数据EK3(EK1(M))进行解密处理。通过该解密处理,用户终端10-2能够得到以下的值(步骤S523)。
[0270] DK3(EK3(EK1(M)))=EK1(M)
[0271] 然后,用户终端10-2使用在步骤S520中解密所得的消息加密密钥K1,通过流加密对在步骤S523中取得的值EK1(M)进行解密处理。通过该解密处理,用户终端10-2能够如以下那样解密消息M(步骤S524)。
[0272] DK1(EK1(M))=M
[0273] 以上具体说明了用于实施本发明的最优方式等,但本发明并不限于此,在不脱离其主旨的范围内能够进行各种变更。
[0274] 根据这样的本实施方式,在通过预定装置保存在多个用户之间共享的加密数据,并进行每个用户的阅览权限管理的环境下,能够确实地避免包括装置管理者在内的无权限者对加密数据的阅览。
[0275] 根据本说明书的记载,至少了解以下的情况。即,在本实施方式的再加密方法中,可以使上述再加密装置还执行以下的处理:伴随着与特定用户有关的阅览权限的失效事件,使用通过该再加密装置生成的第二加密密钥,双重地对上述第一加密数据进行加密的处理;能够用当前时刻具有阅览权限的用户的解密密钥进行解密地对上述第二加密数据进行再加密的处理;用对上述第三加密数据进行再加密所得的值进行上述第二加密密钥的再加密的处理,并且可以使上述当前时刻具有阅览权限的用户的用户终端还执行以下的处理:从上述再加密装置取得上述双重地加密后的第一加密数据、上述再加密后的第二加密数据、通过上述再加密后的第二加密数据再加密所得的第二加密密钥,通过该用户终端所保存的解密密钥,从上述再加密后的第二加密数据解密上述第一加密密钥、以及从上述再加密后的第二加密密钥解密上述第二加密密钥,使用得到的第一加密密钥和第二加密密钥,对上述双重地加密后的第一加密数据进行解密从而输出上述明文的处理。
[0276] 由此,能够确实地避免以下的情况:即针对发生了当初具有阅览权限的某个用户失去了其阅览权限的状况的情况,如现有技术那样,如果该用户继续保持加密数据解密用解密密钥,就允许从该用户对加密数据的阅览。
[0277] 另外,在本实施方式的再加密方法中,可以使上述再加密装置执行以下的处理:从上述数据制作者的用户终端接收各上述第一加密数据、第二加密数据以及第三加密数据,使用通过该再加密装置生成的第二加密密钥,双重地对上述第一加密数据进行加密的处理;能够用具有上述明文的阅览权限的用户的解密密钥进行解密地对上述第二加密数据进行再加密的处理;用对上述第三加密数据进行再加密所得的值进行上述第二加密密钥的再加密的处理,并且可以使上述具有阅览权限的用户的用户终端执行以下的处理:从上述再加密装置取得上述双重地加密后的第一加密数据、上述再加密后的第二加密数据、上述再加密后的第二加密密钥,通过该用户终端保存的解密密钥,从上述再加密后的第二加密数据解密上述第一加密密钥以及从上述再加密后的第二加密密钥解密上述第二加密密钥,使用得到的第一加密密钥和第二加密密钥,对上述双重地加密后的第一加密数据进行解密从而输出上述明文的处理。
[0278] 由此,例如能够应对安全地管理电子邮件的状况等,针对每个用户将电子邮件加密来进行管理,另一方面与本申请的权利要求1所记载的发明的情况相比,能够降低再加密的工时来使系统运转。
[0279] 另外,在本实施方式的再加密方法中,可以使上述用户终端执行以下的处理:通过数据制作者的第一加密密钥加密明文来生成第一加密数据,通过可换性的加密算法分别对上述第一加密密钥和从该第一加密密钥通过预定算法生成的预定数据进行加密来生成第二加密数据和第三加密数据,向再加密装置发送上述生成的各第一加密数据、第二加密数据以及第三加密数据。
[0280] 由此,能够在用户终端中生成各加密数据,并将其存储在再加密装置中。
[0281] 另外,在本实施方式的再加密系统的上述再加密装置中,可以使上述运算装置还执行以下的处理:伴随着与特定用户有关的阅览权限的失效事件,使用通过该再加密装置生成的第二加密密钥,双重地对上述第一加密数据进行加密的处理;能够用当前时刻具有阅览权限的用户的解密密钥进行解密地对上述第二加密数据进行再加密的处理;用对上述第三加密数据进行再加密所得的值进行上述第二加密密钥的再加密的处理,在上述当前时刻具有阅览权限的用户的用户终端中,可以使算装置还执行以下的处理:从上述再加密装置取得上述双重地加密后的第一加密数据、上述再加密后的第二加密数据、通过上述再加密后的第二加密数据再加密所得的第二加密密钥,通过该用户终端所保存的解密密钥,从上述再加密后的第二加密数据解密上述第一加密密钥以及从上述再加密后的第二加密密钥解密上述第二加密密钥,使用所得到的第一加密密钥和第二加密密钥,对上述双重地加密后的第一加密数据进行解密从而输出上述明文的处理。
[0282] 另外,在本实施方式的再加密系统的上述再加密装置中,可以使上述运算装置还执行以下的处理:从上述数据制作者的用户终端接收各上述第一加密数据、第二加密数据以及第三加密数据,使用通过该再加密装置生成的第二加密密钥,双重地对上述第一加密数据进行加密的处理;能够用具有上述明文的阅览权限的用户的解密密钥进行解密地对上述第二加密数据进行再加密的处理;用对上述第三加密数据进行再加密所得的值进行上述第二加密密钥的再加密的处理,在上述具有阅览权限的用户的用户终端中,可以使上述运算装置执行以下的处理:从上述再加密装置取得上述双重地加密后的第一加密数据、上述再加密后的第二加密数据、上述再加密后的第二加密密钥,通过该用户终端保存的解密密钥,从上述再加密后的第二加密数据解密上述第一加密密钥以及从上述再加密后的第二加密密钥解密上述第二加密密钥,使用所得到的第一加密密钥和第二加密密钥,对上述双重地加密后的第一加密数据进行解密从而输出上述明文的处理。
[0283] 另外,在本实施方式的再加密系统的上述用户终端中,可以使上述运算装置执行以下的处理:通过数据制作者的第一加密密钥加密明文从而生成第一加密数据,通过可换性的加密算法分别对上述第一加密密钥和从该第一加密密钥通过预定算法生成的预定数据进行加密从而生成第二加密数据和第三加密数据,向再加密装置发送上述生成的各第一加密数据、第二加密数据以及第三加密数据。
[0284] 附图标记说明
[0285] 1:再加密系统;10:用户终端;11:存储装置;12:程序;13:存储器;14:运算装置;15:输入装置;16:输出装置;17:通信装置;20:再加密装置;21:存储装置;22:程序;23:存储器;24:运算装置;25:通信装置;30:网络;101:秘密密钥生成部;102:密钥运算部;103:公开ID存储部;104:密钥存储部(秘密密钥);105:信息生成部;106:加密处理部;107:加密数据收发部;108:一次存储部;109:信息显示部;201:加密数据收发部;202:
收发者控制部;203:变换密钥存储部;204:加密数据存储部;205:密钥运算部;206:再加密处理部;207:一次存储部;208:访问密钥存储部;209:双重加密密钥存储部。

当前第1页 第1页 第2页 第3页
相关技术
加密装置相关技术
加密方法相关技术
坂崎尚生发明人的其他相关专利技术