认证系统和远隔分散保存系统的制作方法

文档序号:6498349阅读:162来源:国知局
专利名称:认证系统和远隔分散保存系统的制作方法
技术领域
本发明涉及对与认证有关的信息的泄漏保护强的认证系统和可以利用该认证系统安全地保存数据的远隔分散保存系统。
本申请对2003年10月28日提出申请的日本专利特愿2003-367527号主张优先权,这里援引其内容。
背景技术
以往,作为在用户的终端装置和服务器之间进行认证的方法,已知将用户ID和仅用户知道的密码从终端装置输入,如果与存储在服务器侧的信息一致,则认证为合法的用户的方法。
但是,由于该方法在终端装置和服务器之间的通信路径中,非法地盗取这些信息时,简单地允许非法利用,所以一般利用SSL(文献1)、TLS(文献2)、SSH(文献3)等加密技术来进行信息的发送接收。这是使用密码和秘密的值和被公开的值来进行认证的方法。
(文献1)A.Frier,P.Karlton,and P.Kocher.The SSL 3.0 Protocol.NetscapeCommunications Corp.,1996,http//wp.netscape.Com/eng/ss13/(文献2)IETF(Internet Engineering Task Force).Transport Layer security(tls)Charter.http//www.ietf.org/html.charters.tls-charter.html(文献3)IETF(Internet Engineering Task Force).Secure Shell(secsh)Charter.http//www.ietf.org/html.charters/secsh-charter.html/但是,非专利文献1~3所示的方法在从用户的终端装置侧泄漏了用密码加密的信息或者从服务器侧泄漏了密码认证数据的情况下,存在可通过离线的解析作业求出密码的问题。对于服务器以离线方式进行反复输入密码的方法,虽然可以采取根据输错密码的次数拒绝访问等对策,但是存在不能对离线的解析作业采取防止对策的问题。而且,在密码泄漏的情况下,存在可用该密码注册的系统内保存的数据也泄漏的问题。

发明内容
本发明的目的是提供对信息的泄漏保护强的、可安全地进行密码密钥的交换的认证系统本发明的目的是提供可以利用本发明的认证系统,从而安全地保存数据的远隔分散保存系统。
本发明的要点是一种认证系统,在终端装置和服务器之间进行相互认证,所述终端装置具有数据扩展部件,根据用户预先决定的密码,求所述密码认证数据H和所述认证信息P’;存储部件,预先存储由所述数据扩展部件求出的认证信息P’;结合部件,将从所述存储部件读出的认证信息P’和认证时输入的密码作为输入,通过规定的计算式求值P;掩码运算部件,将所述值P和在内部产生的随机数作为输入,通过规定的计算式求值Y1,发送到所述服务器;主密钥产生部件,将所述值P和在内部产生的随机数和从所述服务器接收的值Y2作为输入,通过规定的计算式求值MK;以及认证结果判断部件,将所述值MK作为输入,通过规定的计算式求值V1,发送到服务器,同时比较核对从所述服务器接收的值V2和将所述值MK作为输入而通过规定的计算式计算的值V2,在一致的情况下认证服务器,所述服务器具有存储部件,预先存储由所述数据扩展部件求出的密码认证数据H;掩码运算部件,将从所述存储部件读出的密码认证数据H和在内部产生的随机数作为输入,通过规定的计算式求值Y2,发送到所述终端装置;主密钥产生部件,将所述密码认证数据H和在内部产生的随机数和从所述终端装置接收的值Y1作为输入,通过规定的计算式求值MK;以及认证结果判断部件,将所述值MK作为输入,通过规定的计算式求值V2,发送到终端装置,同时比较核对从所述终端装置接收的值V1和将所述值MK作为输入而通过规定的计算式计算的值V1,在一致的情况下认证终端装置。
本发明的要点是一种认证程序,在终端装置和服务器之间进行相互地认证的认证系统中的终端装置上工作,其特征在于,该认证程序使计算机执行以下处理数据扩展处理,该处理根据用户预先决定的密码,求所述认证信息P’;存储处理,预先存储由所述数据扩展处理求出的认证信息P’;结合处理,将通过所述存储处理存储的认证信息P’和认证时输入的密码作为输入,通过规定的计算式求值P;掩码运算处理,将所述值P和在内部产生的随机数作为输入,通过规定的计算式求值Y1,发送到所述服务器;主密钥产生处理,将所述值P和在内部产生的随机数和从所述服务器接收的值Y2作为输入,通过规定的计算式求值MK;以及认证结果判断处理,将所述值MK作为输入,通过规定的计算式求值V1,发送到服务器,同时比较核对从所述服务器接收的值V2和将所述值MK作为输入而通过规定的计算式计算的值V2,在一致的情况下认证服务器。
本发明的要点是一种认证程序,在终端装置和服务器之间进行相互地认证的认证系统中的服务器上工作,其特征在于,该认证程序使计算机执行以下处理存储处理,预先存储密码认证数据H;掩码运算处理,将通过所述存储处理读出的密码认证数据H和在内部产生的随机数作为输入,通过规定的计算式求值Y2,发送到所述终端装置;主密钥产生处理,将所述密码认证数据H和在内部产生的随机数和从所述终端装置接收的值Y1作为输入,通过规定的计算式求值MK;以及执行认证结果判断处理,将所述值MK作为输入,通过规定的计算式求值V2,发送到终端装置,同时比较核对从所述终端装置接收的值V1和将所述值MK作为输入而通过规定的计算式计算的值V1,在一致的情况下认证终端装置。
本发明的要点是一种认证系统,在终端装置和服务器之间进行相互认证,所述终端装置包括数据扩展部件,根据用户预先决定的密码,求服务器注册用的密码认证数据H和用户保存用的认证信息P’;存储部件,预先存储由所述数据扩展部件求出的认证信息P’和RSA密钥产生部件求出的RSA公开密钥(N,e);结合部件,将从所述存储部件读出的认证信息P’和认证时输入的密码作为输入,通过规定的计算式求值W;掩码运算部件,将所述值W和从所述存储部件中读出的RSA公开密钥(N,e)和在内部产生的随机数T作为输入,通过规定的计算式求值Z,发送到所述服务器;认证结果判断部件,比较核对从所述服务器接收的值V2和将所述随机数T作为输入而通过规定的计算式计算的值V2,在一致的情况下认证服务器;以及验证符产生部件,将所述随机数T作为输入,通过规定的计算式求V1,发送到所述服务器,所述服务器包括RSA密钥产生部件,求所述RSA公开密钥(N,e)和所述RSA秘密密钥(N,d);存储部件,预先存储由所述RSA密钥产生部件求出的RSA秘密密钥(N,d)和由所述数据扩展部件求出的密码认证数据H;主密钥产生部件,将从所述存储部件读出的RSA秘密密钥(N,d)和密码认证数据H和从所述终端装置接收的值Z作为输入,通过规定的计算式求值T;验证符产生部件,将所述值T作为输入,通过规定的计算式求值V2,发送到所述终端装置;以及认证结果判断部件,比较核对从所述终端装置接收的值V1和将所述值T作为输入而通过规定的计算式计算的值V1,在一致的情况下认证终端装置。
本发明的要点是一种认证程序,在终端装置和服务器之间进行相互地认证的认证系统中的终端装置上工作,其特征在于,该认证程序使计算机执行以下处理数据扩展处理,该处理根据用户预先决定的密码,求服务器注册用的密码认证数据H和用户保存用的认证信息P’;存储处理,预先存储通过所述数据扩展处理求出的认证信息P’和通过RSA密钥产生处理求出的RSA公开密钥(N,e);结合处理,将通过所述存储处理存储的认证信息P’和认证时输入的密码作为输入,通过规定的计算式求值W;掩码运算处理,将所述值W和通过所述存储处理预先存储的RSA公开密钥(N,e)和在内部产生的随机数T作为输入,过规定的计算式求值Z,发送到所述服务器;认证结果判断处理,比较核对从所述服务器接收的值V2和将所述随机数T作为输入而通过规定的计算式计算的值V2,在一致的情况下认证服务器;以及验证符产生处理,将所述随机数T作为输入,通过规定的计算式求值V1,发送到所述服务器。
本发明的要点是一种认证程序,在终端装置和服务器之间进行相互地认证的认证系统中的服务器上工作,其特征在于,该认证程序使计算机执行以下处理求所述RSA公开密钥(N,e)和RSA秘密密钥(N,d)的RSA密钥产生处理;存储处理,预先存储通过所述RSA密钥产生处理求出的RSA秘密密钥(N,d)和密码认证数据H;主密钥产生处理,将通过所述存储处理存储的RSA秘密密钥(N,d)和密码认证数据H和从所述终端装置接收的值Z作为输入,通过规定的计算式求值T;验证符产生处理,将所述值T作为输入,通过规定的计算式求值V2,发送到所述终端装置;以及认证结果判断处理,比较核对从所述终端装置接收的值V1和将所述值T作为输入而通过规定的计算式计算的值V1,在一致的情况下认证终端装置。
本发明的要点是一种远隔分散保存系统,在终端装置和多个服务器之间进行相互认证,将所述终端装置内的保存对象的数据分散保存在所述服务器内,其特征在于,所述终端装置包括数据扩展部件,根据用户预先确定的密码,求服务器注册用的密码认证数据H和用户保存用的认证信息P’;存储部件,预先存储由所述数据扩展部件求出的认证信息P’;结合部件,将从所述存储部件中读出的认证信息P’和认证时被输入的密码作为输入,通过规定的计算式求值P;掩码运算部件,将所述值P和在内部产生的随机数作为输入,通过规定的计算式求值Y1,发送到所述服务器;主密钥产生部件,将所述值P和在内部产生的随机数和从所述服务器接收到的值Y2作为输入,通过规定的计算式求值MK;认证结果判断部件,将所述值MK作为输入,通过规定的计算式求值V1,发送到服务器,同时比较核对从所述服务器接收到的值V2和值V1,并在一致的情况下认证服务器;通话密钥产生部件,在进行了服务器的认证的情况下,仅生成服务器的数量的通话密钥SK;分割部件,将所述保存对象的数据分割,得到与认证的服务器的数量相同数量的分割数据;数据保存部件,用与保存目的地的服务器共用的所述通话密钥SK,对各个所述分割数据和识别保存对象的数据的识别信息进行加密,从而对各服务器发送;以及数据还原部件,从保存了分割数据的各服务器接收分割数据,并还原所述保存对象的数据,所述服务器包括存储部件,预先存储通过所述数据扩展部件求出的密码认证数据H;掩码运算部件,将从所述存储部件读出的密码认证数据H和在内部产生的随机数作为输入,通过规定的计算式求值Y2,发送到所述终端装置;主密钥产生部件,将所述密码认证数据H和在内部产生的随机数和从所述终端装置接收的值Y1作为输入,通过规定的计算式求值MK;认证结果判断部件,将所述值MK作为输入,通过规定的计算式求值V2,发送到终端装置,同时比较核对从所述终端装置接收的值V1和值V2,并在一致的情况下认证终端装置;通话密钥产生部件,在进行了终端装置的认证的情况下,产生通话密钥;数据接收部件,接收从终端装置接收的分割数据;数据存储部件,存储所述分割数据;以及数据发送部件,读出被保存在所述数据存储部件中的分割数据并发送到终端装置。
本发明的要点是一种远隔分散保存程序,在终端装置和多个服务器之间进行相互认证,将所述终端装置内的保存对象的数据分散保存在所述服务器内的远隔分散保存系统中的终端装置上进行动作,其特征在于,该程序使计算机执行以下处理数据扩展处理,根据用户预先确定的密码,求服务器注册用的密码认证数据H和用户保存用的认证信息P’;存储处理,预先存储由所述数据扩展处理求出的认证信息P’;结合处理,将从所述存储处理中读出的认证信息P’和认证时被输入的密码作为输入,通过规定的计算式求值P;掩码运算处理,将所述值P和在内部产生的随机数作为输入,通过规定的计算式求值Y1,发送到所述服务器;主密钥产生处理,将所述值P和在内部产生的随机数和从所述服务器接收到的值Y2作为输入,通过规定的计算式求值MK;认证结果判断处理,将所述值MK作为输入,通过规定的计算式求值V1,发送到服务器,同时比较核对从所述服务器接收到的值V2和值V1,并在一致的情况下认证服务器;通话密钥产生处理,在进行了服务器的认证的情况下,仅生成服务器的数量的通话密钥SK;分割处理,将所述保存对象的数据分割,得到与认证的服务器的数量相同数量的分割数据;数据保存处理,用与保存目的地的服务器共用的所述通话密钥SK,对各个所述分割数据和识别保存对象的数据的识别信息进行加密,从而对各服务器发送;以及数据还原处理,从保存了分割数据的各服务器接收分割数据,并还原所述保存对象的数据。
本发明的要点是一种远隔分散保存程序,在终端装置和多个服务器之间进行相互认证,将所述终端装置内的保存对象的数据分散保存在所述服务器内的远隔分散保存系统中的服务器上进行动作,其特征在于,该程序使计算机执行以下处理存储处理,预先存储通过所述数据扩展处理求出的密码认证数据H;掩码运算处理,将从所述存储处理读出的密码认证数据H和在内部产生的随机数作为输入,通过规定的计算式求值Y2,发送到所述终端装置;主密钥产生处理,将所述密码认证数据H和在内部产生的随机数和从所述终端装置接收的值Y1作为输入,通过规定的计算式求值MK;认证结果判断处理,将所述值MK作为输入,通过规定的计算式求值V2,发送到终端装置,同时比较核对从所述终端装置接收的值V1和值V2,并在一致的情况下认证终端装置;通话密钥产生处理,在进行了终端装置的认证的情况下,产生通话密钥;数据接收处理,接收从终端装置接收的分割数据;数据存储处理,存储所述分割数据;以及数据发送处理,读出在所述数据存储处理中被保存的分割数据并发送到终端装置。


图1是表示本发明的一个实施方式中的终端装置的结构的方框图。
图2是表示图1所示的数据扩展器11的结构的方框图。
图3是表示图1所示的数据扩展器11的结构的方框图。
图4是表示图1所示的数据扩展器11的结构的方框图。
图5是表示进行相互认证和密码交换的装置的结构的方框图。
图6是表示图5所示的终端装置1的结构的方框图。
图7是表示图5所示的服务器2的结构的方框图。
图8是表示图1所示的数据扩展器11的结构的方框图。
图9是表示密码认证数据更新-1的终端装置1的结构的方框图。
图10是表示密码认证数据更新-1的服务器2的结构的方框图。
图11是表示密码认证数据更新-2的终端装置1的结构的方框图。
图12是表示密码认证数据更新-2的服务器2的结构的方框图。
图13是表示图1所示的数据扩展器11的结构的方框图。
图14是表示图1所示的数据扩展器11的结构的方框图。
图15是表示利用安全的通信进行初始化处理的情况下的服务器2的结构的方框图。
图16是表示利用非安全的通信进行初始化处理的情况下的终端装置1和服务器2的结构的方框图。
图17是表示图5所示的终端装置1的结构的方框图。
图18是表示图5所示的服务器2的结构的方框图。
图19是表示利用主密钥进行更新处理的情况下的终端装置1的结构的方框图。
图20是表示利用主密钥进行更新处理的情况下的服务器2的结构的方框图。
图21是表示在终端不保存分散数据的情况下的远隔分散保存装置5的结构的方框图。
图22是表示图21所示的数据分割器51的结构的方框图。
图23是表示在终端不保存数据的情况下的远隔分散保存装置5的结构的方框图。
图24是表示图23所示的数据还原器54的结构的方框图。
图25是表示在终端也保存分散数据的情况下的远隔分散保存装置5的结构的方框图。
图26是表示图25所示的数据分割器51的结构的方框图。
图27是表示在终端也保存分散数据的情况下的远隔分散保存装置5的结构的方框图。
图28是表示图27所示的数据还原器54的结构的方框图。
具体实施例方式
<第1实施例>
以下,参照附图,对本发明的最佳实施例进行说明。但是,本发明不限定于以下的各实施例,例如也可以使这些实施例的结构要素之间进行适当的组合。
该认证系统是用于用户的终端装置和服务器的认证装置一边相互认证,一边确保相同的通话密钥的系统。
这里,先对在以下的说明中使用的记号进行说明。
p、q是质数,具有q|p-1的关系。q|p-1的意思是q是可以除尽p-1的值。而且,g、h是modp上的位数q的有限体(群)G=}{gjmodp0≤j<q}的生成元(即使是椭圆曲线上的群也可以是相同的结构)。这里,“gjmodp”的意思是是在法指数运算中,将g进行j次方后的值除以p的余数(Remainder)。这里,g为(1<g<p-1,gq=1modp,gj≠1modp(0<j<q)),h为h=gamodp。即,p、q表示运算体系(素体的特征值)。例如,在H=hxmodp(0<x<q)中,x为密码信息(即,H被提供时,求x=loghH在数学上是很难的问题;对于H的生成元h的离散对数问题)。而且,由随机数产生器产生的随机数非人为地产生R∈(Z/qZ)*。这里,(Z/qZ)*表示{1,2,…,q}的集合。而且,N表示密码的长度。而且,‖是连结(concatenation)值的意思。
<终端装置的初始化>
用户在要对服务器进行个人注册时,进行自身的终端装置的初始化。图1是表示用户的终端装置的初始化处理的结构的方框图。初始化是用户在输入密码时,通过数据扩展器11产生服务器注册用的密码认证数据H和用户保存用的值P’,密码认证数据H被交接给服务器,值P’保存到存储器12。这里,数据扩展器11可以由多项式、多项式和散列函数、散列函数、伪随机数产生器等构成。
(1)利用多项式的(其1)开始,参照图2,对利用多项式的情况(其1)进行说明。
首先,通过多项式产生器111随机地产生多项式。这时,注册的服务器的数量为一个时,产生以x为变量的1次多项式(p’(x)=α1·x modq),在服务器的数量为n个时,产生n次多项式(p’(x)=α1·x+α2·x2+…+αn·xnmodq)。这里,α从(Z/qZ)*被非人为地选择。例如,在一个服务器的情况下,p’(x)为p’(x)=α1·x modq。这里,用户输入自己记住的密码(例如“Pooh93”)。在输入了多项式和用户的密码后,密码认证数据产生器112产生密码认证数据H。密码认证数据H例如可以通过H=hp’(1)+Pooh93modp来计算。这里,p’(1)是在p’(x)中取代x而输入服务器的ID(例如“1”)而计算的值。密码认证数据H需要用户直接传递给服务器,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置的内部存在的存储器12存储并保存从多项式产生器产生的多项式P’=p’(x)。
(2)利用多项式的情况(其2)接着,参照图2,对利用多项式的情况(其2)进行说明。
首先,通过多项式产生器111随机地产生多项式。这时,注册的服务器的数量为一个时,产生以x为变量的1次多项式(p’(x)=α1·x modq),在服务器的数量为n个时,产生n次多项式(p’(x)=α1·x+α2·x2+…+αn·xnmodq)。这里,α从(Z/qZ)*被非人为地选择。例如,在一个服务器的情况下,p’(x)为p’(x)=α1·x modq。这里,用户输入自己记住的密码(例如“Pooh93”)。在输入了多项式和用户的密码后,密码认证数据产生器112产生密码认证数据H。密码认证数据H例如可以通过H=p(1)=p’(1)+Pooh93modq来计算。这里,p’(1)是在p’(x)中取代x而输入服务器的ID(例如“1”)而计算的值。密码认证数据H需要用户直接传递给服务器,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置的内部存在的存储器12存储并保存从多项式产生器产生的多项式P’=p’(x)。
(3)利用多项式和散列函数的情况(其1)接着,参照图8,对利用多项式和散列函数的情况(其1)进行说明。
首先,通过多项式产生器119随机地产生多项式。这时,注册的服务器的数量为一个时,产生以x为变量的1次多项式(p’(x)=α1·x modN),在服务器的数量为n个时,产生n次多项式(p’(x)=α1·x+α2·x2+…+αn·xnmodN)。这里,α从(Z/qZ)*被非人为地选择。例如,在一个服务器的情况下,p’(x)为p’(x)=α1·x modN。然后,通过散列函数产生器120随机地产生散列函数HASH。HASH是单方向的散列函数。这里,用户输入自己记住的密码(例如“Pooh93”)。在输入了多项式和散列函数和用户的密码后,密码认证数据产生器121产生密码认证数据H。密码认证数据H例如可以通过H=hp(1)modp来计算。这里,p(1)通过p(1)=p’(1)+HASH(Pooh93‖ID(U)‖ID(S))modN来计算。这里,ID(U)和ID(S)分别表示用户和服务器的ID。这里,p’(1)是在p’(x)中取代x而输入“1”而计算的值。
例如,在注册的服务器的数量为n的情况下,密码认证数据产生器121对第i个服务器产生密码认证数据H。密码认证数据H例如通过H=hp(i)modp来计算。这里,p(i)通过p(i)=p’(i)+HASH(Pooh93‖ID(U)‖ID(S))modN来计算。这里,ID(U)和ID(S)分别表示用户和第i个服务器的ID。这里,p’(i)是在n次多项式p’(x)中取代x而输入“i”而计算的值。
密码认证数据H需要用户直接传递给服务器,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置的内部存在的存储器12将从多项式产生器产生的多项式p’(x)和从散列函数产生器产生的散列函数HASH一起作为P’=(p’(x),HASH)存储并保存。
(4)利用多项式和散列函数的情况(其2)接着,参照图8,对利用多项式和散列函数的情况(其2)进行说明。
首先,通过多项式产生器119随机地产生多项式。这时,注册的服务器的数量为一个时,产生以x为变量的1次多项式(p’(x)=α1·x modN),在服务器的数量为n个时,产生n次多项式(p’(x)=α1·x+α2·x2+…+αn·xnmodN)。这里,α从(Z/qZ)*被非人为地选择。例如,在一个服务器的情况下,p’(x)为p’(x)=α1·x modN。然后,通过散列函数产生器120随机地产生散列函数HASH。HASH是单方向的散列函数。这里,用户输入自己记住的密码(例如“Pooh93”)。在输入了多项式和散列函数和用户的密码后,密码认证数据产生器121产生密码认证数据H。密码认证数据H例如可以通过H=p(1)=p’(1)+HASH(Pooh93‖ID(U)‖ID(S))modN来计算。这里,ID(U)和ID(S)分别表示用户和服务器的ID。这里,p’(1)是在p’(x)中取代x而输入“1”而计算的值。
例如,在注册的服务器的数量为n的情况下,密码认证数据产生器121对第i个服务器产生密码认证数据H。密码认证数据H例如通过H=p(i)=p’(i)+HASH(Pooh93‖ID(U)‖ID(S))modN来计算。这里,ID(U)和ID(S)分别表示用户和第i个服务器的ID。这里,p’(i)是在n次多项式p’(x)中取代x而输入“i”而计算的值。
密码认证数据H需要用户直接传递给服务器,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置的内部存在的存储器12将从多项式产生器产生的多项式p’(x)和从散列函数产生器产生的散列函数HASH一起作为P’=(p’(x),HASH)存储并保存。
(5)利用散列函数的情况(其1)接着,参照图3,对利用散列函数的情况(其1)进行说明。
首先,通过散列函数产生器113随机地产生散列函数HASH。然后秘密值产生器114也随机地产生秘密值S。这里,用户输入自己记住的密码(例如“Pooh93”)。在输入了散列函数HASH和秘密值S和用户的密码后,密码认证数据产生器115产生密码认证数据H。密码认证数据H例如可以通过H=hHASH(S‖Pooh93‖ID(U)b(S))modp来计算。这里,ID(U)和ID(S)分别表示用户和服务器的ID。密码认证数据H需要用户直接传递给服务器,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置的内部存在的存储器12将从散列函数产生器113和秘密值产生器114产生的散列函数HASH和秘密值S一起作为P’=(S,HASH)存储并保存。
(6)利用散列函数的情况(其2)接着,参照图3,对利用散列函数的情况(其2)进行说明。
首先,通过散列函数产生器113随机地产生散列函数HASH。然后秘密值产生器114也随机地产生秘密值S。这里,用户输入自己记住的密码(例如“Pooh93”)。在输入了散列函数HASH和秘密值S和用户的密码后,密码认证数据产生器115产生密码认证数据H。密码认证数据H例如可以通过H=HASH(S‖Pooh93‖ID(U)‖ID(S))modq来计算。这里,ID(U)和ID(S)分别表示用户和服务器的ID。密码认证数据H需要用户直接传递给服务器,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置的内部存在的存储器12将从散列函数产生器113和秘密值产生器114产生的散列函数HASH和秘密值S一起作为P’=(S,HASH)存储并保存。
(7)利用伪随机数产生器的情况(其1)接着,参照图4,对利用伪随机数产生器的情况(其1)进行说明。
首先,通过伪随机数产生器116随机地产生伪随机数PRNG。然后秘密值产生器117也随机地产生秘密值S。这里,用户输入自己记住的密码(例如“Pooh93”)。在接受了伪随机数PRNG和秘密值S和用户的密码被输入后,密码认证数据产生器118产生密码认证数据H。密码认证数据H例如可以通过H=hPRNG(S‖Pooh93‖ID(U)‖ID(S))modp来计算。这里,ID(U)和ID(S)分别表示用户和服务器的ID。密码认证数据H需要用户直接传递给服务器,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置的内部存在的存储器12将从伪随机数产生器116和秘密值产生器117产生的伪随机数PRNG和秘密值S一起作为P’=(S,PRNG)存储并保存。
(8)利用伪随机数产生器的情况(其2)接着,参照图4,对利用伪随机数产生器的情况(其2)进行说明。
首先,通过伪随机数产生器116随机地产生伪随机数PRNG。然后秘密值产生器117也随机地产生秘密值S。这里,用户输入自己记住的密码(例如“Pooh93”)。在接受了伪随机数PRNG和秘密值S和用户的密码被输入后,密码认证数据产生器118产生密码认证数据H。密码认证数据H例如可以通过H=PRNG(S‖Pooh93‖ID(U)‖ID(S))modq来计算。这里,ID(U)和ID(S)分别表示用户和服务器的ID。密码认证数据H需要用户直接传递给服务器,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置的内部存在的存储器12将从伪随机数产生器116和秘密值产生器117产生的伪随机数PRNG和秘密值S一起作为P’=(S,PRNG)存储并保存。
接着,参照图6、图7,说明在进行了前述的初始化的终端装置1和服务器2(参照图5)之间进行相互认证和密码交换的动作。
<终端装置的动作>
(1)利用了多项式的情况(其1和其2)开始,说明利用了多项式的情况下的终端装置1的动作。终端装置1不论前述的利用了多项式的情况(其1)、利用了多项式的情况(其2),都如下那样进行动作。
首先,从用户的终端装置1中具有的存储器12读出存储的多项式P’=p’(x)。结合器32通过从存储器12读出的多项式P’和用户输入的密码计算并输出P=p(x)。例如,通过p(x)=p’(x)+Pooh93=α1·x+Pooh93modq计算。掩码运算器34根据从结合器32输入的P和在随机数产生器33中产生的随机数R1,通过Y1=gR1·h-p(1)modp计算Y1。这里,p(1)通过p(1)=p’(1)+Pooh93=α1·1+Pooh93modq计算。这里,“1”表示服务器的认证ID。通信处理部35将Y1发送到服务器2,并从服务器2接收Y2。主密钥产生器36将从结合器32输出的P和从随机数产生器33输出的R1和接收的Y2作为输入,通过MK=(Y2·h-p(1))R1modp计算并输出MK。
接着,认证结果判断部37将MK作为输入,通过V1=HASH(00‖Y1‖Y2‖MK)计算V1,从而将该V1通过通信处理部35发送到服务器2,并比较从服务器2接收的V2和HASH(01‖Y1‖Y2‖MK)。这里,HASH为单方向的散列函数,也可以取代HASH而使用MAC(Message AuthenticationCode)。
接着,在认证结果判断部37中,V2和HASH(01‖Y1‖Y2‖MK)不一致的情况下,认证结果判断部37对差错产生器38通知不一致的情况。接受该通知,差错产生器38产生差错而中断处理。另一方面,在认证结果判断部37中,V2和HASH(01‖Y1‖Y2‖MK)一致的情况下,服务器2作为合法的装置认证,从而通话密钥产生器39通过SK=HASH(11‖Y1‖Y2‖MK)产生通话密钥SK。
(2)利用了多项式和散列函数的情况(其1和其2)开始,说明利用了多项式和散列函数的情况下的终端装置1的动作。终端装置1不论前述的利用了多项式和散列函数的情况(其1)、利用了多项式和散列函数的情况(其2),都如下那样进行动作。
首先,从用户的终端装置1中具有的存储器12读出存储的多项式和散列函数P’=(p’(x),HASH)。结合器32通过从存储器12读出的多项式p’(x)和散列函数HASH和用户输入的密码计算并输出P=p(x)。例如,在p’(x)为1次多项式的情况下,通过p(x)=p’(x)+HASH(Pooh93‖ID(U)‖ID(S))=α1·x+HASH(Pooh93‖ID(U)‖ID(S))modN计算。掩码运算器34根据从结合器32输入的P和在随机数产生器33中产生的随机数R1,通过Y1=gR1·h-p(1)modp计算Y1。这里,p(1)通过p(1)=p’(1)+HASH(Pooh93‖ID(U)‖ID(S))=α1·1+HASH(Pooh93‖ID(U)‖ID(S))modN计算。这里,p’(1)是在p’(x)中代替x输入“1”而计算的值。通信处理部35将Y1发送到服务器2,并从服务器2接收Y2。主密钥产生器36将从结合器32输出的P和从随机数产生器33输出的R1和接收的Y2作为输入,通过MK=(Y2·h-p(1))R1modp计算并输出MK。
在从用户的终端装置1中具有的存储器12读出的多项式p’(x)为n次多项式的情况下,结合器32通过多项式p’(x)和散列函数HASH和用户输入的密码计算并输出P=p(x)。例如,通过p(x)=p’(x)+HASH(Pooh93‖ID(U)‖ID(S))modN计算。掩码运算器34根据从结合器32输入的P和在随机数产生器33中产生的随机数R1,通过Y1=gR1·h-p(i)modp计算Y1。这里,p(i)通过p(i)=p’(i)+HASH(Pooh93‖ID(U)‖ID(S))modN计算。这里,p’(i)是对于第i个服务器,在p’(x)中代替x输入“i”而计算的值。通信处理部35将Y1发送到服务器2,并从服务器2接收Y2。主密钥产生器36将从结合器32输出的P和从随机数产生器33输出的R1和接收的Y2作为输入,通过MK=(Y2·h-p(i))R1modp计算并输出MK。
接着,认证结果判断部37将MK作为输入,通过V1=HASH(00‖Y1‖Y2‖MK)计算V1,从而将该V1通过通信处理部35发送到服务器2,并比较从服务器2接收的V2和HASH(01‖Y1‖Y2‖MK)。这里,HASH为单方向的散列函数,也可以取代HASH而使用MAC(Message AuthenticationCode)。
接着,在认证结果判断部37中,V2和HASH(01‖Y1‖Y2‖MK)不一致的情况下,认证结果判断部37对差错产生器38通知不一致的情况。接受该通知,差错产生器38产生差错而中断处理。另一方面,在认证结果判断部37中,V2和HASH(01‖Y1‖Y2‖MK)一致的情况下,服务器2作为合法的装置认证,从而通话密钥产生器39通过SK=HASH(11‖Y1‖Y2‖MK)产生通话密钥SK。
(3)利用了散列函数的情况(其1和其2)开始,说明利用了散列函数的情况下的终端装置1的动作。终端装置1不论前述的利用了散列函数的情况(其1)、利用了散列函数的情况(其2),都如下那样进行动作。
首先,从用户的终端装置1中具有的存储器12读出存储的秘密值和散列函数P’=(S,HASH)。结合器32通过从存储器12读出的秘密值S和散列函数HASH和用户输入的密码计算并输出P=p。例如,p通过p=HASH(Pooh93‖ID(U)‖ID(S))modq计算。掩码运算器34根据从结合器32输入的P和在随机数产生器33中产生的随机数R1,通过Y1=gR1·h-pmodp计算Y1。通信处理部35将Y1发送到服务器2,并从服务器2接收Y2。主密钥产生器36将从结合器32输出的P和从随机数产生器33输出的R1和接收的Y2作为输入,通过MK=(Y2·h-p)R1modp计算并输出MK。
接着,认证结果判断部37将MK作为输入,通过V1=HASH(00‖Y1‖Y2‖MK)计算V1,从而将该V1通过通信处理部35发送到服务器2,并比较从服务器2接收的V2和HASH(01‖Y1‖Y2‖MK)。这里,HASH为单方向的散列函数,也可以取代HASH而使用MAC(Message AuthenticationCode)。
接着,在认证结果判断部37中,V2和HASH(01‖Y1‖Y2‖MK)不一致的情况下,认证结果判断部37对差错产生器38通知不一致的情况。接受该通知,差错产生器38产生差错而中断处理。另一方面,在认证结果判断部37中,V2和HASH(01‖Y1‖Y2‖MK)一致的情况下,服务器2作为合法的装置认证,从而通话密钥产生器39通过SK=HASH(11‖Y1‖Y2‖MK)产生通话密钥SK。
(4)利用了伪随机数产生器的情况(其1和其2)接着,说明利用了伪随机数函数的情况的终端装置1的动作。终端装置1不论在前述的利用了伪随机数产生器的情况(其1),还是利用了伪随机数产生器的情况(其2)都如下那样动作。
利用了伪随机数函数的情况,除了取代用户的终端装置1中具有的存储器12中存储的散列函数HASH而使用伪随机数函数PRNG以外,是与利用了散列函数的情况相同的动作,所以这里省略详细的说明。
<服务器的动作>
(1)利用了多项式的情况(其1)、利用了多项式和散列函数的情况(其1)、利用了散列函数的情况(其1)、利用了伪随机数函数的情况(其1)服务器2不论前述的利用了多项式的情况(其1)、利用了多项式和散列函数的情况(其1)、利用了散列函数的情况(其1)、利用了伪随机数产生器的情况(其1),都如下那样动作。
读出服务器2中具有的存储器41中保存的用户ID和密码的认证数据H。掩码运算器43将从存储器41读出的H和由随机数产生器42产生的随机数R2作为输入,通过Y2=gR2·Hmodp计算Y2。通信处理部44将计算得到的Y2发送到终端装置1,并将从终端装置1接收的Y1输出到主密钥产生器45。主密钥产生器45将从存储器41读出的H和来自随机数产生器42的R2和来自通信处理部44的Y1作为输入,通过MK=(Y1·H)R2modp计算MK,从而输出MK。
接着,认证结果判断部46将MK作为输入,通过V2=HASH(01‖Y1‖Y2‖MK)计算V2,从而将该V2通过通信处理部44发送到终端装置1,并比较从终端装置1接收的V1和HASH(00‖Y1‖Y2‖MK)。这里,HASH是单方向的散列函数,也可以取代HASH而使用MAC(Message AuthenticationCode)。
接着,在认证结果判断部46中,V1和HASH(00‖Y1‖Y2‖MK)不一致的情况下,认证结果判断部46对差错产生器47通知不一致。差错产生器47接受该通知,产生差错从而中断处理。另一方面,在认证结果判断部46中V1和HASH(00‖Y1‖Y2‖MK)一致的情况下,终端装置1作为合法装置,从而通话密钥产生器48通过SK=HASH(11‖Y1‖Y2‖MK)产生通话密钥SK。
(2)利用了多项式的情况(其2)、利用了多项式和散列函数的情况(其2)、利用了散列函数的情况(其2)、利用了伪随机数函数的情况(其2)服务器2不论前述的利用了多项式的情况(其2)、利用了多项式和散列函数的情况(其2)、利用了散列函数的情况(其2)、利用了伪随机数产生器的情况(其2),都如下那样动作。
读出服务器2中具有的存储器41中保存的用户ID和密码的认证数据H。掩码运算器43将从存储器41读出的H和由随机数产生器42产生的随机数R2作为输入,通过Y2=gR2·hHmodp计算Y2。通信处理部44将计算得到的Y2发送到终端装置1,并将从终端装置1接收的Y1输出到主密钥产生器45。主密钥产生器45将从存储器41读出的H和来自随机数产生器42的R2和来自通信处理部44的Y1作为输入,通过MK=(Y1·hH)R2modp计算MK,从而输出MK。
接着,认证结果判断部46将MK作为输入,通过V2=HASH(01‖Y1‖Y2‖MK)计算V2,从而将该V2通过通信处理部44发送到终端装置1,并比较从终端装置1接收的V1和HASH(00‖Y1‖Y2‖MK)。这里,HASH是单方向的散列函数,也可以取代HASH而使用MAC(Message AuthenticationCode)。
接着,在认证结果判断部46中,V1和HASH(00‖Y1‖Y2‖MK)不一致的情况下,认证结果判断部46对差错产生器47通知不一致。差错产生器47接受该通知,产生差错从而中断处理。另一方面,在认证结果判断部46中V1和HASH(00‖Y1‖Y2‖MK)一致的情况下,终端装置1作为合法装置,从而通话密钥产生器48通过SK=HASH(11‖Y1‖Y2‖MK)产生通话密钥SK。
<密码认证数据的更新-1>
用户在希望更新已经对服务器注册的密码认证数据,而不改变自己记住的密码时,进行自身的终端装置的更新。图9是表示用户的终端装置的更新处理的结构的方框图。更新处理,是在输入多项式产生器13产生的多项式T’和由用户的终端装置1中具有的存储器12存储的多项式P’时,通过更新值产生器14产生服务器更新用的值H’和用户保存用的被更新的多项式P’,H’被传递给服务器2,被更新的多项式P’保存到存储器12。这里的更新处理可以适用于前述的利用了多项式的情况(其1)、利用了多项式的情况(其2)、利用了多项式和散列函数的情况(其1)、利用了多项式和散列函数的情况(其2)。
<终端装置的更新处理>
(1)利用了多项式的情况(其1)最初,参照图9,说明利用了多项式的情况(其1)的终端装置1的更新处理的动作。
首先,通过多项式产生器13随机地产生多项式。这时,注册的服务器的数量为一个时,产生以x为变量的1次多项式(t’(x)=β1·x modq),在服务器的数量为n个时,产生n次多项式(t’(x)=β1·x+β2·x2+…+βn·xnmodq)。这里,β从(Z/qZ)*被非人为地选择。例如,在一个服务器的情况下,T’=t’(x)为t’(x)=β1·x modq。这里,从用户的终端装置1中具有的存储器12中读出被存储的多项式P’=p’(x)。在输入了多项式t’(x)和多项式p’(x)后,更新值产生器14产生用户保存用的被更新的多项式P’和服务器更新用的值H’。被更新的多项式P’例如可以通过P’=t’(x)+p’(x)=(α1+β1)·xmodq计算。服务器更新用的值H’例如可以通过H’=ht’(1)modp计算。这里,t’(1)是在t’(x)中取代x输入服务器的ID(例如“1”)而计算的值。服务器更新用的值H’需要用户直接传递给服务器,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置的内部存在的存储器12存储并保存被更新的多项式P’=t’(x)+p’(x)。
(2)利用了多项式的情况(其2)
接着,参照图9,说明利用了多项式的情况(其2)的终端装置1的更新处理的动作。
首先,通过多项式产生器13随机地产生多项式。这时,注册的服务器的数量为一个时,产生以x为变量的1次多项式(t’(x)=β1·x modq),在服务器的数量为n个时,产生n次多项式(t’(x)=β1·x+β2·x2+…+βn·xnmodq)。这里,β从(Z/qZ)*被非人为地选择。例如,在一个服务器的情况下,T’=t’(x)为t’(x)=β1·x modq。这里,从用户的终端装置1中具有的存储器12中读出被存储的多项式P’=p’(x)。在输入了多项式t’(x)和多项式p’(x)后,更新值产生器14产生用户保存用的被更新的多项式P’和服务器更新用的值H’。被更新的多项式P’例如可以通过P’=t’(x)+p’(x)=(α1+β1)·xmodq计算。服务器更新用的值H’例如可以通过H’=t’(1)modq计算。这里,t’(1)是在t’(x)中取代x输入服务器的ID(例如“1”)而计算的值。服务器更新用的值H’需要用户直接传递给服务器,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置的内部存在的存储器12存储并保存被更新的多项式P’=t’(x)+p’(x)。
(3)利用了多项式和散列函数的情况(其1)接着,参照图9,说明利用了多项式和散列函数的情况(其1)的终端装置1的更新处理的动作。
首先,通过多项式产生器13随机地产生多项式。这时,注册的服务器的数量为一个时,产生以x为变量的1次多项式(t’(x)=β1·x modN),在服务器的数量为n个时,产生n次多项式(t’(x)=β1·x+β2·x2+…+βn·xnmodN)。这里,β从(Z/qZ)*被非人为地选择。例如,在一个服务器的情况下,T’=t’(x)为t’(x)=β1·x modN。这里,从用户的终端装置1中具有的存储器12中读出被存储的多项式和散列函数P’=(p’(x),HASH)。在输入了多项式t’(x)和多项式p’(x)后,更新值产生器14产生用户保存用的被更新的多项式P’和服务器更新用的值H’。被更新的多项式P’例如可以通过P’=t’(x)+p’(x)=(α1+β1)·xmodN计算。服务器更新用的值H’例如可以通过H’=ht’(1)modp计算。这里,t’(1)是在t’(x)中取代x输入服务器的ID(例如“1”)而计算的值。
例如,在注册的服务器的数量为n的情况下,更新值产生器14对第i个服务产生服务器更新用的值H’。服务器更新用的值H’例如可以通过H’=ht’(1)modp计算。这里,t’(i)是在n次多项式t’(x)中取代x输入“i”而计算的值。
服务器更新用的值H’需要用户直接传递给服务器,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置的内部存在的存储器12将被更新的多项式P’=t’(x)+p’(x)和从存储器12读出的散列函数HASH一起作为P’=(t’(x)+p’(x),HASH)存储并保存。
(4)利用了多项式和散列函数的情况(其2)接着,参照图9,说明利用了多项式和散列函数的情况(其2)的终端装置1的更新处理的动作。
首先,通过多项式产生器13随机地产生多项式。这时,注册的服务器的数量为一个时,产生以x为变量的1次多项式(t’(x)=β1·x modN),在服务器的数量为n个时,产生n次多项式(t’(x)=β1·x+β2·x2+…+βn·xnmodN)。这里,β从(Z/qZ)*被非人为地选择。例如,在一个服务器的情况下,T’=t’(x)为t’(x)=β1·x modN。这里,从用户的终端装置1中具有的存储器12中读出被存储的多项式和散列函数P’=(p’(x),HASH)。在输入了多项式t’(x)和多项式p’(x)后,更新值产生器14产生用户保存用的被更新的多项式P’和服务器更新用的值H’。被更新的多项式P’例如可以通过P’=t’(x)+p’(x)=(α1+β1)·xmodN计算。服务器更新用的值H’例如可以通过H’=t’(1)modN计算。这里,t’(1)是在t’(x)中取代x输入服务器的ID(例如“1”)而计算的值。
例如,在注册的服务器的数量为n的情况下,更新值产生器14对第i个服务器产生服务器更新用的值H’。服务器更新用的值H’例如可以通过H’=t’(i)modN计算。这里,t’(i)是在n次多项式t’(x)中取代x输入“i”而计算的值。
服务器更新用的值H’需要用户直接传递给服务器,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置的内部存在的存储器12将被更新的多项式P’=t’(x)+p’(x)和从存储器12读出的散列函数HASH一起作为P’=(t’(x)+p’(x),HASH)存储并保存。
<服务器的更新处理>
(1)利用了多项式的情况(其1),利用了多项式和散列函数的情况(其1)
开始,参照图10,说明利用了多项式的情况(其1),利用了多项式和散列函数的情况(其1)的服务器2的更新处理的动作。服务器2不论在利用了多项式的情况(其1),利用了多项式和散列函数的情况(其1),都如下那样进行动作。
首先,读出服务器2中具有的存储器41中保存的用户ID和密码认证数据H。在输入了从用户的终端装置发送的服务器更新用的值H’和从存储器41读出的密码认证数据H后,更新值产生器21产生服务器保存用的被更新的密码认证数据H。被更新的密码认证数据H例如可以通过H=hp(1)·ht’(1)=hp(1)+t’(1)modp计算。位于服务器内部的存储器41存储并保存被更新的密码认证数据H。
(2)利用了多项式的情况(其2)接着,参照图10,说明利用了多项式的情况(其2)下的服务器2的更新处理的动作。
首先,读出服务器2中具有的存储器41中保存的用户ID和密码认证数据H。在输入了从用户的终端装置发送的服务器更新用的值H’和从存储器41读出的密码认证数据H后,更新值产生器21产生服务器保存用的被更新的密码认证数据H。被更新的密码认证数据H例如可以通过H=p(1)+t’(1)modp计算。位于服务器内部的存储器41存储并保存被更新的密码认证数据H。
(3)利用了多项式和散列函数的情况(其2)接着,参照图10,说明利用了多项式和散列函数的情况(其2)下的服务器2的更新处理的动作。
首先,读出服务器2中具有的存储器41中保存的用户ID和密码认证数据H。在输入了从用户的终端装置发送的服务器更新用的值H’和从存储器41读出的密码认证数据H后,更新值产生器21产生服务器保存用的被更新的密码认证数据H。被更新的密码认证数据H例如可以通过H=p(1)+t’(1)modN计算。位于服务器内部的存储器41存储并保存被更新的密码认证数据H。
<密码认证数据的更新-2>
用户在希望更新已经对服务器注册的密码认证数据,而不改变自己记住的密码时,进行自身的终端装置的更新。图11是表示用户的终端装置的更新处理的结构的方框图。更新处理,是在输入秘密值产生器15产生的秘密值S’和用户的新密码PW’和由用户的终端装置1中具有的存储器12存储的多项式P’时,通过密码认证数据更新器16产生服务器更新用的密码认证数据H’和用户保存用的被更新的P’,H’被传递给服务器2,被更新的P’保存到存储器12。这里的更新处理可以适用于前述的利用了散列函数的情况(其1)、利用了散列函数的情况(其2)、利用了伪随机数产生器的情况(其1)、利用了伪随机数产生器的情况(其2)。而且,由于前述的利用了多项式的情况(其1)、利用了多项式的情况(其2)、利用了多项式和散列函数的情况(其1)、利用了多项式和散列函数的情况(其2)也可以同样利用初始化处理和相同的动作进行应用,所以这里省略详细的说明。
<终端装置的更新处理>
(1)利用了散列函数的情况(其1)开始,参照图11,说明利用了散列函数的情况(其1)的终端装置1的更新处理的动作。
首先,通过秘密值产生器15随机地产生秘密值S’。这里,从用户的终端装置1中具有的存储器12读出被存储的P’=(S,HASH)。在输入了用户记住的新密码(PW’)和散列函数HASH和秘密值S’后,密码认证数据更新器16产生用户保存用的被更新的P’和服务器更新用的密码认证数据H’。服务器更新用的密码认证数据H’例如可以通过H’=hHASH(S’‖PW’‖ID(U)‖ID(S))modp计算。这里,ID(U)和ID(S)分别表示用户和服务器的ID。服务器更新用的值H’需要用户直接传递给服务器2,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置1的内部存在的存储器12存储并保存被更新的P’=(S’,HASH)。
(2)利用了散列函数的情况(其2)接着,参照图11,说明利用了散列函数的情况(其2)的终端装置1的更新处理的动作。
首先,通过秘密值产生器15随机地产生秘密值S’。这里,从用户的终端装置1中具有的存储器12读出被存储的P’=(S,HASH)。在输入了用户记住的新密码(PW’)和散列函数HASH和秘密值S’后,密码认证数据更新器16产生用户保存用的被更新的P’和服务器更新用的密码认证数据H’。服务器更新用的密码认证数据H’例如可以通过H’=HASH(S’‖PW’‖ID(U)‖ID(S))modq计算。这里,ID(U)和ID(S)分别表示用户和服务器的ID。服务器更新用的值H’需要用户直接传递给服务器2,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置1的内部存在的存储器12存储并保存被更新的P’=(S’,HASH)。
(3)利用了伪随机数产生器的情况(其1),利用了伪随机数产生器的情况(其2)接着,参照图11,说明利用了伪随机数产生器的情况(其1),利用了伪随机数产生器的情况(其2)的终端装置1的更新处理的动作。
利用了伪随机数产生器的情况(其1)和(其2)除了取代被存储在存储器12中的散列函数HASH而利用伪随机函数PRNG以外,与利用了散列函数的情况(其1和其2)为相同的动作,所以这里省略详细的说明。
<服务器的更新处理>
(1)利用了散列函数的情况(其1),利用了散列函数的情况(其2),利用了伪随机数产生器的情况(其1),利用了伪随机数产生器的情况(其2)开始,参照图12,对利用了散列函数的情况(其1),利用了散列函数的情况(其2),利用了伪随机数产生器的情况(其1),利用了伪随机数产生器的情况(其2)的服务器2的更新处理的动作进行说明。服务器2不论在利用了散列函数的情况(其1和其2),利用了伪随机数产生器的情况(其1和其2),都如下那样进行动作。
首先,读出服务器2中具有的存储器41中保存的用户ID和密码认证数据H。在输入了从用户的终端装置1发送的服务器更新用的密码认证数据H’和从存储器41读出的密码认证数据H后,密码认证数据更新器22将服务器保存用的密码认证数据H更新为从用户的终端装置1发送的H’。位于服务器内部的存储器41存储并保存被更新的密码认证数据H=H’。
<第2实施例>
以下,对使用了本发明的公开密钥加密方式的实施例进行说明。但是,本发明不限于以下的各实施例,例如也可以将这些实施例的结构要素之间进行适当的组合。
这里,在说明使用了RSA公开密钥加密方式的实施例之前,先对一些背景知识和基础的记号进行说明。
在公开密钥加密方式中,存在公开密钥(PubK)和秘密密钥(PriK)的对(PubK,PriK)。公开密钥不保密,谁都可以得到。加密是可以利用公开密钥,产生将消息m变为C=EncPubK(m)那样的加密文C。加密文仅能用秘密密钥解密为m=DecPriK(C)。加密文不能用公开密钥解密。于是在公开密钥署名方式中,可以将消息m署名而产生成为s=SigPriK(m)那样的署名文(m,s)。署名文的验证可以通过利用公开密钥求m’=VerPubK(s),比较m和m’来进行。即,m和m’一致的情况下验证该署名文(m,s)合法。在不一致的情况下,(m,s)不是合法的署名文。
在公知的RAS公开密钥方式中,公开密钥为(N,e),秘密密钥为(N,d)。但是,N两个随机选择的大的质数p和q的积(即,N=p·q),e是e和(p-1)·(q-1)的最大公约数为1那样小的任意的数(例如,e=3或者e=216+1),d是e-1mod((p-1)·(q-1))。为了使安全性最大化,将p和q设为一样长。对于消息m(m∈ZN*),加密函数为EncPubK(m)=memodN,解密函数为DecPriK(C)=CdmodN。这里,在提供了加密文C和公开密钥(N,e)时,求消息m在计算量方面困难。RSA由于大数字的N的质因数分解困难,所以获得安全性。并且,署名函数为SigPriK(m)=mdmodN,检验函数为VerPubK(s)=semodN。一般来说,在解密系统中,具有记述其安全性的级别的安全性参数。这里,作为散列函数HASH的安全性参数使用k(但是,假设1/2k小至可忽略),作为RSA公开密钥方式的安全性使用1,,特别是假设RSA的法N为长度1。而且,{0,1}*表示有限的二进制数的串(string)的集合,{0,1}k表示长度k的二进制数的串的集合。散列函数HASH是从{0,1}*的输入得出{0,1}k的输出的安全的单方向函数,FDH(Full-DomainHash)函数是从{0,1}*的输入得出ZN*\{1}的输出的安全的单方向函数。而且,从随机数产生器产生的随机数非人为地产生T(T∈ZN*)。而且,‖意思是连结(concatenation)值。
<终端装置的初始化>
用户在希望对服务器进行个人注册时,进行自身的终端装置的初始化。图1是表示用户的终端装置的初始化处理的结构的方框图。初始化在用户输入密码时,通过数据扩展器11产生服务器注册用的密码认证数据H和用户保存用的值P’,密码认证数据H被交接给服务器,值P’保存到存储器12。这里,数据扩展器11可以由多项式和FDH函数、FDH函数等构成。
(1)利用多项式和FDH函数的情况(其1)
开始,参照图13,对利用多项式和FDH函数的情况(其1)进行说明。
首先,通过FDH函数产生器122随机地产生FDH函数FDH。然后,通过多项式产生器123随机地产生多项式。这时,注册的服务器的数量为一个时,产生以x为变量的1次多项式(p’(x)=α1·x modN),在服务器的数量为n个时,产生n次多项式(p’(x)=α1·x+α2·x2+…+αn·xnmodN)。这里,α从ZN*被非人为地选择。例如,在一个服务器的情况下,p’(x)为p’(x)=α1·x modN。这里,用户输入自己记住的密码(例如“Pooh93”)。在输入了多项式和FDH函数和用户的密码后,密码认证数据产生器124产生密码认证数据H。密码认证数据H例如可以通过H=p(1)=p’(1)+Pooh93modN来计算。这里,p’(1)是在p’(x)中取代x而输入服务器的ID(例如“1”)而计算的值。密码认证数据H需要用户直接传递给服务器,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置的内部存在的存储器12将从多项式产生器产生的多项式p’(x)和从FDH函数产生器产生的FDH函数FDH一起作为P’=(p’(x),FDH)存储并保存。
(2)利用多项式和FDH函数的情况(其2)下面,参照图13,对利用多项式和FDH函数的情况(其2)进行说明。
首先,通过FDH函数产生器122随机地产生FDH函数FDH。然后,通过多项式产生器123随机地产生多项式。这时,注册的服务器的数量为一个时,产生以x为变量的1次多项式(p’(x)=α1·x modN),在服务器的数量为n个时,产生n次多项式(p’(x)=α1·x+α2·x2+···+αn·xnmodN)。这里,α从ZN*被非人为地选择。例如,在一个服务器的情况下,p’(x)为p’(x)=α1·x modN。这里,用户输入自己记住的密码(例如“Pooh93”)。在输入了多项式和FDH函数和用户的密码后,密码认证数据产生器124产生密码认证数据H。密码认证数据H例如可以通过H=p(1)=p’(1)+FDH(Pooh93‖ID(U)‖ID(S))modN来计算。这里,ID(U)和ID(S)分别表示用户和服务器的ID。这里,p’(1)是在p’(x)中取代x而输入“1”而计算的值。
例如,在注册的服务器的数量为n的情况下,密码认证数据产生器124对第i个服务器产生密码认证数据H。密码认证数据H例如可以通过H=p(i)=p’(i)+FDH(Pooh93‖ID(U)‖ID(S))modN来计算。这里,ID(U)和ID(S)分别表示用户和第i个服务器的ID。这里,p’(i)是在p’(x)中取代x而输入“i”而计算的值。
密码认证数据H需要用户直接传递给服务器,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置的内部存在的存储器12将从多项式产生器产生的多项式p’(x)和从FDH函数产生器产生的FDH函数FDH一起作为P’=(p’(x),FDH)存储并保存。
(3)利用FDH函数的情况接着,参照图14,对利用FDH函数的情况进行说明。
首先,通过FDH函数产生器125随机地产生FDH函数FDH。然后,通过秘密值产生器126随机地产生秘密值S。但是,S是防止全搜索攻击那样长度的值(例如S为80比特以上的值)。这里,用户输入自己记住的密码(例如“Pooh93”)。在输入了FDH函数和秘密值S和用户的密码后,密码认证数据产生器127产生密码认证数据H。密码认证数据H例如可以通过H=FDH(S‖Pooh93‖ID(U)‖ID(S))来计算。这里,ID(U)和ID(S)分别表示用户和服务器的ID。密码认证数据H需要用户直接传递给服务器,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置的内部存在的存储器12将从秘密值产生器126产生的秘密值S和从FDH函数产生器125产生的FDH函数FDH一起作为P’=(S,FDH)存储并保存。
<终端装置和服务器的初始化>
服务器在希望对用户发送RSA公开密钥时进行初始化处理。服务器按照RSA公开密钥方式产生公开密钥和秘密密钥对,并将公开密钥发送到用户。这里,初始化可以通过安全的通信、非安全的通信等方式实现。在利用非安全的通信的情况下,用户决定接收的公开密钥是否正确。该用户进行的决定,对用户提供决定是否产生了服务器以适当的方法选择的公开密钥的方法。即,为了决定服务器提供的公开密钥e和(p-1)·(q-1)的最大公约数是否为1(即,gcd(e,(p-1)·(q-1))而使用RSA署名方式。
(1)利用安全的通信的情况开始,参数图15,对利用安全的通信的情况的初始化处理进行说明。
首先,通过RSA密钥产生器23产生公开密钥(N,e)和秘密密钥(N,d)的对。RSA公开密钥(N,e)需要服务器直接传递给用户,或者用邮件送到,或者用电话通知等,安全地进行通知。位于服务器内部的存储器41存储并保存RSA秘密密钥(N,d)。
(2)利用非安全的通信的情况接着,参照图16,对利用非安全的通信的情况的初始化处理进行说明。
首先,通过位于用户的终端装置1的随机数产生器17随机地产生随机数R1(R1∈{0,1}k)并发送到服务器。另一方面,通过位于服务器2的RSA密钥产生器24产生公开密钥(N,e)和秘密密钥(N,d)的对。然后,通过随机数产生器25随机地产生R2(R2∈{0,1}k)。RSA署名文产生器26将从终端装置1接收的R1和从RSA密钥产生器24产生的秘密密钥(N,d)和从随机数产生器25产生的随机数R2作为输入,产生{mj}1≤j≤n的署名{sj}1≤j≤n(这里,n为使n≥loge(PW·(e-1)/e那样的整数。这里,PW表示密码)。署名{sj}1≤j≤n通过{sj=mjdmodN}1≤j≤n计算。这里,{mj}1≤j≤n根据HASH(n‖N‖e‖ID(U)‖ID(S)‖R1‖R2)的输出将长度l的块分为n个而得到。ID(U)和ID(S)分别表示用户和服务器的ID。服务器2将公开密钥(N,e)和计算得到的署名文(R2,{sj}1<j<n)发送到终端装置1。服务器2内部具有的存储器41存储并保存由RSA密钥产生器24产生的秘密密钥(N,d)。
位于用户的终端装置1中的认证结果判断部18将在随机数产生器17中产生的R1和从服务器2接收的((N,e),(R2,{sj}1≤j≤n))作为输入,进行署名文(R2,{sj}1≤j≤n)的验证。通过{mj=sjemodN}1≤j≤n计算{mj}1≤j≤n,从而比较该{mj}1≤j≤n和HASH(n‖N‖e‖ID(U)‖ID(S)‖R1‖R2)。在认证结果判断部18中,{mj}1≤j≤n和HASH(n‖N‖e‖ID(U)‖ID(S)‖R1‖R2)不一致的情况下,认证结果判断部18对差错产生器19通知不一致。差错产生器19接受该通知,产生差错从而中断处理。另一方面,在认证结果判断部18中,{mj}1≤j≤n和HASH(n‖N‖e‖ID(U)‖ID(S)‖R1‖R2)一致的情况下,服务器2的公开密钥(N,e)作为合法的密钥验证,从而在终端装置1的内部具有的存储器12中存储并保存公开密钥(N,e)。
接着,参照图17、图18,对在进行了前述的初始化的终端装置1和服务器2(参照图5)之间进行相互认证和密钥交换的动作进行说明。
<终端装置的动作>
(1)利用了多项式和FDH函数的情况(其1)开始,说明利用了多项式和FDH函数的情况(其1)的终端装置1的动作。
首先,从用户的终端装置1中具有的存储器12读出被存储的多项式和FDH函数P’=(p’(x),FDH)。结合器52通过从存储器12读出的多项式p’(x)和FDH函数FDH和用户输入的密码计算并输出W=FDH(p(x)‖ID(U)‖ID(S))。这里,通过p(x)=p’(x)+Pooh93modN计算。例如,在p’(x)为一次多项式的情况下,通过p(x)=p(1)=p’(1)+Pooh93modN=α1·1+Pooh93modN计算。这里,p’(1)是在p’(x)中取代x而输入“1”计算的值。
在从用户的终端装置1中具有的存储器12读出的多项式p’(x)是n次多项式的情况下,结合器52通过多项式p’(x)和FDH函数FDH和用户输入的密码计算并输出W=FDH(p(x)‖ID(U)‖ID(S))。这里,通过p(x)=p’(x)+Pooh93modN计算。例如,通过p(x)=p(i)=p’(i)+Pooh93modN计算。这里,p’(i)是对于第i个服务器,在p’(x)中取代x而输入“i”计算的值。
掩码运算器54根据从存储器12读出的公开密钥(N,e)和从结合器52输入的W和在随机数产生器53中随机地产生的随机数T(T∈ZN*),通过Z=Te·WmodN计算Z。通信处理部55将Z发送到服务器2,从服务器2接收V2。
接着,认证结果判断部56将从随机数产生器53输出的T作为输入,计算HASH(01‖T‖ID(U)‖ID(S)),从而与从服务器2接收的V2进行比较。这里,也可以取代HASH而使用MAC。在认证结果判断部56中V2和HASH(01‖T‖ID(U)‖ID(S))不一致的情况下,认证结果判断部56对差错产生器57通知不一致。差错产生器57接受该通知,产生差错而中断处理。另一方面在认证结果判断部56中V2和HASH(01‖T‖ID(U)‖ID(S))一致的情况下,服务器2作为合法的装置认证,验证符产生器58通过V1=HASH(00‖T‖ID(U)‖ID(S))计算验证符V1并发送到服务器2。同时,通话密钥产生器59通过SK=HASH(11‖T‖ID(U)‖ID(S))产生通话密钥SK。
(2)利用了多项式和FDH函数的情况(其2)接着,说明利用了多项式和FDH函数的情况(其2)的终端装置1的动作。
首先,从用户的终端装置1中具有的存储器12读出被存储的多项式和FDH函数P’=(p’(x),FDH)。结合器52通过从存储器12读出的多项式p’(x)和FDH函数FDH和用户输入的密码计算并输出W=FDH(p(x)‖ID(U)‖ID(S))。这里,通过p(x)=p’(x)+FDH(Pooh93‖ID(U)‖ID(S))modN计算。例如,在p’(x)为一次多项式的情况下,通过p(x)=p(1)=p’(1)+FDH(Pooh93‖ID(U)‖ID(S))modN=α1·1+FDH(Pooh93‖ID(U)‖ID(S))modN计算。这里,p’(1)是在p’(x)中取代x而输入“1”计算的值。
在从用户的终端装置1中具有的存储器12读出的多项式p’(x)是n次多项式的情况下,结合器52通过多项式p’(x)和FDH函数FDH和用户输入的密码计算并输出W=FDH(p(x)‖ID(U)‖ID(S))。这里,通过p(x)=p’(x)+FDH(Pooh93‖ID(U)‖ID(S))modN计算。例如,通过p(x)=p(i)=p’(i)+FDH(Pooh93‖ID(U)‖ID(S))modN计算。这里,p’(i)是对于第i个服务器,在p’(x)中取代x而输入“i”计算的值。
掩码运算器54根据从存储器12读出的公开密钥(N,e)和从结合器52输入的W和在随机数产生器53中随机地产生的随机数T(T∈ZN*),通过Z=Te·WmodN计算Z。通信处理部55将Z发送到服务器2,从服务器2接收V2。
接着,认证结果判断部56将从随机数产生器53输出的T作为输入,计算HASH(01‖T‖ID(U)‖ID(S)),从而与从服务器2接收的V2进行比较。这里,也可以取代HASH而使用MAC。在认证结果判断部56中V2和HASH(01‖T‖ID(U)‖ID(S))不一致的情况下,认证结果判断部56对差错产生器57通知不一致。差错产生器57接受该通知,产生差错而中断处理。另一方面在认证结果判断部56中V2和HASH(01‖T‖ID(U)‖ID(S))一致的情况下,服务器2作为合法的装置认证,验证符产生器58通过V1=HASH(00‖T‖ID(U)‖ID(S))计算验证符V1并发送到服务器2。同时,通话密钥产生器59通过SK=HASH(11‖T‖ID(U)‖ID(S))产生通话密钥SK。
(3)利用了FDH函数的情况接着,说明利用了FDH函数的情况的终端装置1的动作。
首先,从用户的终端装置1中具有的存储器12读出被存储的秘密值和FDH函数P’=(S,FDH)。结合器52通过从存储器12读出的秘密值S和FDH函数FDH和用户输入的密码计算并输出W。这里,通过W=FDH(S‖Pooh93‖ID(U)‖ID(S))计算W。掩码运算器54根据从存储器12读出的公开密钥(N,e)和从结合器52输入的W和在随机数产生器53中随机地产生的随机数T(T∈ZN*),通过Z=Te·WmodN计算Z。通信处理部55将Z发送到服务器2,从服务器2接收V2。
接着,认证结果判断部56将从随机数产生器53输出的T作为输入,计算HASH(01‖T‖ID(U)‖ID(S)),从而与从服务器2接收的V2进行比较。这里,也可以取代HASH而使用MAC。在认证结果判断部56中V2和HASH(01‖T‖ID(U)‖ID(S))不一致的情况下,认证结果判断部56对差错产生器57通知不一致。差错产生器57接受该通知,产生差错而中断处理。另一方面在认证结果判断部56中V2和HASH(01‖T‖ID(U)‖ID(S))一致的情况下,服务器2作为合法的装置认证,验证符产生器58通过V1=HASH(00‖T‖ID(U)‖ID(S))计算验证符V1并发送到服务器2。同时,通话密钥产生器59通过SK=HASH(11‖T‖ID(U)‖ID(S))产生通话密钥SK。
<服务器的动作>
(1)利用了多项式和FDH函数的情况(其1),利用了多项式和FDH函数的情况(其2)服务器2不论在前述的利用了多项式和FDH函数的情况(其1),利用了多项式和FDH函数的情况(其2),都如下那样进行动作。
首先,从服务器2中具有的存储器41中读出保存的用户ID和密码的认证数据H。主密钥产生器62将从存储器41读出的H和秘密密钥(N,d)和从终端装置1接收的Z作为输入,通过T=(Z/W)dmodN计算并输出T。这里,W通过W=FDH(H‖ID(U)‖ID(S))计算。验证符产生器63根据从主密钥产生器62输入的T通过V2=HASH(01‖T‖ID(U)‖ID(S))计算V2。通信处理部64将计算得到的V2发送到终端装置1,并将从终端装置1接收的V1发送到认证结果判断部65。
接着,认证结果判断部65将从主密钥产生器62输出的T作为输入,计算HASH(00‖T‖ID(U)‖ID(S))并将其与从终端装置1接收的V1比较。这里,也可以取代HASH而使用MAC。在认证结果判断部65中V1和HASH(00‖T‖ID(U)‖ID(S))不一致的情况下,认证结果判断部65对差错产生器66通知不一致。差错产生器66接受该通知,产生差错而中断处理。另一方面在认证结果判断部65中V1和HASH(00‖T‖ID(U)‖ID(S))一致的情况下,终端装置1作为合法的装置认证,通话密钥产生器67通过SK=HASH(11‖T‖ID(U)‖ID(S))产生通话密钥SK。
(2)利用了FDH函数的情况接着,对利用了FDH函数的情况下的服务器2的动作进行说明。
首先,从服务器2中具有的存储器41中读出保存的用户ID和密码的认证数据H。主密钥产生器62将从存储器41读出的H和秘密密钥(N,d)和从终端装置1接收的Z作为输入,通过T=(Z/W)dmodN计算并输出T。这里,W为W=H。验证符产生器63根据从主密钥产生器62输入的T通过V2=HASH(01‖T‖ID(U)‖ID(S))计算V2。通信处理部64将计算得到的V2发送到终端装置1,并将从终端装置1接收的V1发送到认证结果判断部65。
接着,认证结果判断部65将从主密钥产生器62输出的T作为输入,计算HASH(00‖T‖ID(U)‖ID(S))并将其与从终端装置1接收的V1比较。这里,也可以取代HASH而使用MAC。在认证结果判断部65中V1和HASH(00‖T‖ID(U)‖ID(S))不一致的情况下,认证结果判断部65对差错产生器66通知不一致。差错产生器66接受该通知,产生差错而中断处理。另一方面在认证结果判断部65中V1和HASH(00‖T‖ID(U)‖ID(S))一致的情况下,终端装置1作为合法的装置认证,通话密钥产生器67通过SK=HASH(11‖T‖ID(U)‖ID(S))产生通话密钥SK。
<密码认证数据的更新-1>
用户在希望更新已经对服务器注册的密码认证数据,而不改变自己记住的密码时,进行自身的终端装置的更新。图9、图19是表示用户的终端装置的更新处理的结构的方框图。这里的更新处理可以应用在前述的利用了多项式和FDH函数的情况(其1)、利用了多项式和FDH函数的情况(其2)和利用主密钥的情况下。而且,通过该更新处理,可以防止对于服务器的重复攻击。
<终端装置的更新处理>
(1)利用了多项式和FDH函数的情况(其1)、利用了多项式和FDH函数的情况(其2)最初,参照图9,说明利用了多项式和FDH函数的情况(其1)、利用了多项式和FDH函数的情况(其2)的终端装置1的更新处理。终端装置1不论在前述的利用了多项式和FDH函数的情况(其1)、利用了多项式和FDH函数的情况(其2),都如下那样进行动作。
首先,通过多项式产生器13随机地产生多项式。这时,注册的服务器的数量为一个时,产生以x为变量的1次多项式(t’(x)=β1·x modN),在服务器的数量为n个时,产生n次多项式(t’(x)=β1·x+β2·x2+…+βn·xnmodN)。这里,β从ZN*被非人为地选择。例如,在一个服务器的情况下,T’=t’(x)为t’(x)=β1·x modN。这里,从用户的终端装置1中具有的存储器12中读出被存储的多项式和FDH函数P’=(p’(x),FDH)。在输入了多项式t’(x)和多项式p’(x)后,更新值产生器14产生用户保存用的被更新的多项式P’和服务器更新用的值H’。被更新的多项式P’例如可以通过P’=t’(x)+p’(x)=(α1+β1)·xmodN计算。服务器更新用的值H’例如可以通过H’=t’(1)modN计算。这里,t’(1)是在t’(x)中取代x输入“1”而计算的值。
例如,在注册的服务器的数量为n的情况下,更新值产生器14对第i个服务器产生服务器更新用的值H’。服务器更新用的值H’例如可以通过H’=t’(i)modN计算。这里,t’(i)是在n次多项式t’(x)中取代x输入“i”而计算的值。
服务器更新用的值H’需要用户直接传递给服务器,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置的内部存在的存储器12将被更新的多项式P’=t’(x)+p’(x)和从存储器12读出的FDH函数FDH一起作为P’=(t’(x)+p’(x),FDH)存储并保存。
(2)利用主密钥的情况接着参照图19,说明利用主密钥的情况的终端装置1的更新处理的动作。
首先,随机数产生器53随机地产生随机数T(T∈ZN*)。这里,从用户的终端装置1中具有的存储器12中读出被存储的多项式和FDH函数P’=(p’(x),FDH)。在输入了随机数T和多项式p’(x)后,更新值产生器20产生用户保存用的被更新的多项式P’。被更新的多项式P’可以通过P’=T+p’(x)modN。位于用户的终端装置内部的存储器12将被更新的多项式P’=T+p’(x)和从存储器12读出的FDH函数FDH一起作为P’=(T+p’(x),FDH)存储并保存。
<服务器的更新处理>
(1)利用了多项式和FDH函数的情况(其1)、利用了多项式和FDH函数的情况(其2)开始,参照图10,说明利用了多项式和FDH函数的情况(其1)、利用了多项式和FDH函数的情况(其2)的服务器2的更新处理。服务器2不论在前述的利用了多项式和FDH函数的情况(其1)、利用了多项式和FDH函数的情况(其2),都如下那样进行动作。
首先,读出服务器2中具有的存储器41中保存的用户ID和密码认证数据H。在输入了从用户的终端装置发送的服务器更新用的值H’和从存储器41读出的密码认证数据后,更新值产生器21产生服务器保存用的被更新的密码认证数据H。被更新的密码认证数据H例如可以通过H=p(1)+t’(1)modN计算。位于服务器内部的存储器41存储并保存被更新的密码认证数据H。
(2)利用主密钥的情况接着参照图20,说明利用主密钥的情况的服务器2的更新处理的动作。
首先,通过主密钥产生器62产生主密钥T。这里,从服务器2中具有的存储器41中读出被保存的用户ID和密码认证数据H。在输入了主密钥T和从存储器41读出的密码认证数据H后,更新值产生器27产生服务器保存用的被更新的密码认证数据H。被更新的密码认证数据H可以通过H=p(1)+TmodN计算。位于服务器内部的存储器41存储并保存被更新的密码认证数据H。
<密码认证数据的更新-2>
用户在希望更新已经对服务器注册的密码认证数据,而不改变自己记住的密码时,进行自身的终端装置的更新。图11是表示用户的终端装置的更新处理的结构的方框图。更新处理,是在输入秘密值产生器15产生的秘密值S’和用户的新密码PW’和由用户的终端装置1中具有的存储器12存储的多项式P’时,通过密码认证数据更新器16产生服务器更新用的密码认证数据H’和用户保存用的被更新的P’,H’被传递给服务器2,被更新的P’保存到存储器12。这里的更新处理可以适用于前述的利用了FDH函数的情况。而且,通过该更新处理,可以防止对于服务器的重复(replay)攻击。而且,由于利用了多项式和FDH函数的情况(其1)、利用了多项式的和FDH函数情况(其2)也可以同样利用初始化处理和相同的动作进行应用,所以这里省略详细的说明。
<终端装置的更新处理>
(1)利用了FDH函数的情况参照图11,说明利用了FDH函数的情况的终端装置1的更新处理的动作。
首先,通过秘密值产生器15随机地产生秘密值S’。这里,从用户的终端装置1中具有的存储器12读出被存储的P’=(S,FDH)。在输入了用户记住的新的密码(PW’)和FDH函数FDH和秘密值S’后,密码认证数据更新器16产生用户保存用的被更新的P’和服务器更新用的密码认证数据H’。服务器更新用的密码认证数据H’例如可以通过H’=FDH(S’‖PW’‖ID(U)‖ID(S))计算。这里,ID(U)和ID(S)分别表示用户和服务器的ID。服务器更新用的密码认证数据H’需要用户直接传递给服务器,或者用邮件送到,或者用电话通知等,安全地进行通知。用户的终端装置的内部存在的存储器12存储并保存被更新的P’=(S’,FDH)。
<服务器的更新处理>
参照图12,说明利用了FDH函数的情况的服务器2的更新处理的动作。
首先,读出被保存在服务器2中具有的存储器41的用户ID和密码认证数据H。在输入了从用户的终端装置1发送的服务器更新用的密码认证数据H’和从存储器41读出的密码认证数据H后,密码认证数据更新器22将服务器保存用的密码认证数据H更新为从用户的终端装置1发送的H’。位于服务器内部的存储器41存储并保存被更新的密码认证数据H=H’。
这样,通过利用多项式,即使想要非法利用的人持有他人的终端装置,用户的密码从信息理论上考虑也是安全的。而且,即使侵入服务器内得到保存的信息,用户的密码从信息理论上考虑也是安全的。而且,在利用散列函数和伪随机数产生器和FDH函数的情况下,即使对于想要非法利用的人,用户的密码从计算量上考虑也是安全的。
接着,对应用了前述的技术的装置进行说明。
<不将分散数据保存在终端时的远隔分散保存装置中的数据保存处理>
接着,参照图21,对不将分散数据保存在终端时的远隔分散保存装置中的数据保存处理进行说明。图21是表示不将分散数据保存在终端时的远隔分散保存装置5的方框图。
用户将要分散保存的数据DATA在自身的终端装置21中进行处理,并分割为保存到n台服务器的数据S’1,…,S’n。分割数据S’i与作为数据的ID的DID一起,通过用户的终端装置21,通过可使用利用与服务器的认证装置共用的密钥Ski作成的安全的通信路径的通信器52由用户的终端装置21被发送并保存到服务器IDi。通过同样的方法,还可以分割保存数据的一览信息,并保存在服务器中。而且,使用户的终端装置(认证数据更新模式)以适当的间隔(以比存储信息用离线全数搜索求出的间隔更短的间隔,例如每次进行认证或者2、3天一次等)动作,产生更新P’和被记录在各服务器中的H的信息UP’,UH1,…,UHn,更新它们。
由此,根据被保存在服务器中的数据和认证用数据,可以成为对泄漏和破损防护强的结构。对泄漏和破损的耐性可以用(n,DS,LS1,LS2)四组参数表现。DS,LS1,LS2都是(泄漏和破损的产生)实体(entity)的组合的集合,DS表现对于数据的破损的耐性,LS1、LS2表现对于泄漏的耐性。在DS中记述了即使损坏也没有关系的实体的组合。记述即使由于灾害等理由,包含本地备份的保存着的数据不能完全地利用,利用者也可以还原自身的数据的范围的破损组合。在LS1中,记述即使记录信息泄漏也没关系的实体的组合。设为即使保存数据泄漏,攻击者也难以还原利用者的数据的范围的泄漏组合。在LS2中记述即使记录信息泄漏,在之后也采取某些对策的范围的实体的组合。设为即使保存数据泄漏,攻击者也难以还原利用者的数据的对策的存在的范围的泄漏组合。
而且,在假设用户的存储信息为可用离线方式全数搜索的少量时,使用以往的对泄漏防护弱的认证方式的情况下,攻击者使用泄漏信息和在通信线路上得到的信息,可以全数搜索利用者的存储信息,其结果,可以伪装成利用者得到所有被远隔分散保存的数据。即,已不能在LS1中分别包含服务器{S}和用户的所有物{U}。对此,通过使用对泄漏防护强的认证方式,可以在LS1中分别包含服务器{S}和用户的所有物{U}。在包含对泄漏防护强的认证方式的所有的认证方式在从用户的所有物{U}和服务器{S}两者泄漏信息时,可以全数搜索利用者的存储信息,其结果,可以伪装成利用者得到所有被远隔分散保存的数据。因此,已不能在LS2中加入用户的所有物{U}和服务器{S}的组合{US}。对此,可以通过更新P’和H1,…,Hn在LS2中加入用户的所有物和服务器的组合。
接着,参照图22,说明图21所示的数据分割器51的结构。调整器511将被输入的参数n,k传递给秘密分散器512。秘密分散器512按照被输入的参数n,k将保存的数据DATA变换为(k,n)分散数据S1,S2,…,Sn。接着,调整器511根据作为数据的ID的DID产生数据扩展器513的输入x并传递给数据扩展器513。数据扩展器513输出对应的信息H,并将其传递给加密器514。这里的H利用对离线方式的全数搜索防护强的长的H。在数据扩展器513输出短的H的情况下,将不同的x传递给多个数据扩展器513,并利用得到的多个H。加密器514将H作为密钥来加密n-k+1个以上的分散数据。而且,也可以对各个S1,…,Sn-k+1附加窜改检测符号。加密器的输出为S’1,…,S’n,与DID,ID1,ID2,…,IDn一起成为数据分割器51的输出。
而且,(k,n)分散数据是元数据被分割为n个的数据,并且,是具有无论根据哪k个都可以还原原来的数据,但是在小于k时不能还原的性质的数据。在(k,n)分散数据以外,也可以利用具有任意的访问结构的分散数据。而且,秘密分散器除了使用多项式和矩阵的在信息量方面安全的分散方式以外,可以使用通过加密来减少保存数据大小的在计算量方面安全的分散方式。
该数据分割器51实现(n,DS,LS1,LS2)=(n,{CSn-k},{UC,CSn},{UCSk-1}。{CS}意思是客户机和服务器的记录信息及其部分信息,{Sn}意思是n台的服务器的全记录信息及其部分信息。{C,S}意思是“客户机中记录的全部信息及其部分信息或者服务器中记录的全部信息及其部分信息”。来自{UCSk-1}的泄漏可以用认证信息的更新来对应。如果在攻击者在根据{UCSk-1}求存储信息期间认证信息被更新,则攻击者不能求利用者的数据。对于用户的所有物{U}的丢失(P’的丢失),可以通过每次更新记录在{U}中的数据时在本机作成其复制件来解决。对于由于灾害等本机复制件和{U}一起损坏的危险性,可以通过预先将{U}中记录的数据用秘密分散器以(k’,n)分散数据分割从而还保存到各服务器来解决。在k’>=k的情况下,可以实现(n,DS,LS1,LS2)=(n,{UCSn-k’,CSn-k},{UC,CSk’-1},{UCSk-1}),在k’<k的情况下,实现(n,DS,LS 1,LS2)=(n,{UCSn-k,CSn-k},{UC,CSk’-1},{UCSk-1,CSk-1})。
进而,如果将用户的所有物中记录的所有数据和存储信息或者它们的一部分也用秘密分散器分割为(k’,n)从而也保存到各服务器,则即使假设用户忘记了存储信息,也可以通过离线解析还原(所有物的记录信息)存储信息。这时,1)在分散所有信息时可以节省离线解析,2)在分散一部分信息时可以根据其量来减少离线解析的计算量。通过该功能,在用户赋予第三者解密数据的权限时,可以调整还原数据的容易度(也和攻击者得到{CSk’}时的数据还原的容易度相同)。
<不在终端中保存数据时的远隔分散保存装置中的数据还原处理>
接着,参照图23,对不在终端中保存数据时的远隔分散保存装置终端数据还原处理进行说明。图23是不在终端中保存数据时的远隔分散保存装置5的结构的方框图。
数据还原器54在与被输入的DID对应的分散数据S’1,…,S’n内,经由通信器52从服务器ID1,ID2,…,IDn获得至少k个。数据还原器54在S’1,…,S’n内至少处理k个从而还原DATA。用同样的方法,可以还原保存数据的一览。而且,使用户的终端装置21(认证数据更新模式)以适当的间隔(以比存储信息用离线全数搜索求出的间隔更短的间隔,例如每次进行认证或者2、3天一次等)动作,产生更新P’和被记录在各服务器中的H的信息UP’,UH1,…,UHn,更新它们。
接着,参照图24说明图23所示的数据还原器54的结构。调整器541输出被输入的n台的服务器ID、ID1,ID2,…,IDn和DID。而且,调整器541根据DID产生数据扩展器542的输入x并传递该给数据扩展器542。数据扩展器542输出对应的信息H,并将其传递给加密器543。加密器543在得到的分散数据S’1,S’2,…,S’n中还原被加密的数据,并将S1,S2,…,Sn传递给秘密分散还原器。秘密分散还原器544根据被传递的数据还原DATA。而且,也可以进行窜改检测,仅将没有进行窜改的分散数据传递k个。
<还在终端中保存分散数据时的远隔分散保存装置中的数据保存处理>
接着,参照图25,对还在终端中保存分散数据时的远隔分散保存装置中的数据保存处理进行说明。图25是还在终端中保存分散数据时的远隔分散保存装置5的结构的方框图。这里,仅说明与图21所示的结构不同的部分。
用户将要分散保存的数据DATA用自身的终端装置21进行处理,并分割为留在手中的数据DL和保存在n台服务器中的数据RS’1,…,RS’n。DL被保存在手中的记录装置21中,分割数据RS’1与作为数据的ID的DID一起通过利用与服务器的认证装置共用的密钥Ski作成的安全的通信路径,通过用户的终端装置21被发送并保存到服务器IDi。用同样的方法,可以分割保存数据的一览信息并保存到服务器。
这样,通过将分散数据的一部分置于自身的终端装置21中,可以减少与服务器的通信量。可以是根据破损的服务器的组合改变通信量的方式或者不改变通信量的方式,但是,改变的方法的情况下,可以减少n台服务器整体的存储区域。而且,对于泄漏和破损的耐性,可以保持为与不将数据置于手中时相同。
接着,参照图26,说明图25所示的数据分割器51的结构。这里,仅说明与图22所示的结构不同的部分。加密器515从随机数产生器516产生随机数,将其作为密钥对保存数据加密,并将其作为DL输出。调整器511将被输入的参数n,k传递给秘密分散器512。秘密分散器512按照被输入的参数n,k将R变换为(k,n)分散数据RS1,RS2,…,RSn。接着,调整器511根据作为数据的ID的DID产生数据扩展器513的输入x并传递给数据扩展器513。数据扩展器513输出对应的信息H,并将其作为密钥传递给加密器514。这里,H利用对离线方式的全数搜索防护强的长的H。在数据扩展器513输出短的H的情况下,将不同的x传递给多个数据扩展器513,并利用得到的多个H。加密器514将H作为密钥来加密n-k+1个以上的分散数据。而且,也可以对各个RS1,…,RSn-k+1附加窜改检测符号。加密器的输出为RS’1,…,RS’n。
而且,在(k,n)分散数据以外,也可以利用具有任意的访问结构的分散数据。而且,秘密分散器512中可以利用使用了多项式和矩阵的在信息量方面安全的分散方式,以及使用秘密的在计算量方面安全的分散方式,但是在R的尺寸小的情况下,由于利用在计算量方面安全的分散方式导致尺寸的减小效果小,所以使用在信息量方面安全的分散方式较好。
<在终端中也保存分散数据时的远隔分散保存装置中的数据还原处理>
接着,参照图27,对还在终端中保存数据时的远隔分散保存装置中的数据还原处理进行说明。图23是还在终端中保存数据时的远隔分散保存装置5的结构的方框图。这里,仅对与图23所示的结构不同的部分。
数据还原器54在与被输入的DID对应的分散数据RS’1,…,RS’n内,经由通信器从服务器ID1,ID2,…,IDn获得至少k个。数据还原器54在RS’1,…,RS’n内至少处理k个从而还原DATA。用同样的方法,可以还原保存数据的一览。
接着,参照图28说明图27所示的数据还原器54的结构。这里,仅对与图24所示的结构不同的部分进行说明。调整器541根据DID产生数据扩展器542的输入x并传递该给数据扩展器542。数据扩展器542输出对应的信息H,并将其传递给加密器543。加密器543在得到的分散数据RS’1,RS’2,…,RS’n中还原被加密的数据,并将RS1,…,RSn传递给秘密分散还原器544。秘密分散还原器544根据被传递的数据通过解密器545还原DATA。而且,也可以进行窜改检测,仅将没有进行窜改的分散数据传递k个。
而且,也可以将用于实现附图所示的各处理部的功能的程序记录在计算机可读取的记录介质中,通过将被记录在该记录介质中的程序读入计算机系统并执行,进行认证处理、密钥交换处理。而且,这里所述的“计算机系统”包含OS和周边设备等的硬件。而且,“计算机系统”还包含具有主页提供环境(或者显示环境)的WWW系统。而且,“计算机可读取的记录介质”指软盘、光磁盘、ROM、CD-ROM等的可移动介质、内置于计算机系统内的硬盘等存储装置。进而,“计算机可读取的记录介质”还包含如经由因特网等的网络和电话线路等通信线路发送程序时的服务器和客户机的计算机系统内部的易失性存储器(RAM)那样,一定时间保持程序的器件。
而且,上述程序也可以从将该程序存储在存储装置等的计算机系统,经由传送介质,或者通过传送介质中的传送波而被传送到其它的计算机系统。这里,传送程序的“传送介质”指因特网等网络(通信网络)和电话线路等的通信线路(通信线路)那样具有传送信息的功能的介质。而且,上述程序也可以是用于实现上述的功能的一部分的程序。进而,也可以是通过已经记录在计算机系统中的程序的组合实现上述功能的文件,即所谓差分文件(差分程序)。
本发明在产业上的可利用性在于按照本发明,即使从终端装置方或者服务器方保存在装置内的信息泄漏,也不能通过离线分析找到密码,所以得到可以防止服务器的非法利用的效果。而且,由于不需要使用用于防止被保存在装置内的信息被盗的耐窜改性的模块,所以可以使装置结构简化。而且,由于不需要进行公开密钥加密系统那样复杂的密钥管理处理,所以可以提高计算处理,同时简化处理内容。而且,对于多个服务器也可以扩展。
进而,通过在各服务器和终端装置间一边使用户ID同步一边动态地变化,可以防止盗听者利用用户ID而联系用户的私人信息。
权利要求
1.一种认证系统,在终端装置和服务器之间进行相互认证,其特征在于,所述终端装置具有存储部件,预先存储用户保存用的认证信息P’;结合部件,将从所述存储部件读出的认证信息P’和认证时输入的密码作为输入,通过规定的计算式求值P;掩码运算部件,将所述值P和在内部产生的随机数作为输入,通过规定的计算式求值Y1,发送到所述服务器;以及主密钥产生部件,将所述值P和在内部产生的随机数和从所述服务器接收的值Y2作为输入,通过规定的计算式求值MK,所述服务器具有存储部件,预先存储服务器注册用的密码认证数据H;掩码运算部件,将从所述存储部件读出的密码认证数据H和在内部产生的随机数作为输入,通过规定的计算式求值Y2,发送到所述终端装置;以及主密钥产生部件,将所述密码认证数据H和在内部产生的随机数和从所述终端装置接收的值Y1作为输入,通过规定的计算式求值MK。
2.如权利要求1所述的认证系统,其特征在于,还包括数据扩展部件,根据用户预先决定的密码,求所述密码认证数据H和所述认证信息P’。
3.如权利要求1或2所述的认证系统,其特征在于,所述终端装置还包括认证结果判断部件,将所述值MK作为输入,通过规定的计算式求值V1,发送到服务器,同时比较核对从所述服务器接收的值V2和将所述值MK作为输入而通过规定的计算式计算的值V2,在一致的情况下认证服务器,所述服务器还包括认证结果判断部件,将所述值MK作为输入,通过规定的计算式求值V2,发送到终端装置,同时比较核对从所述终端装置接收的值V1和将所述值MK作为输入而通过规定的计算式计算的值V1,在一致的情况下认证终端装置。
4.如权利要求3所述的认证系统,其特征在于,所述终端装置和服务器各自具有在进行了相互的认证的情况下,产生通话密钥的通话密钥产生部件。
5.如权利要求1至4的任意一项所述的认证系统,其特征在于,所述认证信息P’为多项式。
6.如权利要求1至4的任意一项所述的认证系统,其特征在于,所述认证信息P’为多项式和散列函数。
7.如权利要求1至4的任意一项所述的认证系统,其特征在于,所述认证信息P’为散列函数。
8.如权利要求1至4的任意一项所述的认证系统,其特征在于,所述认证信息P’为伪随机函数。
9.一种认证程序,在终端装置和服务器之间进行相互地认证的认证系统中的终端装置上工作,其特征在于,该认证程序使计算机执行以下处理存储处理,预先存储用户保存用的认证信息P’;结合处理,将所述预先存储的认证信息P’和认证时输入的密码作为输入,通过规定的计算式求值P;掩码运算处理,将所述值P和在内部产生的随机数作为输入,通过规定的计算式求值Y1,发送到所述服务器;以及主密钥产生处理,将所述值P和在内部产生的随机数和从所述服务器接收的值Y2作为输入,通过规定的计算式求值MK。
10.如权利要求9所述的认证程序,其特征在于,该程序进一步使计算机执行数据扩展处理,该处理根据用户预先决定的密码,求所述认证信息P’。
11.如权利要求10所述的认证程序,其特征在于,该程序进一步使计算机执行认证结果判断处理,将所述值MK作为输入,通过规定的计算式求值V1,发送到服务器,同时比较核对从所述服务器接收的值V2和将所述值MK作为输入而通过规定的计算式计算的值V2,在一致的情况下认证服务器。
12.一种认证程序,在终端装置和服务器之间进行相互地认证的认证系统中的服务器上工作,其特征在于,该认证程序使计算机执行以下处理存储处理,预先存储服务器注册用的密码认证数据H;掩码运算处理,将预先存储的密码认证数据H和在内部产生的随机数作为输入,通过规定的计算式求值Y2,发送到所述终端装置;以及主密钥产生处理,将所述密码认证数据H和在内部产生的随机数和从所述终端装置接收的值Y1作为输入,通过规定的计算式求值MK。
13.如权利要求12所述的认证程序,其特征在于,该程序进一步使计算机执行数据扩展处理,该处理根据用户预先决定的密码,求所述密码认证数据H。
14.如权利要求13所述的认证程序,其特征在于,该程序进一步使计算机执行认证结果判断处理,将所述值MK作为输入,通过规定的计算式求值V2,发送到终端装置,同时比较核对从所述终端装置接收的值V1和将所述值MK作为输入而通过规定的计算式计算的值V1,在一致的情况下认证终端装置。
15.如权利要求11或14所述的认证程序,其特征在于,分别具有所述终端装置和服务器在进行了相互的认证的情况下,产生通话密钥的通话密钥产生处理。
16.如权利要求9至15的任意一项所述的认证程序,其特征在于,所述认证信息P’为多项式。
17.如权利要求9至15的任意一项所述的认证程序,其特征在于,所述认证信息P’为多项式和散列函数。
18.如权利要求9至15的任意一项所述的认证程序,其特征在于,所述认证信息P’为散列函数。
19.如权利要求9至15的任意一项所述的认证程序,其特征在于,所述认证信息P’为伪随机函数。
20.如权利要求2所述的认证系统,其特征在于,所述终端装置包括产生部件,产生更新信息T’;以及更新信息产生部件,输入所述存储部件中存储的认证信息P’和所述更新信息T’,并通过规定的计算式求服务器更新用的密码认证数据H’和新的认证信息P’,将服务器更新用的密码认证数据H’发送到所述服务器,同时将新的认证信息P’存储在所述存储部件中,所述服务器包括更新信息产生部件,输入从所述终端装置发送的服务器更新用的密码认证数据H’和所述存储部件中存储的密码认证数据H,并通过规定的计算式求新的密码认证数据H,从而对存储在所述存储部件中的密码认证数据H进行更新。
21.如权利要求2所述的认证系统,其特征在于,所述终端装置包括产生部件,产生秘密信息S’;以及更新信息产生部件,输入存储于所述存储部件中的认证信息P’和所述秘密信息S’和新的密码,并通过规定的计算式求服务器更新用的密码认证数据H’和新的认证信息P’,将服务器更新用的密码认证数据H’发送到所述服务器,同时将新的认证信息P’存储在所述存储部件中,所述服务器包括更新信息产生部件,输入从所述终端装置发送的服务器更新用的密码认证数据H’和所述存储部件中存储的密码认证数据H,并通过规定的计算式求新的密码认证数据H,从而对存储在所述存储部件中的密码认证数据H进行更新。
22.一种认证系统,在终端装置和服务器之间进行相互认证,其特征在于,所述终端装置包括存储部件,预先存储用户保存用的认证信息P’和RSA公开密钥(N,e);结合部件,将从所述存储部件读出的认证信息P’和认证时输入的密码作为输入,通过规定的计算式求值W;以及掩码运算部件,将所述值W和从所述存储部件中读出的RSA公开密钥(N,e)和在内部产生的随机数T作为输入,通过规定的计算式求值Z,发送到所述服务器,所述服务器包括存储部件,预先存储服务器注册用的密码认证数据H和RSA秘密密钥(N,d);以及主密钥产生部件,将从所述存储部件读出的密码认证数据H和RSA秘密密钥(N,d)和从所述终端装置接收的值Z作为输入,通过规定的计算式求值T。
23.如权利要求22所述的认证系统,其特征在于,还包括数据扩展部件,根据用户预先决定的密码,求所述密码认证数据H和所述认证信息P’。
24.如权利要求22所述的认证系统,其特征在于,还包括RSA密钥产生部件,求所述RSA公开密钥(N,e)和所述RSA秘密密钥(N,d)。
25.如权利要求22至24的任意一项所述的认证系统,其特征在于,所述终端装置还包括;认证结果判断部件,比较核对从所述服务器接收的值V2和将所述随机数T作为输入而通过规定的计算式计算的值V2,在一致的情况下认证服务器;以及验证符产生部件,将所述随机数T作为输入,通过规定的计算式求V1,发送到所述服务器,所述服务器还包括验证符产生部件,将所述值T作为输入,通过规定的计算式求值V2,发送到所述终端装置;以及认证结果判断部件,比较核对从所述终端装置接收的值V1和将所述值T作为输入而通过规定的计算式计算的值V1,在一致的情况下认证终端装置。
26.如权利要求25所述的认证系统,其特征在于,所述终端装置和服务器还分别包括在进行了相互的认证的情况下,产生通话密钥的通话密钥产生部件。
27.如权利要求22至26的任意一项所述的认证系统,其特征在于,所述认证信息P’为多项式和FDH函数。
28.如权利要求22至26的任意一项所述的认证系统,其特征在于,所述认证信息P’为FDH函数。
29.如权利要求22至26的任意一项所述的认证系统,其特征在于,所述RSA公开密钥(N,e)使用安全的通信。
30.如权利要求22至26的任意一项所述的认证系统,其特征在于,所述RSA公开密钥(N,e)使用非安全的通信。
31.一种认证程序,在终端装置和服务器之间进行相互地认证的认证系统中的终端装置上工作,其特征在于,该认证程序使计算机执行以下处理存储处理,预先存储用户保存用的认证信息P’和RSA公开密钥(N,e);结合处理,将所述预先存储认证信息P’和认证时输入的密码作为输入,通过规定的计算式求值W;以及掩码运算处理,将所述值W和所述预先存储的RSA公开密钥(N,e)和在内部产生的随机数T作为输入,通过规定的计算式求值Z,发送到所述服务器。
32.如权利要求31所述的认证程序,其特征在于,使计算机进一步执行数据扩展处理,该处理根据用户预先决定的密码,求所述认证信息P’。
33.如权利要求31所述的认证程序,其特征在于,使计算机进一步执行求所述RSA公开密钥(N,e)的RSA密钥产生处理。
34.如权利要求31至33的任意一项所述的认证程序,其特征在于,使计算机进一步执行以下处理认证结果判断处理,比较核对从所述服务器接收的值V2和将所述随机数T作为输入而通过规定的计算式计算的值V2,在一致的情况下认证服务器;以及验证符产生处理,将所述随机数T作为输入,通过规定的计算式求值V1,发送到所述服务器。
35.一种认证程序,在终端装置和服务器之间进行相互地认证的认证系统中的服务器上工作,其特征在于,该认证程序使计算机执行以下处理存储处理,预先存储服务器注册用的密码认证数据H和RSA秘密密钥(N,d);以及主密钥产生处理,将所述预先存储的密码认证数据H和RSA秘密密钥(N,d)和从所述终端装置接收的值Z作为输入,通过规定的计算式求值T。
36.如权利要求35所述的认证程序,其特征在于,使计算机进一步执行数据扩展处理,该处理根据用户预先决定的密码,求所述密码认证数据H。
37.如权利要求35所述的认证程序,其特征在于,使计算机进一步执行求所述RSA秘密密钥(N,d)的RSA密钥产生处理。
38.如权利要求35至37的任意一项所述的认证程序,其特征在于,使计算机执行验证符产生处理,将所述值T作为输入,通过规定的计算式求值V2,发送到所述终端装置;以及认证结果判断处理,比较核对从所述终端装置接收的值V1和将所述值T作为输入而通过规定的计算式计算的值V1,在一致的情况下认证终端装置。
39.如权利要求34或者38所述的认证程序,其特征在于,分别具有在所述终端装置和服务器进行了相互的认证的情况下,产生通话密钥的通话密钥产生处理。
40.如权利要求31至39的任意一项所述的认证程序,其特征在于,所述认证信息P’为多项式和FDH函数。
41.如权利要求31至39的任意一项所述的认证程序,其特征在于,所述认证信息P’为FDH函数。
42.如权利要求31至39的任意一项所述的认证程序,其特征在于,所述RSA公开密钥(N,e)使用安全的通信。
43.如权利要求31至39的任意一项所述的认证程序,其特征在于,所述RSA公开密钥(N,e)使用非安全的通信。
44.如权利要求23所述的认证系统,其特征在于,所述终端装置还包括产生部件,产生更新信息T’;以及更新信息产生部件,输入存储在所述存储部件中的认证信息P’和所述更新信息T’,并通过规定的计算式求服务器更新用的密码认证数据H’和新的认证信息P’,将服务器更新用的密码认证数据H’发送到所述服务器,同时将新的认证信息P’存储在所述存储部件中,所述服务器还包括更新信息产生部件,输入从所述终端装置发送的服务器更新用的密码认证数据H’和被存储在所述存储部件中的密码认证数据H,通过规定的计算式求新的密码认证数据H,从而更新存储在所述存储部件中的密码认证数据H。
45.如权利要求22所述的认证系统,其特征在于,所述终端装置包括更新信息产生部件,输入被存储在所述存储部件中的认证信息P’和所述随机数T,通过规定的计算式求新的认证信息P’,将新的认证信息P’存储在所述存储部件中,所述服务器包括更新信息产生部件,输入被存储在所述存储部件中的密码认证数据H和由所述主密钥产生部件求出的值T,通过规定的计算式求新的密码认证数据H,从而更新被存储在所述存储部件中的密码认证数据H。
46.如权利要求23所述的认证系统,其特征在于,所述终端装置包括产生部件,产生秘密信息S’;更新信息产生部件,输入被存储在所述存储部件中的认证信息P’和所述秘密信息S’和新的密码,通过规定的计算式求服务器更新用的密码认证数据H’和新的认证信息P’,所述服务器包括更新信息产生部件,输入从所述终端装置发送的服务器更新用的密码认证数据H’和被存储在所述存储部件中的密码认证数据H,通过规定的计算式求新的密码认证数据H,从而更新存储在所述存储部件中的密码认证数据H。
47.一种远隔分散保存系统,在终端装置和多个服务器之间进行相互认证,将所述终端装置内的保存对象的数据分散保存在所述服务器内,其特征在于,所述终端装置包括数据扩展部件,根据用户预先决定的密码,求服务器注册用的密码认证数据H和用户保存用的认证信息P’;存储部件,预先存储由所述数据扩展部件求出的认证信息P’;结合部件,将从所述存储部件中读出的认证信息P’和认证时被输入的密码作为输入,通过规定的计算式求值P;掩码运算部件,将所述值P和在内部产生的随机数作为输入,通过规定的计算式求值Y1,发送到所述服务器;主密钥产生部件,将所述值P和在内部产生的随机数和从所述服务器接收到的值Y2作为输入,通过规定的计算式求值MK;认证结果判断部件,将所述值MK作为输入,通过规定的计算式求值V1,发送到服务器,同时比较核对从所述服务器接收到的值V2和值V1,并在一致的情况下认证服务器;通话密钥产生部件,在进行了服务器的认证的情况下,仅生成服务器的数量的通话密钥SK;分割部件,将所述保存对象的数据分割,得到与认证了的服务器的数量相同数量的分割数据;数据保存部件,用与保存目的地的服务器共用的所述通话密钥SK,对各个所述分割数据和识别保存对象的数据的识别信息进行加密,从而对各服务器发送;以及数据还原部件,从保存了分割数据的各服务器接收分割数据,并还原所述保存对象的数据,所述服务器包括存储部件,预先存储通过所述数据扩展部件求出的密码认证数据H;掩码运算部件,将从所述存储部件读出的密码认证数据H和在内部产生的随机数作为输入,通过规定的计算式求值Y2,发送到所述终端装置;主密钥产生部件,将所述密码认证数据H和在内部产生的随机数和从所述终端装置接收的值Y1作为输入,通过规定的计算式求值MK;认证结果判断部件,将所述值MK作为输入,通过规定的计算式求值V2,发送到终端装置,同时比较核对从所述终端装置接收的值V1和值V2,并在一致的情况下认证终端装置;通话密钥产生部件,在进行了终端装置的认证的情况下,产生通话密钥;数据接收部件,接收从终端装置接收的分割数据;数据存储部件,存储所述分割数据;以及数据发送部件,读出被保存在所述数据存储部件中的分割数据并发送到终端装置。
48.如权利要求47所述的远隔分散保存系统,其特征在于,将所述分割数据的一部分保存在所述终端装置内。
49.一种远隔分散保存程序,在终端装置和多个服务器之间进行相互认证,将所述终端装置内的保存对象的数据分散保存在所述服务器内的远隔分散保存系统中的终端装置上进行动作,其特征在于,该程序使计算机执行以下处理数据扩展处理,根据用户预先决定的密码,求服务器注册用的密码认证数据H和用户保存用的认证信息P’;存储处理,预先存储由所述数据扩展处理求出的认证信息P,;结合处理,将从所述存储处理中读出的认证信息P’和认证时被输入的密码作为输入,通过规定的计算式求值P;掩码运算处理,将所述值P和在内部产生的随机数作为输入,通过规定的计算式求值Y1,发送到所述服务器;主密钥产生处理,将所述值P和在内部产生的随机数和从所述服务器接收到的值Y2作为输入,通过规定的计算式求值MK;认证结果判断处理,将所述值MK作为输入,通过规定的计算式求值V1,发送到服务器,同时比较核对从所述服务器接收到的值V2和值V1,并在一致的情况下认证服务器;通话密钥产生处理,在进行了服务器的认证的情况下,仅生成服务器的数量的通话密钥SK;分割处理,将所述保存对象的数据分割,得到与认证了的服务器的数量相同数量的分割数据;数据保存处理,用与保存目的地的服务器共用的所述通话密钥SK,对各个所述分割数据和识别保存对象的数据的识别信息进行加密,从而对各服务器发送;以及数据还原处理,从保存了分割数据的各服务器接收分割数据,并还原所述保存对象的数据。
50.一种远隔分散保存程序,在终端装置和多个服务器之间进行相互认证,将所述终端装置内的保存对象的数据分散保存在所述服务器内的远隔分散保存系统中的服务器上进行动作,其特征在于,该程序使计算机执行以下处理存储处理,预先存储通过所述数据扩展处理求出的密码认证数据H;掩码运算处理,将从所述存储处理读出的密码认证数据H和在内部产生的随机数作为输入,通过规定的计算式求值Y2,发送到所述终端装置;主密钥产生处理,将所述密码认证数据H和在内部产生的随机数和从所述终端装置接收的值Y1作为输入,通过规定的计算式求值MK;认证结果判断处理,将所述值MK作为输入,通过规定的计算式求值V2,发送到终端装置,同时比较核对从所述终端装置接收的值V1和值V2,并在一致的情况下认证终端装置;通话密钥产生处理,在进行了终端装置的认证的情况下,产生通话密钥;数据接收处理,接收从终端装置接收的分割数据;数据存储处理,存储所述分割数据;以及数据发送处理,读出在所述数据存储处理中被保存的分割数据并发送到终端装置。
全文摘要
本发明提供一种认证系统,其中终端装置(1)根据被输入的密码,通过规定的计算,基于由主密钥产生器(36)产生的值MK在认证结果判断器(37)中计算值V1、V2从而将V1发送到服务器(2),所述服务器(2)通过安全的通信手段,根据预先共用并记录的所述终端装置(1)的服务器注册用密码,通过规定的计算,基于由主密钥产生器(45)输出的值MK,在认证结果判断部(46)中计算值V1、V2,从而将值V2发送到所述终端装置(1),并根据是否可以通过规定的计算算出这些值来进行相互的认证。
文档编号G06F15/00GK1871810SQ20048003075
公开日2006年11月29日 申请日期2004年10月7日 优先权日2003年10月28日
发明者今井秀树, 古原和邦, 辛星汉 申请人:财团法人生产技术研究奖励会
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1