发明内容
本发明是基于上述问题而提供的,其目的在于提供一种认证方法、装置以及认证系统,以保证通信的安全性。
为了解决上述目的,本发明提供一种认证方法,包括:第一装置与第二装置之间进行认证,第三装置与通过了上述第一装置与第二装置之间的认证的第一装置之间进行认证,当所述第三装置与所述第一装置之间的认证通过后,所述第三装置通过所述第一装置与所述第二装置之间进行认证。
较佳地,所述第一装置与第二装置之间进行认证的步骤包括:所述第一装置生成第一认证信息,发送给所述第二装置,所述第二装置生成第二认证信息,发送给所述第一装置,所述第一装置利用所述第二认证信息对所述第二装置进行认证,所述第二装置利用所述第一认证信息对所述第一装置进行认证。
较佳地,所述第一装置生成第一认证信息的步骤包括:所述第一装置产生第一随机数Ri和安全熵参数CTi,所述第一装置基于安全熵参数CTi,利用可重组逻辑电路生成安全熵混合数STi,所述第一装置基于第一随机数Ri、安全熵混合数STi、用户私钥Si、以及安全熵参数CTi来产生第一认证信息,所述第二装置生成第二认证信息的步骤包括:所述第二装置产生第一随机数Rj和安全熵参数CTj,所述第二装置基于安全熵参数CTj,利用可重组逻辑电路生成安全熵混合数STj,所述第二装置基于第一随机数Rj、安全熵混合数STj、用户私钥Sj、以及安全熵参数CTj来产生第二认证信息,所述第一装置利用所述第二认证信息对所述第二装置进行认证的步骤包括:第一装置根据第二认证信息计算出第二装置的公钥证书GCj’,并利用计算出的公钥证书GCj’来认证第二装置,所述第二装置利用所述第一认证信息对所述第一装置进行认证的步骤包括:第二装置根据第一认证信息计算出第一装置的公钥证书GCi’,并利用计算出的公钥证书GCi’来认证第一装置。
较佳地,所述第一装置基于第一随机数Ri、安全熵混合数STi、用户私钥Si、以及安全熵参数CTi来产生第一认证信息的步骤包括:基于第一随机数Ri、安全熵混合数STi,用户私钥Si,按照下式产生Xi、Yi:
Xi=ge*Ri mod n
Yi=Si*gSTi*Ri mod n
其中,e、n、g是授权中心的公钥相关的参数,
将Xi、Yi、CTi作为第一认证信息,
所述第二装置基于第一随机数Rj、安全熵混合数STj、用户私钥Sj、以及安全熵参数CTj来产生第二认证信息的步骤包括:
基于第一随机数Rj、安全熵混合数STj,用户私钥Sj,按照下式产生Xj、Yj:
Xj=ge*Rj mod n
Yj=Sj*gSTj*Rj mod n
其中,e、n、g是授权中心的公钥相关的参数,
将Xj、Yj、CTj作为第二认证信息。
较佳地,所述第二装置根据第一认证信息计算出第一装置的公钥证书GCi’的步骤包括:
第二装置从第一认证信息中提取第一装置的安全熵参数CTi;
基于安全熵参数CTi,利用可重组逻辑电路计算出第一装置的安全熵指数CKi;
利用第一认证信息中包含的Xi、Yi、以及上述计算出的安全熵指数CKi,按照下式计算第一装置的公钥证书GCi’:
XiCKi/Yie mod n=GCi’,
其中e、n是授权中心的公钥相关的参数,
所述第一装置根据第二认证信息计算出第二装置的公钥证书GCj’的步骤包括:
第一装置从第二认证信息中提取第二装置的安全熵参数CTj;
基于安全熵参数CTj,利用可重组逻辑电路计算出第一装置的安全熵指数CKj;
利用第二认证信息中包含的Xj、Yj、以及上述计算出的安全熵指数CKj,按照下式计算第二装置的公钥证书GCj’:
XjCKj/Yje mod n=GCj’,
其中e、n是授权中心的公钥相关的参数。
较佳地,所述第一装置在生成第一认证信息之后,对所述第一认证信息进行加密得到加密的第一认证信息,并将该加密的第一认证信息发送给所述第二装置,所述第二装置在生成第二认证信息之后,对所述第二认证信息进行加密得到加密的第二认证信息,并将该加密的第二认证信息发送给所述第一装置,所述第二装置对所接收到的加密的第一认证信息进行解密得到第一认证信息,所述第一装置对所接收到的加密的第二认证信息进行解密得到第二认证信息。
较佳地,所述第三装置与所述第一装置之间进行认证的步骤包括:所述第三装置生成第三认证信息,发送给所述第一装置,所述第一装置生成第四认证信息,发送给所述第三装置,所述第一装置利用所述第三认证信息对所述第三装置进行认证,所述第三装置利用所述第四认证信息对所述第一装置进行认证。
较佳地,所述第三装置生成第三认证信息的步骤包括:所述第三装置产生第一随机数Ri和安全熵参数CTi,所述第三装置基于安全熵参数CTi,利用可重组逻辑电路生成安全熵混合数STi,所述第三装置基于第一随机数Ri、安全熵混合数STi、用户私钥Si、以及安全熵参数CTi来产生第三认证信息,所述第一装置生成第四认证信息的步骤包括:所述第一装置产生第一随机数Rj和安全熵参数CTj,所述第一装置基于安全熵参数CTj,利用可重组逻辑电路生成安全熵混合数STj,所述第一装置基于第一随机数Rj、安全熵混合数STj、用户私钥Sj、以及安全熵参数CTj来产生第四认证信息,所述第一装置利用所述第三认证信息对所述第三装置进行认证的步骤包括:第一装置根据第三认证信息计算出第三装置的公钥证书GCi’,并利用计算出的公钥证书GCi’来认证第三装置,所述第三装置利用所述第四认证信息对所述第一装置进行认证的步骤包括:第三装置根据第四认证信息计算出第一装置的公钥证书GCj’,并利用计算出的公钥证书GCj’来认证第一装置。
较佳地,所述第三装置基于第一随机数Ri、安全熵混合数STi、用户私钥Si、以及安全熵参数CTi来产生第三认证信息的步骤包括:
基于第一随机数Ri、安全熵混合数STi,用户私钥Si,按照下式产生Xi、Yi:
Xi=ge*Ri mod n
Yi=Si*gSTi*Ri mod n
其中,e、n、g是授权中心的公钥相关的参数,
将Xi、Yi、CTi作为第三认证信息,
所述第一装置基于第一随机数Rj、安全熵混合数STj、用户私钥Sj、以及安全熵参数CTj来产生第四认证信息的步骤包括:
基于第一随机数Rj、安全熵混合数STj,用户私钥Sj,按照下式产生Xj、Yj:
Xj=ge*Ri mod n
Yj=Sj*gSTj*Rj mod n
其中,e、n、g是授权中心的公钥相关的参数,
将Xj、Yj、CTj作为第四认证信息。
较佳地,所述第三装置根据第四认证信息计算出第一装置的公钥证书GCj’的步骤包括:
第三装置从第四认证信息中提取第一装置的安全熵参数CTj;
基于安全熵参数CTj,利用可重组逻辑电路计算出第一装置的安全熵指数CKj;
利用第四认证信息中包含的Xj、Yj、以及上述计算出的安全熵指数CKj,按照下式计算第一装置的公钥证书GCj’:
XjCKj/Yje mod n=GCj’,
其中e、n是授权中心的公钥相关的参数,
所述第一装置根据第三认证信息计算出第三装置的公钥证书GCi’的步骤包括:
第一装置从第三认证信息中提取第三装置的安全熵参数CTi;
基于安全熵参数CTi,利用可重组逻辑电路计算出第三装置的安全熵指数CKi;
利用第三认证信息中包含的Xi、Yi、以及上述计算出的安全熵指数CKi,按照下式计算第三装置的公钥证书GCi’:
XiCKi/Yie mod n=GCi’,
其中e、n是授权中心的公钥相关的参数。
较佳地,所述第三装置在生成第三认证信息之后,对所述第三认证信息进行加密得到加密的第三认证信息,并将该加密的第三认证信息发送给所述第一装置,所述第一装置在生成第四认证信息之后,对所述第四认证信息进行加密得到加密的第四认证信息,并将该加密的第四认证信息发送给所述第三装置,所述第一装置对所接收到的加密的第三认证信息进行解密得到第三认证信息,所述第三装置对所接收到的加密的第四认证信息进行解密得到第四认证信息。
较佳地,所述第三装置通过所述第一装置与所述第二装置之间进行认证的步骤包括:所述第三装置生成第五认证信息,将第五认证信息发送给所述第一装置,所述第一装置将上述第五认证信息转发给所述第二装置,所述第二装置生成第六认证信息,将第六认证信息发送给所述第一装置,所述第一装置将上述第六认证信息转发给所述第三装置,所述第二装置利用所述第五认证信息对所述第三装置进行认证,所述第三装置利用所述第六认证信息对所述第二装置进行认证。
较佳地,所述第三装置生成第五认证信息的步骤包括:所述第三装置产生第一随机数Ri和安全熵参数CTi,所述第三装置基于安全熵参数CTi,利用可重组逻辑电路生成安全熵混合数STi,所述第三装置基于第一随机数Ri、安全熵混合数STi、用户私钥Si、以及安全熵参数CTi来产生第五认证信息,所述第二装置生成第六认证信息的步骤包括:所述第二装置产生第一随机数Rj和安全熵参数CTj,所述第二装置基于安全熵参数CTj,利用可重组逻辑电路生成安全熵混合数STj,所述第二装置基于第一随机数Rj、安全熵混合数STj、用户私钥Sj、以及安全熵参数CTj来产生第六认证信息,所述第二装置利用所述第五认证信息对所述第三装置进行认证的步骤包括:第二装置根据第五认证信息计算出第三装置的公钥证书GCi’,并利用计算出的公钥证书GCi’来认证第三装置,所述第三装置利用所述第六认证信息对所述第二装置进行认证的步骤包括:第三装置根据第六认证信息计算出第二装置的公钥证书GCj’,并利用计算出的公钥证书GCj’来认证第二装置。
较佳地,所述第三装置基于第一随机数Ri、安全熵混合数STi、用户私钥Si、以及安全熵参数CTi来产生第五认证信息的步骤包括:
基于第一随机数Ri、安全熵混合数STi,用户私钥Si,按照下式产生Xi、Yi:
Xi=ge*Ri mod n
Yi=Si*gSTi*Ri mod n
其中,e、n、g是授权中心的公钥相关的参数,
将Xi、Yi、CTi作为第五认证信息,
所述第二装置基于第一随机数Rj、安全熵混合数STj、用户私钥Sj、以及安全熵参数CTj来产生第六认证信息的步骤包括:
基于第一随机数Rj、安全熵混合数STj,用户私钥Sj,按照下式产生Xj、Yj:
Xj=ge*Rj mod n
Yj=Sj*gSTj*Rj mod n
其中,e、n、g是授权中心的公钥相关的参数,
将Xj、Yj、CTj作为第六认证信息。
较佳地,所述第三装置根据第六认证信息计算出第二装置的公钥证书GCj’的步骤包括:
第三装置从第六认证信息中提取第二装置的安全熵参数CTj;
基于安全熵参数CTj,利用可重组逻辑电路计算出第二装置的安全熵指数CKj;
利用第六认证信息中包含的Xj、Yj、以及上述计算出的安全熵指数CKj,按照下式计算第二装置的公钥证书GCj’:
XjCKj/Yje mod n=GCj’,
其中e、n是授权中心的公钥相关的参数,
所述第二装置根据第五认证信息计算出第三装置的公钥证书GCi’的步骤包括:
第二装置从第五认证信息中提取第三装置的安全熵参数CTi;
基于安全熵参数CTi,利用可重组逻辑电路计算出第三装置的安全熵指数CKi;
利用第五认证信息中包含的Xi、Yi、以及上述计算出的安全熵指数CKi,按照下式计算第三装置的公钥证书GCi’:
XiCKi/Yie mod n=GCi’,
其中e、n是授权中心的公钥相关的参数。
较佳地,所述第三装置在生成第五认证信息之后,对所述第五认证信息进行加密得到加密的第五认证信息,并将该加密的第五认证信息发送给所述第一装置,所述第一装置将上述加密的第五认证信息转发给所述第二装置,所述第二装置在生成第六认证信息之后,对所述第六认证信息进行加密得到加密的第六认证信息,并将该加密的第六认证信息发送给所述第一装置,所述第一装置将上述加密的第六认证信息转发给所述第三装置,所述第二装置对所接收到的加密的第五认证信息进行解密得到第五认证信息,所述第三装置对所接收到的加密的第六认证信息进行解密得到第六认证信息。
较佳地,所述可重组逻辑电路包括第一可重组逻辑电路和第二可重组逻辑电路,所述安全熵参数CTi包括第二随机数Rsi、用户安全熵CSTi、系统安全熵CSKi,所述基于安全熵参数CTi,利用可重组逻辑电路生成安全熵混合数STi的步骤包括:将所述随机数Rsi作为所述第一可重组逻辑电路的输入,利用所述用户安全熵CSTi控制所述第一可重组逻辑电路得到第一输出,将所述第一输出作为所述第二可重组逻辑电路的输入,利用所述系统安全熵CSKi控制所述第二可重组逻辑电路,得到安全熵混合数STi,所述安全熵参数CTj包括第二随机数Rsj、用户安全熵CSTj、系统安全熵CSKj,所述基于安全熵参数CTj,利用可重组逻辑电路生成安全熵混合数STj的步骤包括:将所述随机数Rsj作为所述第一可重组逻辑电路的输入,利用所述用户安全熵CSTj控制所述第一可重组逻辑电路得到第一输出,将所述第一输出作为所述第二可重组逻辑电路的输入,利用所述系统安全熵CSKj控制所述第二可重组逻辑电路,得到安全熵混合数STj。
较佳地,所述可重组逻辑电路包括第一可重组逻辑电路和第二可重组逻辑电路,所述安全熵参数CTj包括第二随机数Rsj、用户安全熵CSTj、系统安全熵CSKj,基于安全熵参数CTj,利用可重组逻辑电路计算出第一装置的安全熵指数CKj的步骤包括:将所述随机数Rsj作为所述第一可重组逻辑电路的输入,利用所述用户安全熵CSTj控制所述第一可重组逻辑电路得到第一输出,将所述第一输出作为所述第二可重组逻辑电路的输入,利用所述系统安全熵CSKj控制所述第二可重组逻辑电路,得到安全熵指数CKj,所述安全熵参数CTi包括第二随机数Rsi、用户安全熵CSTi、系统安全熵CSKi,基于安全熵参数CTi,利用可重组逻辑电路计算出第一装置的安全熵指数CKi的步骤包括:将所述随机数Rsi作为所述第一可重组逻辑电路的输入,利用所述用户安全熵CSTi控制所述第一可重组逻辑电路得到第一输出,将所述第一输出作为所述第二可重组逻辑电路的输入,利用所述系统安全熵CSKi控制所述第二可重组逻辑电路,得到安全熵指数CKi。
较佳地,所述加密时使用的加密密钥是p个参数的组合,所述解密时使用的解密密钥是p个参数的组合,其中,p是大于等于1的自然数,所述p个参数是从p个授权中心分别得到的参数。
较佳地,当所述第一装置与所述第二装置之间的认证通过后,所述第一装置与所述第二装置之间协商确定第一密钥,当所述第三装置与所述第一装置之间的认证通过时,所述第三装置与所述第一装置之间协商确定第二密钥,当所述第三装置与所述第二装置之间的认证通过时,所述第三装置与所述第二装置之间协商确定第三密钥。
较佳地,当所述第一装置与所述第二装置之间进行通信时,使用所述第一密钥作为加密通信的密钥进行加密或解密,当所述第三装置与所述第一装置之间进行通信时,使用所述第二密钥作为加密通信的密钥进行加密或解密。
较佳地,当所述第三装置通过所述第一装置向所述第二装置发送数据时,所述第三装置使用所述第三密钥对数据进行加密得到第一加密数据,并将该第一加密数据发送给所述第一装置,所述第一装置使用所述第一密钥对所述第一加密数据进行加密得到第二加密数据,并将该第二加密数据发送给所述第二装置,所述第二装置使用第一密钥对所述第二加密数据进行解密得到第一加密数据,使用第三密钥对所述第一加密数据解密得到数据。
较佳地,当所述第二装置通过所述第一装置向所述第三装置进行通信时,所述第二装置使用所述第三密钥对数据进行加密得到第一加密数据,并将该第一加密数据发送给所述第一装置,所述第一装置使用所述第二密钥对所述第一加密数据进行加密得到第二加密数据,并将该第二加密数据发送给所述第三装置,所述第三装置使用第二密钥对所述第二加密数据进行解密得到第一加密数据,使用第三密钥对所述第一加密数据解密得到数据。
较佳地,当所述第三装置与所述第二装置之间的认证通过后,所述第三装置通过与所述第一装置与所述第二装置进行通信。
较佳地,所述第一装置是终端装置,所述第二装置是系统装置,所述第三装置是用户装置。
为了实现上述目的,本发明提供一种装置,包括:认证信息生成单元,用于生成认证信息并经过收发单元发送给其它装置;认证单元,经过收发单元接收来自其它装置的认证信息,并利用该认证信息对所述其它装置进行认证,收发单元,用于将所述认证信息生成单元生成的认证信息发送所述其它装置,接收来自所述其它装置的认证信息。
较佳地,所述认证信息生成单元包括:
第一随机数产生单元,用于产生第一随机数Ri,
安全熵参数生成单元,用于产生安全熵参数CTi,
可重组逻辑电路,用于利用安全熵参数CTi生成安全熵混合数STi,
参数计算单元,用于基于第一随机数Ri、安全熵混合数STi、用户私钥Si,按照下式计算Xi、Yi,
Xi=ge*Ri mod n
Yi=Si*gSTi*Ri mod n
其中,e、n、g是授权中心的公钥相关的参数,
认证信息构成单元,用于将所述参数计算单元计算出的Xi、Yi以及所述安全熵参数生成单元生成的安全熵参数CTi构成为认证信息。
较佳地,所述安全熵参数生成单元包括:第二随机数产生单元,用于产生第二随机数Rsi;用户安全熵生成单元,用于生成用户安全熵CSTi;系统安全熵生成单元,用于生成系统安全熵CSKi,所述可重组逻辑电路包括:用户可重组逻辑电路和系统可重组逻辑电路,所述用户可重组逻辑电路将所述第二随机数RSi作为输入信号,将用户安全熵CSTi作为控制信号,输出用户安全熵混合数UTi,所述系统可重组逻辑电路将所述用户安全熵混合数UTi作为输入信号,将所述系统安全熵CSKi作为控制信号,输出安全熵混合数STi。
较佳地,所述认证单元包括:参数提取单元,用于从接收到的认证信息中提取Xj、Yj以及安全熵参数CTj,可重组逻辑电路,用于利用所述安全熵参数CTj计算出安全熵指数CKj,公钥证书计算单元,利用Xj、Yj以及安全熵指数CKj,按照下式计算公钥证书GCj’:
XjCKj/Yje mod n=GCj’,
其中e、n是授权中心的公钥相关的参数,
验证单元,用于利用所述公钥证书GCj’验证所述其它装置是否是授权中心的授权用户。
较佳地,所述安全熵参数CTj中包括第二随机数Rsj、用户安全熵CSTj、系统安全熵CSKj,所述可重组逻辑电路包括:用户可重组逻辑电路和系统可重组逻辑电路,所述用户可重组逻辑电路将所述第二随机数Rsj作为输入信号,将用户安全熵CSTj作为控制信号,输出用户安全熵混合数UTj,所述系统可重组逻辑电路将所述用户安全熵混合数UTj作为输入信号,将所述系统安全熵CSKj作为控制信号,输出安全熵指数CKj。
较佳地,还包括密钥协商单元,所述密钥协商单元与所述其它装置协商确定密钥。
较佳地,还包括通信加密单元,所述通信加密单元使用所述密钥协商单元协商确定的密钥对要发送给所述其它装置的数据进行加密。
较佳地,还包括通信解密单元,所述通信解密单元使用所述密钥协商单元协商确定的密钥对来自所述其它装置的数据进行解密。
为了实现上述目的,本发明还提供一种认证系统,包括第一装置、第二装置以及第三装置,所述第一装置包括:第一认证信息生成单元,用于生成第一认证信息并经过第一收发单元发送给所述第二装置,生成第四认证信息并经过第一收发单元发送给所述第三装置;第一认证单元,用于经过第一收发单元接收来自所述第二装置的第二认证信息,并利用该第二认证信息对所述第二装置进行认证,经过第一收发单元接收来自所述第三装置的第三认证信息,并利用该第三认证信息对所述第三装置进行认证;以及第一收发单元,用于将第一认证信息发送给所述第二装置,用于将第四认证信息发送给所述第三装置,用于从所述第二装置接收第二认证信息,用于从所述第三装置接收第三认证信息,用于接收来自第三装置的第五认证信息,并将该第五认证信息转发给所述第二装置,用于接收来自第二装置的第六认证信息,并将该第六认证信息转发给所述第三装置,所述第二装置包括:第二认证信息生成单元,用于生成第二认证信息并经过第二收发单元发送给所述第一装置,生成第六认证信息并经过第二收发单元发送给所述第一装置;第二认证单元,用于经过第二收发单元接收来自所述第一装置的第一认证信息,并利用该第一认证信息对所述第一装置进行认证,经过第二收发单元接收来自所述第三装置的第五认证信息,并利用该第五认证信息对所述第三装置进行认证;以及第二收发单元,用于将第二认证信息发送给所述第一装置,用于将第六认证信息发送给所述第一装置,用于从所述第一装置接收第一认证信息,用于从所述第一装置接收来自所述第三装置的第五认证信息,所述第三装置包括:第三认证信息生成单元,用于生成第三认证信息并经过第三收发单元发送给所述第一装置,生成第五认证信息并经过第三收发单元发送给所述第一装置;第三认证单元,用于经过第三收发单元接收来自所述第一装置的第四认证信息,并利用该第四认证信息对所述第一装置进行认证,经过第三收发单元接收来自所述第二装置的第六认证信息,并利用该第六认证信息对所述第二装置进行认证;以及第三收发单元,用于将第三认证信息发送给所述第一装置,用于将第五认证信息发送给所述第一装置,用于从所述第一装置接收第四认证信息,用于从所述第一装置接收来自所述第二装置的第六认证信息。
根据本发明提供的认证方法,只有通过了与第二装置之间的认证的合法的第一装置才能够进入系统,而且第三装置是在通过了与合法的第一装置之间的认证之后,还与第二装置之间进行认证,通过如上所述的双重身份认证,保证了进入系统的各装置是合法的,从而保证了通信的安全性。
具体实施方式
下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。
下面以图1所示的认证系统为例,说明各个装置之间进行认证的方法。如图1所示,该认证系统包括终端装置101、系统装置102和用户装置103。在此,在认证系统中,终端装置101、系统装置102和用户装置103的数目可以是多个。
在该认证系统中,终端装置101与系统装置102之间进行认证,用户装置103与通过了上述终端装置101与系统装置102之间的认证的终端装置101之间进行认证,当所述用户装置103与所述终端装置101之间的认证通过后,所述用户装置103通过所述终端装置101与所述系统装置102之间进行认证。当用户装置103与系统装置102之间的认证通过时,用户装置103可以通过终端装置101与系统装置102进行通信。
图2所示为认证系统中的各个装置之间进行认证的流程图。
在步骤ST1001中,终端装置101与系统装置102之间进行认证。
在步骤ST1003中,判断终端装置101与系统装置102之间的认证是否通过,如果认证通过,则可进入下一步骤,例如步骤ST1004或ST1005,否则,结束本流程。
终端装置101与系统装置102之间的认证是双向认证,即认证双方互相认证对方是否合法,如果任一方不通过认证,则认证失败。当终端装置101和系统装置102都合法时才能通过认证。如果终端装置101是非法的,则不能通过认证,因此该非法终端装置101不能进入该认证系统。通过本步骤,由于只有合法的终端装置101才能够进入该认证系统,从而有效地避免了非法设备进入认证系统,解除了因非法设备进入认证系统而带来的安全隐患。
在步骤ST1004中,终端装置101与系统装置102之间可进行通信。例如,协商密钥或数据通信。
在协商密钥时,终端装置101与系统装置102之间协商确定第一密钥K1。
在数据通信时,当终端装置101向系统装置102发送数据时,终端装置101使用第一密钥K1作为加密密钥对要发送的数据进行加密,系统装置102使用第一密钥K1作为解密密钥对接收到的数据进行解密。反之,当系统装置102向终端装置101发送数据时,系统装置102使用第一密钥K1作为加密密钥对要发送的数据进行加密,终端装置101使用第一密钥K1作为解密密钥对接收到的数据进行解密。
在步骤ST1005中,用户装置103与所述终端装置101之间进行认证。
在步骤ST1007中,判断用户装置103与终端装置101之间的认证是否通过,如果认证通过,则可进入下一步骤,例如步骤ST1008或步骤ST1009,否则,结束本流程。
用户装置103与所述终端装置101之间的认证也是双向认证,即认证双方互相认证对方是否合法,如果任一方不通过认证,则认证失败。当用户装置103和终端装置101都合法时才能通过认证。如果用户装置103是非法的,则不能通过认证,因此该非法用户装置103不能进入该认证系统。如果终端装置101(没有经过上述步骤1001、1003的终端装置)是非法的,则也不能通过认证,因此该终端装置101也不能进入该认证系统。通过本步骤,由于只有合法的用户装置103和终端装置101才能够进入该认证系统,从而有效地避免了非法设备进入认证系统,解除了因非法设备进入认证系统而带来的安全隐患。在步骤ST1008中,用户装置103与终端装置101之间可进行通信。例如,协商密钥或数据通信。
在协商密钥时,用户装置103与终端装置101之间协商确定第二密钥K2。
在数据通信时,当用户装置103向终端装置101发送数据时,用户装置103使用第二密钥K2作为加密密钥对要发送的数据进行加密,终端装置101使用第二密钥K2作为解密密钥对接收到的数据进行解密。反之,当终端装置101向用户装置103发送数据时,终端装置101使用第二密钥K2作为加密密钥对要发送的数据进行加密,用户装置103使用第二密钥K2作为解密密钥对接收到的数据进行解密。
在步骤ST1009中,所述用户装置103通过所述终端装置101与所述系统装置102之间进行认证。
在步骤ST1011中,判断用户装置103与系统装置102之间的认证是否通过,如果认证通过,则可进入下一步骤,例如步骤ST1013,否则,结束本流程。
用户装置103与系统装置102之间的认证也是双向认证,即认证双方互相认证对方是否合法,如果任一方不通过认证,则认证失败。当用户装置103和系统装置102都合法时才能通过认证。如果用户装置103是非法的,则不能通过认证,因此该非法用户装置103不能进入该认证系统。通过本步骤,由于只有合法的用户装置103才能够进入该认证系统,从而有效地避免了非法设备进入认证系统,解除了因非法设备进入认证系统而带来的安全隐患。
在步骤ST1013中,用户装置103经过终端装置101与系统装置102进行通信。例如,协商密钥或数据通信。
在协商密钥时,用户装置103与系统装置102之间协商确定第三密钥K3。用户装置103与系统装置102之间交互的与协商密钥相关的信息是经过终端装置101传送。
在数据通信时,当用户装置103向系统装置102发送数据时,用户装置103使用第三密钥K3作为加密密钥对要发送的数据进行加密得到第一加密数据,将该第一加密数据发送给终端装置101,终端装置101使用第一密钥K1作为加密密钥对上述第一加密数据进行加密得到第二加密数据,系统装置102接收到第二加密数据后,使用第一密钥K1作为解密密钥对第二加密数据进行解密得到第一加密数据,然后使用第三密钥K3作为解密密钥对解密得到的第一加密数据进行解密得到用户装置103发送的数据。反之,当系统装置102向用户装置103发送数据时,系统装置102使用第三密钥K3作为加密密钥对要发送的数据进行加密得到第一加密数据,将该第一加密数据发送给终端装置101,终端装置101使用第二密钥K2作为加密密钥对上述第一加密数据进行加密得到第二加密数据,用户装置103接收到第二加密数据后,使用第二密钥K2作为解密密钥对第二加密数据进行解密得到第一加密数据,然后使用第三密钥K3作为解密密钥对解密得到的第一加密数据进行解密得到系统装置102发送的数据。
在图2所示的认证流程中,只有通过了与系统装置102之间的认证的合法的终端装置101才能够进入认证系统,而且用户装置103是在通过了与合法的终端装置101之间的认证之后,还与系统装置102之间进行认证,通过如上所述的双重身份认证,保证了进入认证系统的各装置是合法的,从而保证了通信的安全性。
下面以图3为例,说明步骤ST1001、ST1003的终端装置101与系统装置102之间进行认证的方法。
在步骤ST3101中,终端装置101生成认证信息ATij。
在步骤ST3201中,系统装置102生成认证信息ATji。
在步骤ST3103中,终端装置101将认证信息ATij发送给系统装置102。
在步骤ST3203中,系统装置102将认证信息ATji发送给终端装置101。
在步骤ST3105中,终端装置101利用所述认证信息ATji对系统装置102进行认证。
在步骤ST3205中,系统装置102利用所述认证信息ATij对终端装置101进行认证。
在步骤ST3107中,终端装置101判定对系统装置102的认证是否通过。
在步骤ST3207中,系统装置102判定对终端装置101的认证是否通过。
如果步骤ST3107的判定结果为认证失败,则在步骤ST3109中,终端装置101中断与系统装置102的通信。
如果步骤ST3207的判定结果为认证失败,则在步骤ST3209中,系统装置102中断与终端装置101的通信。
如果步骤ST3107的判定结果为认证通过且步骤ST3207的判定结果为认证通过,则如上述步骤ST1004,终端装置101与系统装置102之间可以进行通信,例如协商密钥或数据通信。
下面以图4为例,说明步骤ST1005、ST1007的用户装置103与终端装置101之间进行认证的方法。
在步骤ST4101中,用户装置103生成认证信息ATki。
在步骤ST4201中,终端装置101生成认证信息ATik。
在步骤ST4103中,用户装置103将认证信息ATki发送给终端装置101。
在步骤ST4203中,终端装置101将认证信息ATik发送给用户装置103。
在步骤ST4105中,用户装置103利用所述认证信息ATik对终端装置101进行认证。
在步骤ST4205中,终端装置101利用认证信息ATki对用户装置103进行认证。
在步骤ST4107中,用户装置103判定对终端装置101的认证是否通过。
在步骤ST4207中,终端装置101判定对用户装置103的认证是否通过。
如果步骤ST4107的判定结果为认证失败,则在步骤ST4109中,用户装置103中断与终端装置101的通信。
如果步骤ST4207的判定结果为认证失败,则在步骤ST4209中,终端装置101中断与用户装置103的通信。
如果步骤ST4107的判定结果为认证通过且步骤ST4207的判定结果为认证通过,则如上述步骤ST1008,用户装置103与终端装置101之间可以进行通信,例如协商密钥或数据通信。
下面以图5为例,说明步骤ST1009、ST1011的用户装置103与系统装置102之间进行认证的方法。
在步骤ST5101中,用户装置103生成认证信息ATkj。
在步骤ST5201中,系统装置102生成认证信息ATjk。
在步骤ST5103中,用户装置103将认证信息ATkj发送给终端装置101,在步骤ST5104中,终端装置101将认证信息ATkj发送给系统装置102。
在步骤ST5203中,系统装置102将认证信息ATjk发送给终端装置101,在步骤ST5204中,终端装置101将认证信息ATjk发送给用户装置103。
在步骤ST5105中,用户装置103利用所述认证信息ATjk对系统装置102进行认证。
在步骤ST5205中,系统装置102利用认证信息ATkj对用户装置103进行认证。
在步骤ST5107中,用户装置103判定对系统装置102的认证是否通过。
在步骤ST5207中,系统装置102判定对用户装置103的认证是否通过。
如果步骤ST5107的判定结果为认证失败,则在步骤ST5109中,用户装置103中断与系统装置102的通信。
如果步骤ST5207的判定结果为认证失败,则在步骤ST5209中,系统装置102中断与用户装置103的通信。
如果步骤ST5107的判定结果为认证通过且步骤ST5207的判定结果为认证通过,则如上述步骤ST1013,用户装置103可以经过终端装置101与系统装置102之间进行通信,例如协商密钥或数据通信。
下面说明各装置之间进行身份认证的方法。
首先以终端装置101生成用于与系统装置102进行认证的认证信息ATij的过程为例,说明生成认证信息的方法。图6是表示在步骤ST3101中终端装置101生成认证信息ATij的流程图,包括如下步骤:
步骤ST601:终端装置101产生一个随机数Rij。
步骤ST602:终端装置101确定用户安全熵CSTij,系统安全熵CSKij和随机数Rsij,建立安全熵信息参数CTij。
CTij=CSTij,CSKij,Rsij
随机数Rsij是可重组逻辑电路的输入数据。
用户安全熵CSTij和系统安全熵CSKij分别是可重组逻辑电路的静态编码和动态编码。
步骤ST603:终端装置101根据安全熵信息参数CTij和可重组逻辑电路计算安全熵混合数STij
STij=CTij(RELOG)
STij的产生参见图7。
用户安全熵混合数UTij是用户安全熵CSTij与随机数Rsij通过用户可重组逻辑电路Sa产生的混合数。其中,用户安全熵CSTij是用于控制用户可重组逻辑电路Sa的可控节点的控制信号,随机数Rsij是用户可重组逻辑电路Sa的输入,用户安全熵混合数UTij是用户可重组逻辑电路Sa的输出。
安全熵混合数STij是系统安全熵CSKij与用户安全熵混合数UTij通过系统可重组逻辑电路Pa产生的混合数。安全熵混合数STij参与身份认证信息模型计算。其中,系统安全熵CSKij是用于系统可重组逻辑电路Pa的可控节点的控制信号,用户安全熵混合数UTij是系统可重组逻辑电路Pa的输入,安全熵混合数STij是系统可重组逻辑电路Pa的输出。
关于可重组逻辑电路的构成以及实现,在本文的最后进行描述。
步骤ST604:终端装置101计算Xij、Yij
Xij=ge*Rij mod n
Yij=Si*gSTij*Rij mod n
其中,e,n,g是授权中心的公钥信息,Si是终端装置101从授权中心授权得到的用户私钥Si。关于用户私钥Si的产生后述。
终端装置101将Xij、Yij、CTij作为认证信息ATij。
通过如上步骤,终端装置101生成了认证信息ATij。
下面以系统装置102利用来自终端装置101的认证信息ATij对终端装置101进行认证为例,说明进行身份认证的方法。图8是在步骤ST3205中系统装置102利用来自终端装置101的认证信息ATij对终端装置101进行认证的流程图,包括如下步骤:
步骤ST801:系统装置102从来自终端装置101的认证信息ATij中提取终端装置101的安全熵信息参数CTij。
CTij=CSTij,CSKij,Rsij
步骤ST802:系统装置102基于可重组逻辑电路,利用终端装置101的安全熵信息参数CTij计算安全熵指数CKij。
CKij=CTij(RELOG)
计算安全熵指数CKij的方法可参见图7,不同点在于系统可重组逻辑电路Pa的输出是安全熵指数CKij。
在此,终端装置101和系统装置102中的可重组逻辑电路具有相同构成,即终端装置101和系统装置102中的用户可重组逻辑电路Sa相同,终端装置101和系统装置102中的系统可重组逻辑电路Pa相同。这样,利用相同的控制信号控制可重组逻辑电路构成的逻辑电路一样。
若在认证信息传输过程中安全熵信息参数CTij没有被篡改,则系统装置102利用从认证信息中提取出的用户安全熵CSTij控制用户可重组逻辑电路Sa构成的逻辑电路和利用从认证信息中提取出的系统安全熵CSKij控制系统可重组逻辑电路Pa构成的逻辑电路将会与在终端装置101中构成的逻辑电路相同,这样在系统装置102中基于从认证信息中提取出的安全熵信息参数CTij得到的安全熵指数CKij等于在终端装置101中生成的安全熵混合数STij。若在认证信息传输过程中安全熵信息参数CTij被篡改,则系统装置102得到的安全熵指数CKij不同于在终端装置101中生成的安全熵混合数STij。
步骤ST803:系统装置102计算终端装置101的授权公钥证书GCi’。
XijCKij/Yije mod n=GCi’
其中,Xij和Yij是从认证信息ATij中提取得到的,e和n是授权中心的公钥相关的参数。
若在上述步骤ST802中得到的安全熵指数CKij等于在终端装置101中生成的安全熵混合数STij,则能正确得到GCi’,否则不能正确得到GCi’。
步骤ST804:系统装置102利用计算出的终端装置101的授权公钥证书GCi’来验证终端装置101是否为合法。
例如,系统装置102对计算出的终端装置101的授权公钥证书GCi’和已知的终端装置101的授权公钥证书GCi进行比较,根据比较结果验证终端装置101是否为合法。
例如,由于终端装置101授权公钥证书GCi中可以包括idi参数,该idi包含终端装置101的信息,例如网址、电话号码、身份等,所以通过比较这些信息即可验证终端装置101的合法性。
若有另一个不具有从授权中心授权得到的用户私钥Si的用户设备假冒终端装置101则无法通过上述认证过程。
终端装置101对系统装置102的认证过程与上述过程相同,在此省略。
系统装置102与终端装置101之间的双方身份认证通过后,进入双方密钥协商的协议阶段,否则中断双方通信,控制系统提示:非法用户。
上面只是以终端装置101生成认证信息、系统装置102利用该认证信息对该终端装置101进行认证的过程为例说明了进行身份认证的方法,但图6、图8所示流程适用于该认证系统中的所有装置之间的身份认证过程。例如,步骤ST3201、步骤ST4101、步骤ST4201、步骤ST5101、步骤ST5201可以通过图6所示的流程实现,步骤ST3105、步骤ST4105、步骤ST4205、步骤ST5105、步骤ST5205可以通过图8所示的流程实现。
在此,说明在认证系统中的各个装置生成认证信息时的参数使用情况。例如,在步骤ST4201中终端装置101生成认证信息ATik时,仍使用终端装置101的用户私钥Si,其余的参数则用随机数Rik、用户安全熵CSTik、系统安全熵CSKik、随机数RSik、安全熵信息参数CTik、安全熵混合数STik、Xik、Yik表示。在步骤ST4105中用户装置103利用认证信息ATik计算终端装置101的授权公钥公钥证书为XikCKik/Yike mod n=GCi’。在其它认证过程中参数使用情况也同样,在此省略。
上述的身份认证方法具有如下安全性:
1.用户身份认证采用相互鉴别协议。通过相互交换公钥证书和验证证书,实现身份认证。身份认证是建立在用户双方分别拥有秘密私钥S的计算模型上。在一次交互过程中,双方用户通过算法都出示了自己的密钥证书S(X、Y,CT)而又没有泄露Si、Sj,采用了零知识的鉴别协议。
2.双方传输的X、Y,CT是以各自的私钥S,随机数CT,R在指数上扩展和授权中心公钥e,g和随机数R在指数扩展的计算模型上生成的。
3.用户私钥S的保密性和随机数CT,R的随机性和不可预测性,共同保证了用户相互身份认证信息交互的安全性。
4.身份认证时,使用可重组的用户安全熵CST和系统安全熵CSK的组合出安全熵混合数ST,在计算模型的指数上扩展获得对方用户授权公钥证书GC的方案,保证了用户身份认证的唯一性和安全保密性。
5.被动攻击者可以截获X,Y,CT;如果已知CT与ST的算法关系,可以计算出ST,得到对方用户的公钥证书。如果攻击者不是已授权的合法用户,由于其不具有用户私钥S,无法向对方出示证书,身份认证是双向鉴别认证,通过用户双方各自出示具有的用户私钥S,来认证双方身份,只要有一方不能出示正确的有效证书,相互身份认证就不能通过,双方通信就可能中断。通信中断,使攻击者得到的对方用户公钥证书变得无效。
6.另外,CT与ST的算法关系是用户双方秘密约定的,攻击者无法知道。CT与ST的算法关系可通过MCOS系统指令控制建立一次交换动态改变一次,保证身份认证安全性。
7.若用户公钥证书内容被攻击者获得,因攻击者无法获得授权中心私钥d,因此无法计算获得用户私钥S。不具有S的用户假冒合法用户,则无法通过上述认证过程。安全保证是授权中心私钥d的保密性。
作为身份认证的另一实施方式,通过图6所示流程得到认证信息ATij(包括Xij、Yij、CTij)之后,还可以进一步计算认证信息ATij的摘要,即终端装置101计算Xij、Yij、安全熵信息参数CTij的摘要,得到Xijm、Yijm、CTijm。终端装置101将认证信息ATij(包括Xij、Yij、CTij)以及认证信息的摘要ATijm(包括Xijm、Yijm、CTijm)发送给系统装置102。
系统装置102从终端装置101接收到认证信息ATij(包括Xij、Yij、CTij)以及认证信息的摘要ATijm(包括Xijm、Yijm、CTijm)之后,在对终端装置101进行认证时,在上述图8所示的步骤ST801之前,执行如下步骤:系统装置102利用所接收的摘要Xijm、Yijm、CTijm来核对认证信息Xij、Yij、CTij。
具体而言,系统装置102使用与终端装置101同样的摘要算法来计算身份认证信息Xij、Yij、CTij的摘要信息Xijm’、Yijm’、CTijm’。如果计算得出的摘要信息Xijm’、Yijm’、CTijm’和接收的摘要信息Xijm、Yijm、CTijm一致,则说明Xij、Yij、CTij没有被篡改,进入步骤ST801。如果核对结果不一致,则说明Xij、Yij、CTij信息被篡改,终端装置101未通过身份认证,并结束认证过程。
如上所述的身份认证是在单证书体制下进行的,即利用从一个授权中心得到的用户私钥Si生成身份认证信息。作为进行身份认证的另一实施方式,还可以在多证书体制下进行。在多证书体制下,在生成认证信息之后,可以使用从其它授权中心得到的参数对身份认证信息进行加密。
具体为,通过图6所示流程得到认证信息ATij(包括Xij、Yij、CTij)之后,对认证信息ATij进行加密得到加密认证信息CijXY。
在二证书体制下,终端装置101将Km作为加密密钥,用加密算法Am对ATij执行加密后得到CijXY。
CijXY=[Am]Km(ATij)=[Am]Km(Xij,Yij,CTij)
系统装置102由Km作为解密密钥,用解密算法Am对身份认证信息CijXY执行解密后得到Xij,Yij,CTij。
在三证书体制下,终端装置101将Km和Kn的乘积作为加密密钥,用加密算法Am对ATij执行加密后得到CijXY。
CijXY=[Am]Km×Kn(ATij)=[Am]Km×Kn(Xij,Yij,CTij)
在此,作为加密密钥,不限于上述提到的Km和Kn的乘积这样的形式,还可以采用其它组合形式,例如Km与Kn之和等。
系统装置102由Km和Kn作为解密密钥,用解密算法Am对身份认证信息CijXY执行解密后得到Xij,Yij,CTij。
在此,作为解密密钥,不限于上述提到的Km和Kn的乘积这样的形式,还可以采用其它组合形式,例如Km与Kn之和等。当然,不管采用何种组合形式的加密密钥和解密密钥,都需要保证互成为一对密钥。
其中,关于Km和Kn,例如,Km是第二授权中心(管理中心)授权给用户设备的安全熵密钥,Kn是第三授权中心(网管中心)授权给用户设备的辅助密钥,其形式如下:
管理中心授权安全熵私钥证书:[e,n,g,Km];
网管中心授权辅助私钥证书:[e,n,g,Kn,STi]。
其中,
e,n:授权机关公钥
g:授权机关密钥体系本原元
Km:安全熵密钥
Kn:辅助密钥
STi:安全熵混合数
在多证书体制下,终端装置101将K作为加密密钥,用加密算法Am对ATij执行加密后得到CijXY。
CijXY=[Am]K(ATij)=[Am]K(Xij,Yij,CTij)
系统装置102由K作为解密密钥,用解密算法Am对身份认证信息CijXY执行解密后得到Xij,Yij,CTij。
其中,作为加密密钥和解密密钥的K可以是p个参数的组合,例如p个参数之积、之和等。这些p个参数可以是由p个授权中心授权的参数,也可以是进行身份认证的双方装置各自生成的参数。
下面说明实现上述认证方法的装置结构。
图9所示为用于实现认证方法的装置结构图。如图9所示,终端装置101包括收发单元1011、认证信息生成单元1012以及认证单元1013;系统装置102包括收发单元1021、认证信息生成单元1022以及认证单元1023;用户装置103包括收发单元1031、认证信息生成单元1032以及认证单元1033。
在终端装置101与系统装置102之间进行认证时,终端装置101中的认证信息生成单元1012生成认证信息ATij,并经过收发单元1011发送给系统装置102;系统装置102中的认证信息生成单元1022生成认证信息ATji,并经过收发单元1021发送给终端装置101;终端装置101中的认证单元1013经过收发单元1011接收来自系统装置102的认证信息ATji,利用认证信息ATji进行对系统装置102的认证;系统装置102中的认证单元1023经过收发单元1021接收来自终端装置101的认证信息ATij,利用认证信息ATij进行对终端装置101的认证。
在终端装置101与用户装置103之间进行认证时,终端装置101中的认证信息生成单元1012生成认证信息ATik,并经过收发单元1011发送给用户装置103;用户装置103中的认证信息生成单元1032生成认证信息ATki,并经过收发单元1031发送给终端装置101;终端装置101中的认证单元1013经过收发单元1011接收来自用户装置103的认证信息ATki,利用认证信息ATki进行对用户装置103的认证;用户装置103中的认证单元1033经过收发单元1031接收来自终端装置101的认证信息ATik,利用认证信息ATik进行对终端装置101的认证。
在用户装置103与系统装置102之间进行认证时,用户装置103中的认证信息生成单元1032生成认证信息ATkj,并经过收发单元1031发送给终端装置101,终端装置101中的收发单元1011将认证信息ATkj转发给系统装置102;系统装置102中的认证信息生成单元1022生成认证信息ATjk,并经过收发单元1021发送给终端装置101,终端装置101中的收发单元1011将认证信息ATjk转发给用户装置103;用户装置103中的认证单元1033经过收发单元1031接收来自系统装置102的认证信息ATjk,利用认证信息ATjk进行对系统装置102的认证;系统装置102中的认证单元1023经过收发单元1021接收来自用户装置103的认证信息ATkj,利用认证信息ATkj进行对用户装置103的认证。
另外,终端装置101、用户装置103、系统装置102中还可以包括:密钥协商单元、通信加密单元以及通信解密单元(未图示)。
当终端装置101与系统装置102之间的认证通过时,终端装置101中的密钥协商单元与系统装置102中的密钥协商单元协商确定第一密钥K1。这样,当终端装置101与系统装置102之间进行通信时,终端装置101中的通信加密单元使用第一密钥K1对要发送给系统装置102的数据进行加密,系统装置102中的通信解密单元使用该第一密钥K1对接收到的数据进行解密。
当终端装置101与用户装置103之间的认证通过时,终端装置101中的密钥协商单元与用户装置103中的密钥协商单元协商确定第二密钥K2。这样,当终端装置101与用户装置103之间进行通信时,终端装置101中的通信加密单元使用第二密钥K2对要发送给用户装置103的数据进行加密,用户装置103中的通信解密单元使用该第二密钥K2对接收到的数据进行解密。
当用户装置103与系统装置102之间的认证通过时,用户装置103中的密钥协商单元与系统装置102中的密钥协商单元协商确定第三密钥K3。这样,当用户装置103向系统装置102发送数据时,用户装置103中的通信加密单元使用第三密钥K3对要发送给系统装置102的数据进行加密得到第一加密数据,并将该第一加密数据发送给终端装置101,终端装置使用第一密钥K1对该第一加密数据进行加密得到第二加密数据并发送给系统装置102,系统装置102中的通信解密单元使用该第一密钥K1对接收到的第二加密数据进行解密得到第一加密数据,使用该第三密钥K3对第一加密数据进行解密得到用户装置103发送的数据。反之,当系统装置102向用户装置103发送数据时,系统装置102中的通信加密单元使用第三密钥K3对要发送给用户装置103的数据进行加密得到第一加密数据,并将该第一加密数据发送给终端装置101,终端装置使用第二密钥K2对该第一加密数据进行加密得到第二加密数据并发送给用户装置103,用户装置103中的通信解密单元使用该第二密钥K2对接收到的第二加密数据进行解密得到第一加密数据,使用该第三密钥K3对第一加密数据进行解密得到系统装置102发送的数据。
关于终端装置101、系统装置102、用户装置103的内部结构,除了收发单元上有上述差异之外,认证信息生成单元和认证单元所执行的操作都相同。所以,下面以终端装置101为例,说明其内部结构。
如图10所示,终端装置101与图9所示的终端装置101结构不同点在于:认证信息生成单元1012、认证单元1013、可重组逻辑电路1014。
如图10所示,认证信息生成单元1012包括:第一随机数产生单元10121、安全熵参数生成单元10122、参数计算单元10123、认证信息构成单元10124。
如图10所示,认证单元1013包括:参数提取单元10131、公钥证书计算单元10132、验证单元10133。
如图7所示,所述可重组逻辑电路1014包括:用户可重组逻辑电路和系统可重组逻辑电路。
在生成认证信息时,相关的单元执行如下操作:
第一随机数产生单元10121产生第一随机数Ri;安全熵参数生成单元10122产生安全熵参数CTi;可重组逻辑电路1014基于安全熵参数CTi生成安全熵混合数STi,输出给参数计算单元10123;参数计算单元10123基于第一随机数Ri、安全熵混合数STi、用户私钥Si,按照下式产生Xi、Yi;认证信息构成单元10124将所述参数计算单元计算出的Xi、Yi以及所述安全熵参数生成单元10122生成的安全熵参数CTi构成为认证信息。
Xi=ge*Ri mod n
Yi=Si*gSTi*Ri mod n
其中,e、n、g是授权中心的公钥相关的参数
所述安全熵参数生成单元10122可以包括:第二随机数产生单元,用于产生第二随机数Rsi;用户安全熵生成单元,用于生成用户安全熵CSTi;系统安全熵生成单元,用于生成系统安全熵CSKi。第二随机数Rsi、用户安全熵CSTi、系统安全熵CSKi构成安全熵参数CTi。
在生成安全熵混合数STi时,所述可重组逻辑电路1014中的用户可重组逻辑电路Sa将用户安全熵CSTi作为控制信号,将所述第二随机数RSi作为输入信号,输出用户安全熵混合数UTi,所述系统可重组逻辑电路Pa将所述系统安全熵CSKi作为控制信号,将所述用户可重组逻辑电路Sa的输出即用户安全熵混合数UTi作为输入信号,输出安全熵混合数STi。
在进行认证时,相关的单元执行如下操作:
参数提取单元10131从来自系统装置的认证信息中提取Xj、Yj以及安全熵参数CTj;可重组逻辑电路1014利用所述安全熵参数CTj计算出安全熵指数CKj;公钥证书计算单元10132利用Xj、Yj以及安全熵指数CKj,按照下式计算公钥证书GCj’;验证单元10133利用所述公钥证书GCj’验证对方装置是否是授权中心的授权用户。
XjCKj/Yje mod n=GCj’
其中e、n是授权中心的公钥相关的参数。
所述安全熵参数CTj中包括第二随机数Rsj、用户安全熵CSTj、系统安全熵CSKj。在得到安全熵指数CKj时,所述可重组逻辑电路1014中的用户可重组逻辑电路Sa将用户安全熵CSTj作为控制信号,将所述第二随机数Rsj作为输入信号,输出用户安全熵混合数UTj,所述系统可重组逻辑电路Pa将所述系统安全熵CSKj作为控制信号,将所述用户可重组逻辑电路Sa的输出即用户安全熵混合数UTj作为输入信号,输出安全熵指数CKj。
如图10所示,终端装置101还可以包括授权信息保存单元1015,用于保存从授权中心得到的用户私钥Si。
另外,终端装置101还可以包括加密单元(未图示),该加密单元对认证信息构成单元10124生成的认证信息进行加密得到加密认证信息,并经过收发单元1011发送。
上述终端装置101中还可以包括解密单元(未图示),该解密单元对经过收发单元1011接收到的认证信息进行解密,并传给所述参数提取单元10131。
系统装置102和用户装置103的内部结构同终端装置101的内部结构,在此省略。
下面介绍可重组逻辑电路的原理以及实现方法。
任何一个算法都是由一系列的基本操作按照一定顺序连接而成。设OP表示构成不同算法操作的操作和控制关系的集合,则OF可以表示成:
OP=(op1,1+op1,2+...+op1,m1)*(op2,1+op2,2+...+op2,m2)*...*(opn,1+opn,2+...+opn,mn)
其中,opi,j(j=1,2,...,m i,i=1,2,...,n)表示基本算法操作,“+”表示并行操作关系、“*”表示串行操作关系。
通过对不同算法进行分析和研究,我们发现算法具有一个显著的特征:很多不同的算法具有相同或相似的基本操作成分,或者说同一基本操作成分在不同算法中出现的频度很高。由于不同算法往往具有很多相同或相似的基本操作成分,这些基本操作成分所对应的硬件资源就可以被多种不同算法所共用,因此我们就能够以较少的电路规模构造一套逻辑电路来实现多种算法。这就是可重组逻辑电路的设计依据。
首先定义可重组逻辑电路中的一些术语。
设E表示某些可被不同算法重复使用的功能部件所构成的集合,E={e1,e2,...,em}(m∈自然数),CNode表示某些指令界面可见、可控的部件所构成的集合,CNode={cnode1,cnode2,...,cnoden}(n∈自然数),C表示上述功能部件或可控部件之间的连接关系所构成的集合,C={R<a,b>|R<a,b>是a到b的连接关系,a,b∈E∪CNode},则由E、CNode、C所确定的逻辑电路就称为可重组逻辑电路,记为RELOG={E,CNode,C}。其中ei∈E(i=1,2,...,m)称为重组元素,cnodei∈CNode(i=1,2,...,n)称为可控节点。
可重组逻辑电路的功能将随着可控节点的控制信号的改变而改变,设可重组逻辑电路RELOG={E,CNode,C}所能实现的功能用FUNC_RELOG表示,其可控节点对应的控制信号的集合用CTRL表示,则FUNC_RELOG是CTRL的函数,表示为
FUNC_RELOG=f(CTRL)
CTRL={ctrl1,ctrl2,...,ctrln}(n∈自然数)
如上所述,可重组逻辑电路由三部分组成:多个可控节点、多个重组元素、以及可控节点和重组元素之间的连线网络。
重组元素是用于实现各种算法的基本操作成分,是可重组逻辑电路用于构建各种算法的基本元素。重组元素之间的连接网络用于为各种算法建立所需的数据传输通路。重组元素及其连接网络在可控节点的控制下实现不同的算法。
可重组逻辑电路中的可控节点主要有两类:功能可控节点和通路可控节点。控制功能可控节点能够使重组元素的功能改变,以适应不同算法的不同的操作功能需求;控制通路可控节点能够使重组元素之间的数据传输路径改变,以适应不同算法的数据传输需求。
下面给出实现不同逻辑函数的可重组逻辑电路的例子,以方便理解可重组逻辑电路的构成。
图11a是实现不同逻辑函数的可重组逻辑电路的示意图。
在图11a所示的电路中,AND2_1、AND2_2表示2输入与门,AND3表示3输入与门,OR2表示2输入或门,NOT表示非门,A、B、C、D是4个输入变量,F是输出变量。在上述电路中设置有2个可控节点AND2_1和AND2_2,其控制信号分别记为CTRL1和CTRL2。通过对CTRL1和CTRL2赋以不同的值,就可以改变上述电路的逻辑功能,实现不同的逻辑函数。图11b所示的表给出了当CTRL1和CTRL2取不同的值的时候,上述图11a所示的电路所实现的函数关系。
上述图11a所示的可重组逻辑电路可以描述为:
RELOG={E,CNode,C}
其中,
重组元素集合E={AND3,NOT,OR2};
可控节点集合CNode={AND2_1,AND2_2};
连接网络C={AND3→AND2_1,NOT→AND2_2,AND2_1→OR2,AND2_1→OR2}。
该可重组逻辑电路实现的函数可表示为:
其中,控制信号CTRL={CTRL1,CTRL2}。
图12a是实现不同连接关系的可重组逻辑电路示意图。图12a所示的可重组逻辑电路中共有3个重组元素A、B、C。A和B的输出经过MUX选通后进入C部件,作为C部件的输入。其中MUX就是一个可控节点,该可控节点通过控制信号M进行控制。通过对这个可控节点的控制就可以实现两种不同的连接关系,分别如图12b和图12c所示。
将多个重组元素组合起来真正实现某种算法,还必须在这些重组元素之间建立该算法所要求的数据传输路径。不同的算法所要求的数据传输路径不同,实现多种不同的算法,就必须使重组元素之间的连接关系可变。实现重组元素之间的连接关系可变,就必须在重组元素之间的连接网络中设置可控节点,通过对可控节点的控制来实现不同的连接关系。
如图13所示的连接网络是以寄存器间接连接的方式;其中每个重组元素B、C、D的输出先保存在作为连接网络的寄存器中,然后再在可控节点的控制下输入到重组元素B、C、D的一个的输入中。
如图14所示的连接网络是以开关网络直接连接的方式;其中每个重组元素B、C、D的输出直接通过选通网络MUX连接到一个合适的输入中。
如图15所示的连接网络是部分以寄存器间接连接、部分以开关网络直接连接的方式;其中重组元素B的输出通过选通网络MUX直接与自己的输入端相连,而重组元素C、D的输出先通过寄存器缓存,然后直接进入到C、D或通过选通网络B的输入端。
本领域的普通技术人员将会明白,在有多条线都要与一条线相连的情况下,利用选通网络来动态选择多条线中的哪一条是一种优选方式。
另外,本领域的技术将会明白,虽然图13~16的电路原理图中都没有整个电路的输入端和输出端,但显然可以把整个电路的输入和输出分别看做是特殊的重组元素而连接在电路中。例如,可以在图13的连接网络上分别加一个输入端和一个输出端,分别作为整个电路的输入端和输出端。
本说明书中的认证系统可以例如是银行系统,此时,终端装置101例如可以是POS机、取款机等,系统装置102例如可以是银行服务器等,用户装置103例如可以是用户卡、银行卡、密钥卡等。本发明的认证系统并不限于银行系统,还可以适用于其它系统。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。