CN102177677A - 密钥共享系统 - Google Patents

密钥共享系统 Download PDF

Info

Publication number
CN102177677A
CN102177677A CN2009801401603A CN200980140160A CN102177677A CN 102177677 A CN102177677 A CN 102177677A CN 2009801401603 A CN2009801401603 A CN 2009801401603A CN 200980140160 A CN200980140160 A CN 200980140160A CN 102177677 A CN102177677 A CN 102177677A
Authority
CN
China
Prior art keywords
key
information
parameter
session
session information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2009801401603A
Other languages
English (en)
Inventor
浅野智之
朴惠湲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of CN102177677A publication Critical patent/CN102177677A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Abstract

提供了新颖且改进的能够增强群组密钥共享技术的安全性的加密装置、密钥处理装置、加密方法、密钥处理方法、程序和密钥共享系统。根据加密装置和密钥处理装置,当多个装置中的每一个生成计算在执行同时通信时要使用的会话密钥所必需的会话信息时,布置成各个会话信息包含依赖于已分派给该装置并且是该装置所特有的秘密密钥的值。这样可提供对抗任何群组成员的伪装的防御措施。

Description

密钥共享系统
技术领域
本发明涉及加密装置、密钥处理装置、加密方法、密钥处理方法、程序和密钥共享系统。
背景技术
随着近来在通信技术中取得的进步,在多个参与者之间经常进行同时通信,例如电话会议和聊天。这种通信有时可能是经由诸如因特网之类的非安全通信路径进行的。在这种情况下,通信的内容通常被加密以保护诸如会议内容之类的通信内容免遭除同时通信的参与者以外的其他人的危害。
加密技术中的最常见方法之一是对称密钥加密术,其中发送者和接收者共享被称为共同密钥的相同密钥,并且内容被利用此共同密钥来加密和解密。另外,有一种群组密钥协定(Group Key Agreement,GKA)技术,其中多个实体(特别是三个或更多个实体)共享被称为会话密钥的相同密钥(例如参见以下的非专利文献1至3)。
引文列表
非专利文献
非专利文献1:M.Burmester and Y.Desmedt,“A Secure and Efficient Conference Key Distribution Systems”,In Advances in Cryptology-EUROCRYPT’94,volume 950 of Lecture Notes in Computer Science,pages 275-286,Springer,May 1994。
非专利文献2:L.Zhou,W.Susilo and Y.Mu,“Efficient ID-based Authenticated Group Key Agreement from Bilinear Pairings”,Mobile Ad-hoc and Sensor Networks-MSN 2006,LNCS 4325,pp.521-532,Springer-Verlag,2006。
非专利文献3:C.Boyd and J.M.Gonzalez Nieto,“Round-optimal Contributory Conference Key Agreement”,PKC 2003,LNCS 2567,pp.161-174,Springer,2003。
发明内容
技术问题
非专利文献1中记载的方法具有同时通信的成员执行的计算量增加的问题。在非专利文献2中记载的方法中,计算量比非专利文献1中记载的方法的计算量小。然而,本申请的发明人详细研究了该方法,发现在此方法中群组成员有可能假冒其身份。
另一方面,本申请的发明人研究了非专利文献2和非专利文献3,发现非专利文献2和非专利文献3中记载的方法有这样一个问题,即群组中的特定用户有可能被阻止共享预期要由同时通信的成员共享的群组密钥。
因此,本发明是考虑到上述问题而做出的,并且本发明的一个目的是提供一种新颖且改进的并能够进一步提高群组密钥协定技术的安全性的加密装置、密钥处理装置、加密方法、密钥处理方法、程序和密钥共享系统。
解决问题的方案
根据本发明的一个方面,为了实现上述目的,提供了一种加密装置,包括:参数选择单元,用于选择用于与其他信息处理装置共享会话密钥的参数,其中在共享会话密钥后将与其他信息处理装置执行同时通信,在该同时通信中交换利用会话密钥保护的消息,其中参数选择单元作为用于在同时通信中共享会话密钥的手续选择参数;成员信息生成单元,用于通过使用由参数选择单元选择的参数、预先公开的公开参数、预先分派给加密装置的私用密钥、以及预先分派给参与装置的公共密钥来生成用于发送被参与装置用作临时密钥的参数的成员信息,其中参与装置是参与同时通信的信息处理装置;会话信息生成单元,用于通过使用成员信息、由参数选择单元选择的参数、公开参数和私用密钥来生成用于标识同时通信和生成用于同时通信的会话密钥的会话信息;会话信息获得单元,用于从各个参与装置分别获得由各个参与装置生成的其他会话信息;以及会话密钥生成单元,用于通过使用由加密装置生成的会话信息和由参与装置生成的会话信息来生成会话密钥。
参数选择单元可选择参数δ∈RZq *、参数k1RZq *以及具有预定比特数目的参数r。
公开参数包括相互不同的两个阶数为q的群G1、G2、用于将群G1中的元素的组合映射到群G2的双线性映射e、多个不同的散列函数、以及两个参数P、Ppub,并且成员信息生成单元可根据以下的式1来分别生成与各个参与装置相对应的成员信息Pi
在以下的式1中,HA表示公开的散列函数之一,S1表示分派给加密装置的私用密钥,Qi表示预先分派给各个参与装置的公共密钥,并且i表示从2到n的整数。
[数学式1]
Pi=r⊕HA(e(S1,δQi))…(式1)
会话信息生成单元可计算由以下的式2表示的值X1和由式3表示的值Y1,并且生成由以下的式4表示的会话信息D1
在式2和式3中,HB表示公开的散列函数之一,并且其中在式4中,P2至Pn表示与各参与装置相对应的成员信息,并且L表示关于成员信息P2至Pn与参与装置之间的对应关系的信息。
[数学式2]
X1=HB(r‖L)·k1P…(式2)
Y1=k1Ppub+HB(r‖L)·S1…(式3)
D1=<δ,P2,…Pn,X1,Y1,L>…(式4)
加密装置还包括成员验证单元,用于通过使用由加密装置生成的会话信息和从参与装置获得的由式5表示的会话信息Di(i=2,…,n)中的每一个来验证参与同时通信的装置的有效性,并且成员验证单元可计算由以下的式6表示的验证参数z,并且基于以下的式7是否成立来验证参与同时通信的装置的有效性。
[数学式3]
Di=<Xi,Yi>
=<HB(r‖L)·kiP,kiPpub+HB(r‖L)·Si>…(式5)
z = H B ( r | | L ) - 1 &CenterDot; &Sigma; j = 1 n X j = &Sigma; j = 1 n k j P …(式6)
e ( P , &Sigma; j = 1 n Y j ) = e ( P pub , z + H B ( r | | L ) &CenterDot; &Sigma; j = 1 n Q j ) …(式7)
当式7成立时,成员验证单元可判定参与装置由有效装置构成,并且相应地,会话密钥生成单元可基于以下的式8来计算会话密钥K。在式8中,HC表示公开的散列函数之一。
[数学式4]
K=HC(z)…(式8)
公开参数包括相互不同的两个阶数为q的群G1、G2、用于将群G1中的元素的组合映射到群G2的双线性映射e、多个不同的散列函数、以及两个参数P、Ppub,参数选择单元可选择参数δiRZq *和参数kiRZq *,以及具有预定比特数目的参数ri,并且成员信息生成单元可根据以下的式9来分别生成与各个参与装置相对应的成员信息Pi
在式9中,H2表示公开的散列函数之一,S1表示分派给加密装置的私用密钥,并且Qi表示预先分派给各个参与装置的公共密钥。
[数学式5]
Pi j=H2(e(Si,Qj)·δi)⊕ri…(式9)
会话信息生成单元可计算由以下的式表示的值Vi和由以下的式11表示的值Wi,并且生成由以下的式12表示的会话信息Di
以下的式10中的H3和以下的式11中的H4中的每一个表示公开的散列函数之一,其中在以下的式11中,SIGi(x)表示利用预定的签名生成密钥为信息x生成的数字签名,并且在以下的式12中,P2至Pn表示与各参与装置相对应的成员信息,并且L表示关于成员信息与参与装置之间的对应关系的信息。
[数学式6]
Vi=H3(ri)⊕ki…(式10)
Wi=SIGi(H4(ki))…(式11)
D i = &lang; &delta; i , P i 1 , &CenterDot; &CenterDot; &CenterDot; , P i i - 1 , P i i + 1 , &CenterDot; &CenterDot; &CenterDot; , P i n , V i , W i , L &rang; …(式12)
加密装置还包括成员验证单元,用于通过使用由式12表示的、由加密装置生成的会话信息Di和从参与装置获得的会话信息Di中的每一个来验证参与同时通信的装置的有效性,成员验证单元可计算由以下的式13表示的参数kj’(j=1,…,n,j≠i)验证参数z,并且基于计算出的参数kj’和会话信息Di来验证参与同时通信的装置的有效性。
[数学式7]
k j &prime; = H 3 ( H 2 ( e ( Q j , S i ) &CenterDot; &delta; j ) &CirclePlus; P j i ) &CirclePlus; V j …(式13)
当成员验证单元成功地验证了装置的有效性时,会话密钥生成单元可基于以下的式14来计算会话密钥K。
[数学式8]
K = K i = k 1 &prime; &CirclePlus; k 2 &prime; &CirclePlus; &CenterDot; &CenterDot; &CenterDot; &CirclePlus; k i - 1 &prime; &CirclePlus; k i &CirclePlus; k i + 1 &prime; &CirclePlus; &CenterDot; &CenterDot; &CenterDot; &CirclePlus; k n &prime; …(式14)
公开参数包括用于对预定信息加密的加密函数E、用于对经加密的信息解密的解密函数D、用于向预定信息附加数字签名的签名生成函数S、用于验证数字签名的签名验证函数V、以及散列函数,参数选择单元可选择具有预定的比特数目的参数Ni,并且会话信息生成单元可生成具有由以下的式15表示的数字签名的消息D和密文E(ei,N1)(i=2,…,n)。
在以下的式15中,S(s,x)表示利用预定的签名生成密钥s为信息x生成的数字签名,并且E(e,x)表示通过利用公共密钥e对信息x加密而获得的密文。
[数学式9]
S(s1,(E(e2,N1),…,E(en,N1),h(N1)))…(式15)
会话密钥生成单元可通过使用从其他参与装置获得的具有预定比特数目的参数Ni和由参数选择单元选择的参数N1来基于以下的式16计算会话密钥KU
[数学式10]
KU=h(N1‖N2‖…‖Nn)…(式16)
根据本发明的另一方面,为了实现上述目的,提供了一种密钥处理装置,包括:会话信息获得单元,用于获得从加密装置发送来的用于发送被参与同时通信的参与装置用作临时密钥的参数的会话信息,其中会话信息被用来生成用于同时通信的会话密钥并且标识同时通信,其中同时通信是在共享会话密钥后与加密装置执行的并且在同时通信中交换利用会话密钥保护的消息,并且其中会话信息获得单元还获得与从加密装置发送来的会话信息不同的、从参与同时通信的其他参与装置发送来的会话信息;临时密钥计算单元,用于通过使用从加密装置发送来的会话信息、预先分派给加密装置的公共密钥、预先分派给密钥处理装置的私用密钥、以及预先公开的公开参数来计算临时密钥,其中临时密钥是由加密装置设定来用于同时通信中的;参数选择单元,用于选择用来计算由密钥处理装置生成的、将被发送到加密装置的会话信息的参数;会话信息生成单元,用于通过使用由参数选择单元选择的参数、公开参数、私用密钥、以及从加密装置发送来的会话信息,来生成被发送到加密装置和其他参与装置的会话信息;以及会话密钥生成单元,用于通过使用由密钥处理装置生成的会话信息、从加密装置发送来的会话信息以及从其他参与装置发送来的会话信息来生成会话密钥。
公开参数包括相互不同的阶数为q的两个群G1、G2、用于将群G1中的元素的组合映射到群G2的双线性映射e、多个不同的散列函数、以及两个参数P、Ppub;会话密钥获得单元可从加密装置获得由以下的式17表示的会话信息D1,并且临时密钥计算单元可通过使用从加密装置发送来的会话信息D1中包括的与加密装置相对应的成员信息Pi和参数δ、私用密钥、预先分派给加密装置的公共密钥、以及公开参数来基于以下的式18计算临时密钥r’。
式17中的HB和式10中的HA中的每一个表示公开的散列函数之一。
[数学式11]
D1=<δ,P2,…Pn,HB(r‖L)·k1P,k1Ppub+HB(r‖L)·S1,L>…(式17)
r′=HA(e(Si,δQ1))⊕Pi=r…(式18)
会话密钥生成单元可生成由以下的式19表示的会话信息Di。在式19中,ki表示用于计算会话密钥的参数。
[数学式12]
Di=<Xi,Yi>
=<HB(r‖L)·kiP,kiPpub+HB(r‖L)·Si>…(式19)
会话信息获得单元可从参与同时通信的其他参与装置获得由式19表示的会话信息,密钥处理装置还可包括成员验证单元,用于通过使用由密钥处理装置生成的会话信息、从加密装置获得的由式17表示的会话信息D1、以及从其他参与装置获得的会话信息,来验证参与同时通信的装置的有效性,并且成员验证单元可计算由以下的式20表示的验证参数z,并且基于以下的式21是否成立来验证参与同时通信的装置的有效性。
在式20和式21中,变量n表示加密装置的数目、密钥处理装置的数目和其他参与装置的数目的总和。
[数学式13]
z = H B ( r | | L ) - 1 &CenterDot; &Sigma; j = 1 n X j = &Sigma; j = 1 n k j P …(式20)
e ( P , &Sigma; j = 1 n Y j ) = e ( P pub , z + H B ( r | | L ) &CenterDot; &Sigma; j = 1 n Q j ) …(式21)
当式21成立时,成员验证单元可判定参与同时通信的装置由有效装置构成,并且相应地,会话密钥生成单元可基于以下的式22来计算会话密钥K。在式22中,HC表示公开的散列函数之一。
[数学式14]
K=HC(z)…(式22)
公开参数包括用于对预定信息加密的加密函数E、用于对经加密的信息解密的解密函数D、用于向预定信息附加数字签名的签名生成函数S、用于验证数字签名的签名验证函数V、以及散列函数,密钥处理装置还可包括成员验证单元,用于通过使用从加密装置获得的由以下的式23表示的会话信息和由临时密钥计算单元计算出的临时密钥来验证加密装置的有效性,临时密钥计算单元可使用密钥处理装置中保存的私用密钥来对从加密装置发送来的密文E(ei,N1)解密,并且计算参数N1作为临时密钥,并且成员验证单元可基于由以下的式23表示的附加到会话信息的数字签名的验证结果和利用散列函数和参数N1计算出的h(N1)来验证加密装置。
在式23中,S(s,x)表示利用预定的签名生成密钥s为信息x生成的数字签名,并且E(e,x)表示通过利用公共密钥e对信息x加密而获得的密文。
[数学式15]
S(s1,(E(e2,N1),…,E(en,N1),h(N1)))…(式23)
当成员验证单元成功地验证了装置的有效性时,参数选择单元可选择具有预定比特数目的参数Ni,并且会话信息生成单元可采用由参数选择单元选择的参数Ni作为会话信息,并将会话信息发送到加密装置和其他参与装置。
会话密钥生成单元可通过使用由临时密钥计算单元计算出的参数N1、由参数选择单元选择的参数Ni和从其他参与装置获得的参数Ni来基于以下的式24计算会话密钥KU
[数学式16]
KU=h(N1‖N2‖…‖Nn)…(式24)
根据本发明的另一方面,为了实现上述目的,提供了一种加密方法,包括以下步骤:选择用于与其他信息处理装置共享会话密钥的参数,其中在共享会话密钥后将与其他信息处理装置执行同时通信,在该同时通信中交换利用会话密钥保护的消息,其中参数是作为用于在同时通信中共享会话密钥的手续而被选择的;通过使用由参数选择单元选择的参数、预先公开的公开参数、预先分派给执行加密方法的装置的私用密钥、以及预先分派给参与装置的公共密钥来生成用于发送被参与装置用作临时密钥的参数的成员信息,其中参与装置是参与同时通信的信息处理装置;通过使用成员信息、由参数选择单元选择的参数、公开参数和私用密钥来生成用于标识同时通信和生成用于同时通信的会话密钥的会话信息;从参与装置获得由参与装置生成的其他会话信息;以及通过使用由执行加密方法的装置生成的会话信息和由参与装置生成的会话信息来生成会话密钥。
根据本发明的另一方面,为了实现上述目的,提供了一种密钥处理方法,包括以下步骤:获得从加密装置发送来的用于发送被参与同时通信的参与装置用作临时密钥的参数的会话信息,其中会话信息被用来生成用于同时通信的会话密钥并且标识同时通信,其中同时通信是在共享会话密钥后与加密装置执行的并且在同时通信中交换利用会话密钥保护的消息;通过使用从加密装置发送来的会话信息、预先分派给加密装置的公共密钥、预先分派给执行密钥处理方法的装置的私用密钥、以及预先公开的公开参数来计算临时密钥,其中临时密钥是由加密装置设定来用于同时通信中的;选择用来计算由执行密钥处理方法的装置生成的、将被发送到加密装置的会话信息的参数;会话信息生成步骤,用于通过使用所选择的参数、公开参数、私用密钥、以及从加密装置发送来的会话信息,来生成被发送到加密装置和其他参与装置的会话信息;获得与从加密装置发送来的会话信息不同的、从参与同时通信的其他参与装置发送来的会话信息;以及通过使用由执行密钥处理方法的装置生成的会话信息、从加密装置发送来的会话信息以及从其他参与装置发送来的会话信息来生成会话密钥。
根据本发明的另一方面,为了实现上述目的,提供了一种用于能够在共享会话密钥后与其他信息处理装置执行同时通信的计算机的程序,其中在该同时通信中交换利用会话密钥保护的消息,其中该程序使得计算机实现:参数选择功能,用于选择用于共享会话密钥的参数,其中参数选择功能作为用于在同时通信中共享会话密钥的手续选择参数;成员信息生成功能,用于通过使用由参数选择单元选择的参数、预先公开的公开参数、预先分派给计算机的私用密钥、以及预先分派给参与装置的公共密钥来生成用于发送被参与装置用作临时密钥的参数的成员信息,其中参与装置是参与同时通信的信息处理装置;会话信息生成功能,用于通过使用成员信息、由参数选择单元选择的参数、公开参数和私用密钥来生成用于标识同时通信和生成用于同时通信的会话密钥的会话信息;会话信息获得功能,用于从各个参与装置分别获得由各个参与装置生成的其他会话信息;以及会话密钥生成功能,用于通过使用由程序生成的会话信息和由参与装置生成的会话信息来生成会话密钥。
根据本发明的另一方面,为了实现上述目的,提供了一种用于能够在共享会话密钥后与加密装置和其他信息处理装置执行同时通信的计算机的程序,其中在该同时通信中交换利用会话密钥保护的消息,其中该程序使得计算机实现:会话信息获得功能,用于获得从加密装置发送来的用于发送被参与同时通信的参与装置用作临时密钥的参数的会话信息,其中会话信息被用来生成用于同时通信的会话密钥并且标识同时通信,其中同时通信是与加密装置执行的,并且其中会话信息获得功能还获得与从加密装置发送来的会话信息不同的、从参与同时通信的其他参与装置发送来的会话信息;临时密钥计算功能,用于通过使用从加密装置发送来的会话信息、预先分派给加密装置的公共密钥、预先分派的私用密钥、以及预先公开的公开参数来计算临时密钥,其中临时密钥是由加密装置设定来用于同时通信中的;参数选择功能,用于选择用来计算由计算机生成的、将被发送到加密装置的会话信息的参数;会话信息生成功能,用于通过使用所选择的参数、公开参数、私用密钥、以及从加密装置发送来的会话信息,来生成被发送到加密装置和其他参与装置的会话信息;以及会话密钥生成功能,用于通过使用由计算机生成的会话信息、从加密装置发送来的会话信息以及从其他参与装置发送来的会话信息来生成会话密钥。
为了解决上述问题,根据本发明的又一个方面,提供了包括加密装置和密钥处理装置的密钥共享系统。
本发明的有利效果
如上所述,根据本发明,可以进一步提高群组密钥协定技术的安全性。
附图说明
图1是示出根据本发明第一实施例的密钥共享系统的说明图。
图2是示出根据该实施例的密钥生成装置的配置的框图。
图3是示出根据该实施例的加密装置的配置的框图。
图4是示出根据该实施例的密钥处理装置的配置的框图。
图5是示出根据该实施例的密钥生成方法的流程的流程图。
图6是示出根据该实施例的会话密钥生成处理的流程图。
图7是示出根据该实施例的会话密钥生成处理的流程图。
图8是示出根据该实施例的会话密钥生成处理的流程图。
图9是示出根据本发明第二实施例的加密装置的配置的框图。
图10是示出根据该实施例的密钥处理装置的配置的框图。
图11是示出根据该实施例的会话密钥生成处理的流程图。
图12是示出根据本发明第三实施例的密钥共享系统的说明图。
图13是示出根据该实施例的密钥处理装置的配置的框图。
图14是示出根据该实施例的加密装置的配置的框图。
图15是示出根据该实施例的密钥生成处理的流程图。
图16是示出根据该实施例的会话密钥生成处理的流程图。
图17是示出根据本发明每个实施例的加密装置的硬件配置的框图。
图18是示出非专利文献2中记载的方法中的密钥生成处理的流程图。
图19是示出非专利文献2中记载的方法中的会话密钥生成处理的流程图。
图20是示出非专利文献2中记载的方法中的会话密钥生成处理的流程图。
图21是示出非专利文献2中记载的第二方法中的密钥生成处理的流程图。
图22是示出非专利文献2中记载的第二方法中的会话密钥生成处理的流程图。
图23是示出非专利文献3中记载的方法中的会话密钥生成处理的流程图。
标号列表
1     密钥共享系统
3     通信网络
10    密钥生成装置
11    成员信息管理单元
13    参数选择单元
15    公开信息生成单元
17    密钥生成单元
19    公共密钥生成单元
21    私用密钥生成单元
22    签名密钥生成单元
23    信息提供单元
25    通信控制单元
27    存储单元
100   加密装置
101、201    个人密钥获得单元
103、203    群组密钥生成单元
105、121、131、209、229    参数选择单元
107、123、133    成员信息生成单元
109、125、135、211、227    会话信息生成单元
111、127、137、205、221    会话信息获得单元
113、139、213、225    成员验证单元
115、129、141、215、231    会话密钥生成单元
117、217    通信控制单元
119、219    存储单元
200    密钥处理装置
207、223    临时密钥计算单元
具体实施方式
下面,将参考附图详细描述本发明的优选实施例。注意,在本说明书和附图中,用相同的标号来指示具有基本相同的功能和结构的元件,并且省略重复说明。
以下的说明将按下面列出的顺序进行。
(1)目的
非专利文献1中记载的方法
非专利文献2中记载的方法
与非专利文献2中记载的方法相关联的问题
非专利文献2中记载的第二方法
非专利文献3中记载的方法
与非专利文献2中记载的第二方法和非专利文献3中记载的方法相关联的问题
(2)第一实施例
(2-1)密钥共享系统
(2-2)密钥生成装置的配置
(2-3)加密装置的配置
(2-4)密钥处理装置的配置
(2-5)密钥生成方法
(2-6)用于生成会话密钥的方法
(2-7)用于生成会话密钥的方法中的计算量
(3)第二实施例
(3-1)加密装置的配置
(3-2)密钥处理装置的配置
(3-3)密钥生成方法
(3-4)用于生成会话密钥的方法
(4)第三实施例
(4-1)密钥共享系统
(4-2)密钥生成装置的配置
(4-3)加密装置的配置
(4-4)用于生成会话密钥的方法
(5)根据本发明每个实施例的加密装置和密钥处理装置的硬件配置
(6)结论
(目的)
在说明根据本发明的加密装置和密钥处理装置之前,将首先说明传统的群组密钥协定技术以便说明本发明的目的。
<非专利文献1中记载的方法>
非专利文献1中记载的方法是一种用于使成员(U0,…Un-1)可以按以下协议利用广播通信路径共享会话密钥的方法。以下协议可被执行任意多次。认为在执行前,成员同意一系统设置,该系统设置用于定义具有适当大小的质数p和q以及阶数为q的原物(original)α∈Zp。应当注意,在以下协议中,每个成员的号码i被认为是mod n(模n)的。
首先,每个成员Ui选择一参数riRZq,并且把利用以下式901计算出的zi广播给其他成员。应当注意,a∈RZ指的是元素a是从集合Z中随机选择的。
[数学式17]
z i = &alpha; r i mod p …(式901)
随后,每个成员Ui使用zi+1和zi-1来计算Xi=(zi+1/zi-1)ri mod p,并且将计算出的Xi发送到各成员。
随后,每个成员Ui使用以下式902来计算Ki。利用上述协议,每个成员Ui获得Ki。每个成员的会话密钥K与Ki之间的关系由以下的式903表示。因此,成员可共享会话密钥K。
[数学式18]
K i = z i - 1 nr i X i n - 1 X i + 1 n - 2 &CenterDot; &CenterDot; &CenterDot; X i - 2 mod p …(式902)
K = K i = &alpha; r 1 r 2 + r 2 r 3 + &CenterDot; &CenterDot; &CenterDot; + r n r 1 mod p …(式903)
然而,在非专利文献1中记载的方法中,为了计算Ki,在mod p的计算中必须执行O(n2)次乘法。因此,存在每个成员的计算量增加的问题。
<非专利文献2中记载的方法>
非专利文献2中记载的方法是涉及用于减少每个成员的计算量的群组密钥协定的方法。在以下说明中,将参考图18至20详细说明非专利文献2中记载的方法。图18是示出非专利文献2中记载的方法中的密钥生成处理的流程图。图19和20是示出非专利文献2中记载的方法中的会话密钥生成处理的流程图。
非专利文献2中记载的方法使用双线性映射技术。该双线性映射被表示为“e”。双线性映射e:G1×G1→G2指的是阶数为q的群G1中的两个元素集合被映射到具有相同阶数q的另一群G2。该映射的特征在于具有双线性性和非退化性。
1.双线性性:对于任何给定的u,v∈G1和a,b∈Zq *,满足e(ua,vb)=e(u,v)ab
2.非退化性:对于G1的生成元g,e(g,g)≠1
[密钥生成处理]
在非专利文献2中记载的方法中,密钥共享系统中的中心生成此方法的各种系统参数以及每个成员的个人密钥(即包括公共密钥和私用密钥的用户密钥)。下面将参考图18详细说明该中心执行的密钥生成处理。
首先,密钥共享系统中的中心根据预定的方法选择阶数q、阶数为q的两个群G1、G2,以及双线性映射e(步骤S901)。
随后,中心选择参数P∈RG1和参数s∈RZq *(步骤S903),并且使用这些参数来计算Ppub=sP。此参数P也可称为随机生成元。另一方面,参数s被秘密地保存作为主私用密钥。
随后,中心选择四种散列函数,即H1、H4、H5、H6(步骤S905)。这些散列函数分别具有以下特征:
H1:{0,1}*→G1
H4:G2→{0,1}n
H5:{0,1}n→Zq *
H6:G1→{0,1}n
随后,中心将上述步骤中生成的各种设定值中允许公开的一些作为系统参数公开(步骤S907)。例如,公开的系统参数包括<e,G1,G2,q,P,Ppub,H1,H4,H5,H6>。
随后,当具有诸如用户ID号和邮件地址之类的用于区分用户的ID(IDi)的成员Ui加入此密钥共享系统时,中心根据以下方法生成用户Ui的公共密钥Qi和私用密钥Si(步骤S909)。
公共密钥Qi=H1(IDi)
私用密钥Si=sQi
中心将所生成的用户Ui的个人密钥(即公共密钥Qi和私用密钥Si)发送到相应的用户Ui。另外,中心还可公开所生成的用户Ui的公共密钥Qi
当新用户请求中心生成个人密钥时,中心仅执行如图17所示的步骤S909,从而生成新的个人密钥。
如上所述,用户的公共密钥Qi可以根据用户的公开ID和散列函数H1(即一个公开的参数)来生成。因此,不仅中心能够计算公共密钥Qi,而且任何用户也都能够计算公共密钥Qi。另一方面,用户的私用密钥Si是利用秘密存储在中心中的主密钥s来生成的。因此,只有中心能够生成私用密钥Si
当多个信息处理装置尝试根据非专利文献2中记载的方法执行同时通信时,每个信息处理装置根据这样公开的系统参数和用户的公共密钥和私用密钥来生成会话密钥,并且信息处理装置根据以下方法来共享所生成的用于同时通信的会话密钥。
[用于生成会话密钥的方法]
随后,将参考图19和20来详细说明用于生成多个信息处理装置之间在同时通信期间使用的会话密钥的方法。在以下说明中,假定总共n台信息处理装置尝试在其间实现同时通信。在非专利文献2中记载的方法中,n个成员U1,U2,…,Un中的任何一个是协议发起者(下文中也可称之为发起者)。在以下说明中,为了简明起见,假定成员U1是发起者。
[第1轮]
首先,充当发起者的成员U1所拥有的信息处理装置选择参数δ∈RG2和参数k1RZq *,即在同时通信中使用的参数,在该同时通信中,在共享会话密钥之后交换受会话密钥保护的消息(步骤S911)。成员U1所拥有的信息处理装置还选择参数r∈R{0,1}n(步骤S911)。此参数r是作为用于在同时通信中共享会话密钥的一个手续而被选择的。
随后,成员U1所拥有的信息处理装置针对参与同时通信的成员U2至Un生成成员信息Pi(i=2,…,n),即用于向参与同时通信的装置发送被用作临时密钥的参数的信息(步骤S913)。此成员信息Pi是由以下的式911表示的值。
[数学式19]
Pi=r⊕H4(e(S1,Qi)·δ)…(式911)
在以上的式911中,H4是作为系统参数公开的散列函数之一,并且e是作为系统参数公开的双线性映射。在以上的式911中,r和δ是由成员U1所拥有的信息处理装置选择的参数。在以上的式911中,S1是分派给成员U1的私用密钥,并且Qi是分派给参与同时通信的成员U2至Un的公共密钥。
随后,成员U1所拥有的信息处理装置使用公开的系统参数和选择的参数来计算以下的值X1、Y1。当对X1、Y1的计算完成时,成员U1所拥有的信息处理装置生成由以下的式914表示的会话信息D1(步骤S915)。
[数学式20]
X1=H5(r)·k1P…(式912)
Y1=k1Ppub…(式913)
D1=<δ,P2,…Pn,X1,Y1,L>…(式914)。
应当注意,成员U1所拥有的信息处理装置根据式911计算n-1个Pi。例如,与成员U2相对应的成员信息不一定是P2。因此,成员U1所拥有的信息处理装置将表示每个成员与P2至Pn之间的对应关系的信息L附加到由式914表示的会话信息。
当已生成会话信息D1时,成员U1所拥有的信息处理装置广播所生成的会话信息D1(步骤S917)。
[第2轮]
在成员U2至Un所拥有的信息处理装置接收到会话信息D1后,这些信息处理装置首先参考会话信息D1中包括的信息L,并且判定本信息处理装置的成员信息对应于P2至Pn中的哪一个(步骤S919)。
随后,成员U2至Un所拥有的信息处理装置中的每一个利用本信息处理装置的成员信息Pi、会话信息D1、成员U1(即发起者)的公共密钥Q1以及本信息处理装置的私用密钥Si来根据以下的式915计算临时密钥r’(步骤S921)。
[数学式21]
r′=H4(e(Q1,Si)·δ)⊕Pi…(式915)
在此情况下,当成员U1正确地生成了会话信息D1时,成员U2至Un所拥有的信息处理装置所计算出的临时密钥r’等于成员U1所拥有的信息处理装置所选择的临时密钥r。换言之,r’=r成立。
随后,成员U2至Un所拥有的信息处理装置选择参数kiRZq *(步骤S923)。然后,成员U2至Un所拥有的信息处理装置利用所选择的参数ki、计算出的临时密钥r’以及公开的系统参数,根据以下的式916来生成被发送到成员U1所拥有的信息处理装置的会话信息Di(步骤S925)。应当注意,式916是在假定r’=r成立的情况下制订的。
[数学式22]
Di=<Xi,Yi>
=<H5(r)·kiP,kiPpub>…(式916)
当已生成了会话信息Di时,成员U2至Un所拥有的信息处理装置中的每一个将所生成的会话信息Di广播到除本信息处理装置以外的信息处理装置(步骤S927)。
[会话密钥的生成]
成员U1所拥有的信息处理装置获得从成员U2至Un所拥有的信息处理装置发送来的所有会话信息Di。结果,该信息处理装置获得总共n个会话信息,即会话信息D1至Dn,其中包括由成员U1所拥有的信息处理装置生成的会话信息D1。成员U1所拥有的信息处理装置使用会话信息D1至Dn和公开的系统参数来计算用于验证的参数(以下称为验证参数)z1和zj(步骤S929)。
类似地,成员U2至Un所拥有的信息处理装置中的每一个获得总共n个会话信息,即会话信息D1至Dn,其中包括会话信息D1和从除成员U1外的成员U2至Un所拥有的信息处理装置获得的会话信息Di。成员U2至Un所拥有的信息处理装置中的每一个使用会话信息D1至Dn和公开的系统参数来计算验证参数z1和zj(步骤S931)。
[数学式23]
z1=H5(r)-1·X1=k1P…(式917)
zj=H5(r)-1·Xj=kjP…(式918)
在式918中,2≤j≤n成立。
随后,成员U1所拥有的信息处理装置利用计算出的验证参数z1、zj执行计算以判定以下的式919是否成立(步骤S933)。类似地,成员U2至Un所拥有的信息处理装置中的每一个利用计算出的验证参数z1、zj执行计算以判定以下的式919是否成立(步骤S935)。当判定式919成立时,每个信息处理装置判定参与确立会话密钥K的n个成员都是有效的成员。换言之,判定式919是否成立的步骤S933和步骤S935是用于验证成员的有效性的步骤。
[数学式24]
e ( P , &Sigma; j = 1 n Y j ) = e ( P pub , &Sigma; j = 1 n z j ) …(式919)
仅当式919成立时,成员U1所拥有的信息处理装置才根据以下的式920计算会话密钥K(步骤S937)。类似地,仅当式919成立时,成员U2至Un所拥有的信息处理装置中的每一个才根据以下的式920计算会话密钥K(步骤S939)。
[数学式25]
K=Ki=H6(z1)⊕…⊕H6(zn)…(式920)
每个信息处理装置可以计算会话密钥K。这意味着这些信息处理装置共享了在同时通信中使用的会话密钥K,从而多个参与者可以开始同时通信(步骤S941)。
<与非专利文献2中记载的方法相关联的问题>
如上所述,上述非专利文献2中记载的方法是这样一种方法:使得每个成员一次性地验证在[第2轮]中从成员发送来的广播消息以便防止除成员外的任何第三方访问会话密钥K。
然而,本申请的发明人详细透彻地研究了上述非专利文献2中记载的方法,并且发现在以下情况下群组成员有可能假冒其身份。
更具体而言,非专利文献2中记载的方法中的[第2轮]中的验证不使用发送者所固有的任何信息。因此,本申请的发明人设想到,能够获得在[第1轮]中从发起者发送来的临时密钥r的值的成员就能够生成一个值来逃过此验证。
现在,假定成员Ui故意避免参与上述群组密钥协定协议,或者由于通信差错等等而未能参与其中。在此情况下,未从成员Ui发送会话信息Di,从而不可能收集所有n个成员的会话信息。因此,在此情况下预期不会确立会话密钥K。
然而,在上述方法中,能够获得值r的另一成员Uj可以假装为成员Ui来发送不是成员Uj的会话信息Dj的会话信息Di。换言之,在上述方法中,成员Uj可滥用通过利用成员Uj的私用密钥Sj按照式915生成的r’,以将所生成的r’用于其他计算。在利用式916对会话信息的计算中,可以利用计算出的临时密钥和公开的参数来自由计算会话信息。因此,当在步骤S923中选择参数kj时,也可选择不是kj的另一参数ki,从而可以获得两个会话信息Dj、Di。结果,即使成员Ui实际没有参与,除Uj以外的成员也误认为会话密钥被包括Ui在内的n个成员成功共享。
如果当在例如重要会议期间生成会话密钥时发生上述情形,则这可能具有严重的影响。因此,根据本发明第一实施例的方法的一个目的是提供一种更安全的群组密钥协定技术,用于防止在上述非专利文献2中记载的方法中可能发生的成员假冒其身份的情况。
<非专利文献2中记载的第二方法>
非专利文献2不仅记载了上述方法,还记载了下面说明的第二方法。下面将参考图21和22来详细说明非专利文献2中记载的第二方法。图21是示出非专利文献2中记载的第二方法中的密钥生成处理的流程图。图22是示出非专利文献2中记载的第二方法中的会话密钥生成处理的流程图。
[密钥生成处理]
在非专利文献2中记载的第二方法中,密钥共享系统中的中心首先生成此方法的各种系统参数以及每个成员的个人密钥(即包括公共密钥和私用密钥的用户密钥)。下面将参考图21详细说明该中心执行的密钥生成处理。
首先,密钥共享系统中的中心根据预定的方法选择阶数q、阶数为q的两个群G1、G2,以及双线性映射e(步骤S951)。
随后,中心选择参数P∈RG1和参数s∈RZq *(步骤S953),并且使用这些参数来计算Ppub=sP。此参数P也可称为随机生成元。另一方面,参数s被秘密地保存作为主私用密钥。
随后,中心选择三种散列函数,即H1、H2、H3(步骤S955)。这些散列函数分别具有以下特征:
H1:{0,1}*→G1
H2:G2→{0,1}n
H3:{0,1}n→{0,1}n
随后,中心将上述步骤中生成的各种设定值中允许公开的一些作为系统参数公开(步骤S957)。例如,公开的系统参数包括<e,G1,G2,q,P,Ppub,H1,H2,H3>。
随后,当具有诸如用户ID号和邮件地址之类的用于区分用户的ID(IDi)的成员Ui加入此密钥共享系统时,中心根据以下方法生成用户Ui的公共密钥Qi和私用密钥Si(步骤S959)。
公共密钥Qi=H1(IDi)
私用密钥Si=sQi
中心将所生成的用户Ui的个人密钥(即公共密钥Qi和私用密钥Si)发送到相应的用户Ui。另外,中心还可公开所生成的用户Ui的公共密钥Qi
当新用户请求中心生成个人密钥时,中心仅执行如图20所示的步骤S959,从而生成新的个人密钥。
如上所述,用户的公共密钥Qi可以根据用户的公开ID和散列函数H1(即一个公开的参数)来生成。因此,不仅中心能够公共密钥Qi,而且任何用户也都能够计算公共密钥Qi。另一方面,用户的私用密钥Si是利用秘密存储在中心中的主密钥s来生成的。因此,只有中心能够生成私用密钥Si
当多个信息处理装置尝试利用非专利文献2中记载的第二方法执行同时通信时,每个信息处理装置根据这样公开的系统参数和用户的公共密钥和私用密钥来生成会话密钥,并且信息处理装置根据以下方法来共享所生成的用于同时通信的会话密钥。
[用于生成会话密钥的方法]
随后,将参考图22来详细说明用于生成多个信息处理装置之间在同时通信期间使用的会话密钥的方法。在以下说明中,假定总共n台信息处理装置尝试在其间实现同时通信。
首先,每个成员Ui所拥有的信息处理装置选择参数δiRG2和参数kiRZq *(步骤S961)。在此情况下,参数δi是用于共享会话密钥的参数。另一方面,每个成员Ui所拥有的信息处理装置选择参数riR{0,1}n(步骤S961)。此参数ri是作为用于在同时通信中共享会话密钥的一个手续而被选择的。
随后,每个成员Ui所拥有的信息处理装置针对参与同时通信的除本成员以外的成员Uj(1≤j≤n,j≠i)生成成员信息Pi j,即用于向参与同时通信的装置发送被用作临时密钥的参数的信息(步骤S963)。此成员信息Pi j是由以下的式921表示的值。
[数学式26]
Pi j=H2(e(Si,Qj)·δi)⊕ri…(式921)
在以上的式921中,H2是作为系统参数公开的散列函数之一,并且e是作为系统参数公开的双线性映射。在以上的式921中,ri和δi是由成员Ui所拥有的信息处理装置选择的参数。在以上的式921中,Si是分派给成员Ui的私用密钥,并且Qj是分派给参与同时通信的成员Uj的公共密钥。
随后,每个成员Ui所拥有的信息处理装置利用公开的系统参数和选择的参数来计算由式922表示的值Vi。当已计算了Vi时,每个成员Ui所拥有的信息处理装置生成由以下的式923表示的会话信息D1(步骤S965)。
[数学式27]
Vi=H3(ri)⊕ki…(式922)
D i = &lang; &delta; , P i 1 , &CenterDot; &CenterDot; &CenterDot; , P i i - 1 , P i i + 1 , &CenterDot; &CenterDot; &CenterDot; , P i n , V i , L &rang; …(式923)
应当注意,每个成员Ui所拥有的信息处理装置根据式921计算n-1个Pi j。例如,与成员U2相对应的成员信息不一定是Pi 2。因此,每个成员Ui所拥有的信息处理装置将表示每个成员与Pi j之间的对应关系的信息L附加到由式923表示的会话信息。
当已生成会话信息Di时,每个成员Ui所拥有的信息处理装置将所生成的会话信息Di广播到各信息处理装置(步骤S967)。
首先,在成员Ui所拥有的信息处理装置接收到了来自另一信息处理装置的会话信息Dj(1≤j≤n,j≠i)后,成员Ui所拥有的信息处理装置参考会话信息Dj中包括的信息L来检测与成员Ui所拥有的信息处理装置相对应的成员信息Pj i(步骤S969)。
随后,每个成员Ui所拥有的信息处理装置通过使用与成员Ui所拥有的信息处理装置相对应的成员信息Pj i、会话信息Dj、成员Uj的公共密钥Qj以及与成员Ui所拥有的信息处理装置相对应的私用密钥Si来根据以下的式924计算参数kj’(步骤S971)。
[数学式28]
k j &prime; = H 3 ( H 2 ( e ( Q j , S i ) ) &CenterDot; &delta; j &CirclePlus; P j i ) &CirclePlus; V j …(式924)
随后,每个成员Ui所拥有的信息处理装置利用计算出的参数kj’和所选择的参数ki来根据以下的式925计算会话密钥K(步骤S973)。
[数学式29]
K = K i = k 1 &prime; &CirclePlus; k 2 &prime; &CirclePlus; &CenterDot; &CenterDot; &CenterDot; &CirclePlus; k i - 1 &prime; &CirclePlus; k i &CirclePlus; k i + 1 &prime; &CirclePlus; &CenterDot; &CenterDot; &CenterDot; &CirclePlus; k n &prime; …(式925)
每个信息处理装置计算会话密钥K。因此,这意味着这些信息处理装置共享了在同时通信中使用的会话密钥K,从而多个参与者可以开始同时通信(步骤S975)。
<非专利文献3中记载的方法>
[用于生成会话密钥的方法]
非专利文献3中记载的方法是一种用于实现一轮方法的方法,其中参与同时通信的每个信息处理装置仅发送消息一次以便减少通信开销。在以下说明中,将参考图23来详细说明非专利文献3中记载的方法。图23是示出非专利文献3中记载的方法中的会话密钥生成处理的流程图。
在非专利文献3中记载的方法中,在会话密钥生成处理之前,密钥共享系统中的中心使用密钥生成装置来生成此方法的各种系统参数以及每个成员的个人密钥(即包括公共密钥和私用密钥的用户密钥和用于签名的用户密钥)。因此,散列函数、公共密钥加密方法的加密函数E和解密函数D以及数字签名方法的签名生成函数S和签名验证函数V被公开作为系统参数。另外,每个用户Ui所拥有的信息处理装置存储用户Ui的公开加密密钥ei、秘密解密密钥di、秘密签名生成密钥si以及公开签名验证密钥vi。假定公开加密密钥ei和公开签名验证密钥vi被每个成员Ui共享。
在以下说明中,假定总共n台信息处理装置尝试在其间实现同时通信。在非专利文献3中记载的方法中,n个成员U1,U2,…,Un中的任何一个是协议发起者(下文中也可称之为发起者)。在以下说明中,为了简明起见,假定成员U1是发起者。
首先,发起者U1所拥有的信息处理装置生成随机数,并且采用所生成的随机数作为参数N1(步骤S981)。随后,发起者U1所拥有的信息处理装置生成包括共享密钥的用户的列表U来作为成员信息(步骤S983)。随后,发起者U1所拥有的信息处理装置利用其他成员Ui的公开加密密钥ei、发起者U1所拥有的信息处理装置的秘密签名生成密钥si、选择的参数N1以及公开的参数,来生成由以下的式926表示的会话信息D(步骤S985)。在此情况下,i=2,…,n。
[数学式30]
D=S(si,(E(e2,N1),…,E(en,N1)))…(式926)
在此情况下,在式926中,E(A,B)表示通过利用密钥A对消息B加密而获得的密文,并且S(A,B)表示利用密钥A施加到消息B的数字签名。
随后,发起者U1所拥有的信息处理装置将所生成的成员信息U和会话信息D广播到其他成员Ui(步骤S987)。
随后,发起者U1所拥有的信息处理装置利用每个成员Ui(i=2,…,n)的公开加密密钥ei来对参数N1加密以生成密文E(ei,N1)。然后,发起者U1所拥有的信息处理装置将所生成的密文E(ei,N1)发送到每个成员Ui的信息处理装置(步骤S989)。
当每个成员Ui的信息处理装置接收到从发起者U1的信息处理装置发送来的每个信息时,每个成员Ui的信息处理装置对密文E(ei,N1)解密以获得参数N1。另外,每个成员Ui的信息处理装置随机选择参数Ni(步骤S991)并且将用户信息Ui和参数Ni广播到其他信息处理装置(步骤S993)。因此,参与同时通信的每个信息处理装置可以获得参数N1至Nn
随后,包括发起者在内的每个成员Ui的信息处理装置利用所获得的参数Ni和散列函数h(即一个公开的参数)来根据以下的式927计算会话密钥KU(步骤S995)。
[数学式31]
KU=h(N1‖N2‖…‖Nn)…(式927)
每个信息处理装置计算会话密钥KU。因此,这意味着这些信息处理装置共享了在同时通信中使用的会话密钥KU,从而多个参与者可以开始同时通信(步骤S997)。
<与非专利文献2中记载的第二方法和非专利文献3中记载的方法相关联的问题>
如上所述,上述非专利文献2中记载的第二方法和非专利文献3中记载的方法涉及实现一轮方法的群组密钥协定方法。然而,本申请的发明人详细研究了这些方法,发现这两个方法都具有如下的共同问题。
该问题在于,当某一用户(例如用户A)向另一用户(例如用户B)发送与发送给除用户B以外的用户的值不同的值时,用户A可阻止用户B共享由包括n个人的群组共享的群组密钥。
更具体而言,假定包括四个人(U1、U2、U3、U4)的群组。在非专利文献2中记载的第二方法中,U2可以通过在如上所述的对P2 3的计算中使用不是正确ri的值来欺骗U3,从而U3根据P2 3得出的值k2’是与其他用户获得的正确值不同的值。结果,U3不能正确地共享群组密钥。
另一方面,在非专利文献3中记载的方法中,只有发起者U1能够执行上述欺骗。换言之,当为每个用户Ui生成E(ei,N1)时,U1可以仅对特定用户使用不是N1的值,从而该特定用户不能获得N1,结果群组密钥无法被正确地共享。
另外,除了上述敌对者以外的每个成员无法知道此攻击正在进行,而是认为群组密钥已被成员成功地共享。因此,每个成员可执行目标处理(例如利用群组密钥的处理)。就系统的安全性而言,是不希望有此问题的。
因此,以下所述的根据本发明第二实施例的方法的一个目的是提供一种更安全的群组密钥协定技术,用于防止在上述非专利文献3中记载的方法中可能发生的对成员的阻止。以下所述的根据本发明第三实施例的方法的一个目的是提供一种更安全的群组密钥协定技术,用于防止在上述非专利文献2中记载的第二方法中可能发生的对成员的阻止。
以下所述的根据本发明每个实施例的方法是基于作为基本技术的非专利文献2和非专利文献3中记载的方法的,并且被配置为通过向这些基本技术施加改进来获得显著的效果。因此,正是施加到这些技术的改进表征了本发明的每个实施例。换言之,虽然本发明的每个实施例是基于上述技术内容的基本概念的,但是本发明的要旨却是集中于改进的部分。因此,应当注意,本发明的配置是明显不同的,并且本发明的效果是明显区别于基本技术的效果的。
(第一实施例)
<密钥共享系统>
首先,将参考图1来详细说明根据本发明第一实施例的密钥共享系统。图1是示出根据本实施例的密钥共享系统的说明图。
例如,如图1所示,根据本实施例的密钥共享系统1主要包括密钥生成装置10、多个加密装置100A、100B、100C…、以及多个密钥处理装置200A、200B、200C…。这些装置经由通信网络3相互连接。
通信网络3是连接在密钥生成装置10、加密装置100和密钥处理装置200之间以便能够进行双向通信或单向通信的通信电路网络。此通信网络3可由公共电路网络或专用电路网络构成。公共电路网络的示例包括因特网、NGN(下一代网络)、电话电路网络、卫星通信网络、广播通信路径等等。专用电路网络的示例包括WAN(广域网)、LAN(局域网)、IP-VPN(因特网协议-虚拟专用网)、以太网(注册商标)、无线LAN等等。此通信网络3可以无线连接或经由线路连接。
密钥生成装置10生成每个加密装置100和每个密钥处理装置200所特有的公共密钥和私用密钥。密钥生成装置10公开公共密钥,并且经由安全的通信路径将公共密钥和私用密钥分发到各装置。另外,密钥生成装置10把可被公开并用于根据本实施例的密钥共享系统1中的参数作为系统参数公开。应当注意,密钥生成装置10可由生成和管理公共密钥和私用密钥的中心等等拥有。
加密装置100使用由密钥生成装置10生成的公共密钥、私用密钥、公开的系统参数等等来对用于生成在加密装置100与多个密钥处理装置200之间执行的同时通信中所需的会话密钥的信息加密。另外,加密装置100经由通信网络3把经加密的用于生成会话密钥的信息发送到每个密钥处理装置200。该加密装置100可由任何第三方拥有。或者,加密装置100可由密钥生成装置10的拥有者和密钥处理装置200的拥有者所拥有。
密钥处理装置200使用从加密装置100发送来的经加密的信息来生成用于生成同时通信所需的会话密钥的信息。另外,密钥处理装置200经由通信网络3将所生成的信息发送到加密装置100和参与同时通信的其他密钥处理装置200。密钥处理装置200可由任何第三方拥有。或者,密钥处理装置200可由密钥生成装置10的拥有者和加密装置100的拥有者所拥有。
加密装置100和密钥处理装置200中的每一个可以是诸如个人计算机(PC)之类的计算机设备(其可以是笔记本型的或桌面型的)。或者,加密装置100和密钥处理装置200中的每一个可以是任何装置,只要其具有通过网络进行通信的功能即可。这些装置的示例包括诸如PDA(个人数字助理)、家庭游戏机、DVD/HDD记录器和电视接收机之类的信息设备以及用于电视广播的调谐器和记录器。这些装置的示例还包括可由订户携带的便携设备,例如便携游戏机、便携电话、便携视频/音频播放器、PDA和PHS。
在图1中,只示出了三个加密装置100和三个密钥处理装置200。然而,在根据本实施例的密钥共享系统1中,装置的数目并不限于图1所示的示例。
<密钥生成装置的配置>
随后,将参考图2来详细说明根据本实施例的密钥生成装置10的配置。图2是示出根据本实施例的密钥生成装置的功能的框图。
例如,如图2所示,根据本实施例的密钥生成装置10主要包括成员信息管理单元11、参数选择单元13、公开信息生成单元15、密钥生成单元17、信息提供单元23、通信控制单元25以及存储单元27。
成员信息管理单元11例如是用CPU(中央处理单元)、ROM(只读存储器)、RAM(随机访问存储器)等等实现的。成员信息管理单元11管理关于根据本实施例的密钥生成装置10为其生成个人密钥的成员的信息,其中成员的个人密钥包括公共密钥和私用密钥。例如,成员信息被记录到下文中说明的存储单元27。
参数选择单元13例如是用CPU、ROM、RAM等等实现的。参数选择单元13根据预定的方法选择阶数q、阶数为q的两个群G1、G2以及双线性映射e。随后,参数选择单元13选择参数P∈RG1和参数s∈RZq *,并且使用这些参数来计算Ppub=sP。此参数P也被称为随机生成元。另一方面,参数s被秘密地保存作为主私用密钥。
随后,参数选择单元13选择四种散列函数,即H1、HA、HB、HC。这些散列函数分别具有以下特征。
H:{0,1}*→G1
HA:G2→{0,1}|q|
HB:{0,1}|q|→Zq *
HC:G1→{0,1}|q|
在此情况下,表达式{0,1}|q|指的是由0或1构成的q比特大小的数据。通过根据本实施例的密钥共享系统1中所需的安全级别适当地改变q的大小,可以改变安全级别。
参数选择单元13将这些参数作为系统参数记录到存储单元27。另外,这些选择的参数被发送到公开信息生成单元15和密钥生成单元17。
公开信息生成单元15例如是用CPU、ROM、RAM等等实现的。公开信息生成单元15从参数选择单元13选择的各种参数和散列函数之中选择可作为公开信息(公开的系统参数)公开的那些,并且采用它们作为公开信息。更具体而言,公开信息生成单元15生成<e,G1,G2,q,P,Ppub,H,HA,HB,HC>的组合作为公开信息,并且将公开信息存储到存储单元27。
密钥生成单元17例如是用CPU、ROM、RAM等等实现的。当使用根据本实施例的密钥共享系统1的成员请求密钥生成单元17生成成员的包括公共密钥和私用密钥的个人密钥时,密钥生成单元17生成个人密钥。当密钥生成单元17生成个人密钥时,密钥生成单元17从成员信息管理单元11获得做出请求的成员的ID(例如用户ID和邮件地址),并且基于所获得的ID和由参数选择单元13选择的系统参数来生成密钥。例如,如图2所示,密钥生成单元17进一步包括公共密钥生成单元19和私用密钥生成单元21。
公共密钥生成单元19例如是用CPU、ROM、RAM等等实现的。公共密钥生成单元19利用从成员信息管理单元11获得的做出请求的成员的ID(IDi)和用作系统参数的散列函数H,根据以下的式11来生成成员i的公共密钥Qi
公共密钥Qi=H(IDi)…(式11)
公共密钥生成单元19可将所生成的成员Ui的公共密钥Qi与成员Ui的相应成员信息关联起来,并且将所生成的公共密钥Qi和相应成员信息存储到存储单元27。
私用密钥生成单元21例如是用CPU、ROM、RAM等等实现的。私用密钥生成单元21利用主私用密钥s和由公共密钥生成单元19生成的公共密钥Qi,根据以下的式13来生成成员Ui的私用密钥Si
私用密钥Si=sQi…(式13)
私用密钥生成单元21可将所生成的成员Ui的私用密钥Si与成员Ui的相应成员信息关联起来,并且可以将所生成的私用密钥Si和相应的成员信息存储到存储单元27。
从式11可以看出,成员的公共密钥是根据公开信息和成员Ui的ID生成的。在根据本实施例的密钥共享系统1中,成员Ui的ID是诸如用户ID和邮件地址之类的信息。因此,任何用户都可以利用公开信息和成员Ui的ID来计算公共密钥。另一方面,从式13可以看出,成员Ui的私用密钥是利用秘密存储在密钥生成装置10中的主私用密钥来计算的值。因此,只有密钥生成装置10能够生成成员Ui的私用密钥。
信息提供单元23例如是用CPU、ROM、RAM等等实现的。响应于根据本实施例的加密装置100和密钥处理装置200给出的请求,信息提供单元23向这些装置提供诸如公开信息和成员的公共密钥之类的各种信息。当信息提供单元23提供信息时,信息提供单元23可参考存储在存储单元27中的各种数据。
通信控制单元25例如是用CPU、ROM、RAM、通信设备等等实现的。通信控制单元25控制密钥生成装置10与加密装置100或密钥处理装置200之间的通信。
存储单元27存储由成员信息管理单元11管理的成员信息、由参数选择单元13选择的系统参数、由公开信息生成单元15生成的公开信息、由密钥生成单元17生成的个人密钥,等等。存储单元27可存储例如在根据本实施例的密钥生成装置10执行特定处理期间需要存储的各种参数或处理进度,并且可根据需要存储各种数据库等等。存储单元27可被成员信息管理单元11、参数选择单元13、公开信息生成单元15、密钥生成单元17、信息提供单元23、通信控制单元25等等自由地读写。
以上已经说明了根据本实施例的密钥生成装置10的功能的示例。上述构成元件中的每一个可利用通用构件和电路来构造,或者可利用专用于每个构成元件的功能的硬件来构造。或者,每个构成元件的功能可由CPU等等来实现。因此,可按照实现本实施例时的技术水平来根据需要改变所使用的配置。
可以制作用于实现上述根据本实施例的密钥生成装置的功能的计算机程序,并且该计算机程序可实现在个人计算机等等上。另外,可以提供存储这种计算机程序的计算机可读记录介质。记录介质的示例包括磁盘、光盘、磁光盘和闪存。另外,上述计算机程序例如可通过网络来分发,而不使用记录介质。
<加密装置的配置>
随后,将参考图3来详细说明根据本实施例的加密装置100的配置。图3是示出根据本实施例的加密装置的配置的框图。
根据本实施例的加密装置100是由启动用于生成在同时通信中使用的会话密钥的处理的发起者所操作的装置。在以下说明中,假定加密装置100由成员U1拥有。例如,如图3所示,根据本实施例的加密装置100主要包括个人密钥获得单元101、群组密钥生成单元103、通信控制单元117和存储单元119。
个人密钥获得单元101例如是用CPU、ROM、RAM等等实现的。个人密钥获得单元101经由下文中说明的通信控制单元117从密钥生成装置10获得预先分派给使用加密装置100的成员的个人密钥(即公共密钥和私用密钥)。另外,当个人密钥获得单元101获得个人密钥时,个人密钥获得单元101还可从密钥生成装置10获得公开信息(公开的系统参数)。例如,个人密钥获得单元101可将这样获得的个人密钥和公开信息存储到下文中说明的存储单元119。
群组密钥生成单元103例如是用CPU、ROM、RAM等等实现的。群组密钥生成单元103以及密钥处理装置200通过使用存储在加密装置100中的个人密钥、执行同时通信的成员的公共密钥、公开信息以及从密钥处理装置200获得的信息来生成用于同时通信的群组密钥。例如,如图3所示,群组密钥生成单元103进一步包括参数选择单元105、成员信息生成单元107以及会话信息生成单元109。此外,群组密钥生成单元103还包括会话信息获得单元111、成员验证单元113以及会话密钥生成单元115。
参数选择单元105例如是用CPU、ROM、RAM等等实现的。参数选择单元105选择参数δ∈RZq *和参数k1RZq *以及在同时通信中用作临时密钥的具有预定比特数的参数r。参数选择单元105将所选择的参数发送到成员信息生成单元107和会话信息生成单元109。
参数选择单元105可将所选择的参数与例如表示做出选择的日期/时间的信息关联起来,并且将所选择的参数、表示日期/时间的信息与历史信息等等一起存储到下文中说明的存储单元119等等。
成员信息生成单元107例如是用CPU、ROM、RAM等等实现的。成员信息生成单元107利用参与同时通信的成员Ui(i=2,…,n)的公共密钥Qi、存储在加密装置100中的私用密钥S1、由参数选择单元105选择的临时密钥r以及公开信息,来生成如以下的式101所示的成员信息Pi。为n-1个参与成员中的每一个生成成员信息Pi
[数学式32]
Pi=r⊕HA(e(S1,δQi))…(式101)
在此情况下,在式101中,HA表示公开的散列函数之一,并且i表示从2到n的整数。
另外,成员信息生成单元107还生成表示成员信息P2至Pn的排列顺序的信息L,以便表明所生成的成员信息P2至Pn与参与同时通信的相应n-1个成员之间的对应关系。为了简明起见,假定信息L是根据一定的规则来生成的,其中无论n个成员中的哪一个生成信息L,都获得相同的数据。
成员信息生成单元107将所生成的成员信息Pi和表示成员信息与成员之间的对应关系的信息L发送到会话信息生成单元109。
成员信息生成单元107可将所生成的成员信息等等与表示例如生成成员信息的日期/时间的信息关联起来,并且将所生成的成员信息、表示日期/时间的信息与历史信息等等一起存储到下文中说明的存储单元119等等。
会话信息生成单元109例如是用CPU、ROM、RAM等等实现的。会话信息生成单元109基于从参数选择单元105发送来的各种参数、从成员信息生成单元107发送来的成员信息Pi和关于对应关系的信息L、以及公开信息,来生成成员U1的会话信息D1。更具体而言,首先,会话信息生成单元109计算由以下的式102表示的值X1和由以下的式103表示的值Y1。然后,会话信息生成单元109利用计算出的值等等来生成由以下的式104表示的会话信息D1。此会话信息标识在加密装置100与多个密钥处理装置200之间执行的同时通信,并且是用于在同时通信中生成会话密钥的信息。
[数学式33]
X1=HB(r‖L)·k1P…(式102)
Y1=k1Ppub+HB(r‖L)·S1…(式103)
D1=<δ,P2,…Pn,X1,Y1,L>…(式104)
在式102和103中,表达式“a‖b”表示数据“a”的比特与数据“b”的比特的组合。在式102和103中,HB表示公开的散列函数之一。
如式103中所示,根据本实施例的会话信息生成单元109利用成员U1的私用密钥S1来生成会话信息。除了成员U1以外的成员即使在尝试生成假装为成员U1的会话信息的会话信息时也无法生成会话信息D1
会话信息生成单元109经由通信控制单元117将所生成的会话信息D1广播到成员U2至成员Un所拥有的密钥处理装置200。另外,会话信息生成单元109将所生成的会话信息D1发送到成员验证单元113。会话信息生成单元109将所生成的会话信息D1与例如表示生成会话信息D1的日期/时间的信息关联起来,并且将所生成的会话信息D1、表示日期/时间的信息与历史信息等等一起存储到下文中说明的存储单元119等等。
会话信息获得单元111例如是用CPU、ROM、RAM等等实现的。会话信息获得单元111经由通信控制单元117获得从所有密钥处理装置200发送来的会话信息Di。会话信息Di由以下的式201表示。
[数学式34]
Di=<Xi,Yi>
=<HB(r‖L)·kiP,kiPpub+HB(r‖L)·Si>…(式201)
会话信息获得单元111将所有获得的会话信息Di发送到下文中说明的成员验证单元113。另外,会话信息获得单元111可将所获得的会话信息Di与例如表示获得会话信息Di的日期/时间的信息关联起来,并且将会话信息Di、表示日期/时间的信息与历史信息等等一起存储到下文中说明的存储单元119等等。
成员验证单元113例如是用CPU、ROM、RAM等等实现的。成员验证单元113判定参与同时通信的成员是否是有效成员。更具体而言,成员验证单元113基于成员U1拥有的会话信息D1和从所有密钥处理装置200获得的会话信息Di来计算由以下的式105表示的验证参数z。随后,成员验证单元113计算以下的式106的左侧和右侧的值,并且判定式106是否成立,以验证参与同时通信的成员的有效性。当判定式106成立时,成员验证单元113判定执行同时通信的成员仅由有效成员构成,并且请求下文中说明的会话密钥生成单元115生成会话密钥。当判定式106不成立时,成员验证单元113判定某些发送了会话信息Di的成员是无效的,并且相应地不生成会话密钥。
[数学式35]
z = H B ( r | | L ) - 1 &CenterDot; &Sigma; j = 1 n X j = &Sigma; j = 1 n k j P …(式105)
e ( P , &Sigma; j = 1 n Y j ) = e ( P pub , z + H B ( r | | L ) &CenterDot; &Sigma; j = 1 n Q j ) …(式106)
与基本技术不同,当根据本实施例的成员验证单元113计算验证参数z时,成员验证单元113针对所有的会话信息Di(i=1,…,n)计算Xi亦即会话信息的一部分的总和。因此,当根据本实施例的加密装置100计算下文中说明的会话密钥时,与基本技术相比,加密装置100可以大大减少群组中的乘法数目,而乘法会产生大量的计算负担。与基本技术不同,根据本实施例的成员验证单元113利用每个成员的公共密钥Qi来执行验证。为了生成能够通过此验证的会话信息,每个成员需要使用每个成员的私用密钥Si,另一个成员Uj不可能假装为成员Ui。因此,这防止了上述与基本技术相关联的问题。
当成员验证单元113成功地完成对成员的验证时,成员验证单元113将表明成功验证的结果和计算出的验证参数z发送到会话密钥生成单元115。另外,成员验证单元113可将计算出验证参数z与例如表示计算验证参数z的日期/时间的信息关联起来,并且将计算出的验证参数z、表示日期/时间的信息与历史信息等等一起存储到下文中说明的存储单元119等等。
会话密钥生成单元115例如是用CPU、ROM、RAM等等实现的。在成员验证单元113成功验证了参与同时通信的成员的情况下,会话密钥生成单元115使用从成员验证单元113发送来的验证参数z来生成在同时通信中使用的会话密钥K。会话密钥K是利用以下的式107生成的。在此情况下,在以下的式107中,HC表示公开的散列函数之一。
[数学式36]
K=Ki=HC(z)…(式107)
通过使用这样生成的会话密钥K,加密装置100和多个密钥处理装置200可安全地执行同时通信。
会话密钥生成单元115可将所生成的会话密钥K与例如表示生成会话密钥K的日期/时间的信息关联起来,并且将会话密钥K、表示日期/时间的信息与历史信息等等一起存储到下文中说明的存储单元119等等。
通信控制单元117例如是用CPU、ROM、RAM、通信设备等等实现的。通信控制单元117控制加密装置100与密钥生成装置10或密钥处理装置200之间的通信。
存储单元119存储由密钥生成装置10公开的公开信息、从密钥生成装置10获得的包括公共密钥和私用密钥的个人密钥,等等。存储单元119可存储例如在根据本实施例的加密装置100执行特定处理期间需要存储的各种参数或处理进度,并且可根据需要存储各种数据库等等。存储单元119可被个人密钥获得单元101、群组密钥生成单元103、群组密钥生成单元103中包括的每个处理单元以及通信控制单元117等等自由地读写。
以上已经说明了根据本实施例的加密装置100的功能的示例。上述构成元件中的每一个可利用通用构件和电路来构造,或者可利用专用于每个构成元件的功能的硬件来构造。或者,每个构成元件的功能可由CPU等等来实现。因此,可按照实现本实施例时的技术水平来根据需要改变所使用的配置。
可以制作用于实现上述根据本实施例的加密装置的功能的计算机程序,并且该计算机程序可实现在个人计算机等等上。另外,可以提供存储这种计算机程序的计算机可读记录介质。记录介质的示例包括磁盘、光盘、磁光盘和闪存。另外,上述计算机程序例如可通过网络来分发,而不使用记录介质。
<密钥处理装置的配置>
随后,将参考图4来详细说明根据本实施例的密钥处理装置200的配置。图4是示出根据本实施例的密钥处理装置的功能的框图。
根据本实施例的密钥处理装置200是由除了加密装置100的用户(成员U1)(即同时通信的发起者)以外的成员Ui(i=2,…,n)使用的装置。例如,如图4所示,根据本实施例的密钥处理装置200主要包括个人密钥获得单元201、群组密钥生成单元203、通信控制单元217和存储单元219。
个人密钥获得单元201例如是用CPU、ROM、RAM等等实现的。个人密钥获得单元201经由下文中说明的通信控制单元217从密钥生成装置10获得预先分派给使用密钥处理装置200的成员的个人密钥(即公共密钥和私用密钥)。另外,当个人密钥获得单元201获得个人密钥时,个人密钥获得单元201还可从密钥生成装置10获得公开信息(公开的系统参数)。例如,个人密钥获得单元201可将这样获得的个人密钥和公开信息存储到下文中说明的存储单元219。
群组密钥生成单元203例如是用CPU、ROM、RAM等等实现的。群组密钥生成单元203以及上述装置通过使用存储在密钥处理装置200中的个人密钥、执行同时通信的成员的公共密钥、公开信息以及从加密装置100和其他密钥处理装置200获得的信息来生成用于同时通信的群组密钥。例如,如图4所示,群组密钥生成单元203进一步包括会话信息获得单元205、临时密钥计算单元207、参数选择单元209、会话信息生成单元211、成员验证单元213以及会话密钥生成单元215。
会话信息获得单元205例如是用CPU、ROM、RAM等等实现的。会话信息获得单元205获得从加密装置100发送来的会话信息D1以及与从加密装置100发送来的会话信息D1不同的、从参与同时通信的其他密钥处理装置200发送来的会话信息Di。更具体而言,会话信息获得单元205经由下文中说明的通信控制单元217获得从加密装置100(即发起者)发送来的由以下的式104表示的会话信息D1。类似地,会话信息获得单元205获得从参与同时通信的其他密钥处理装置200发送来的由以下的式201表示的会话信息Di
[数学式37]
D1=<δ,P2,…Pn,X1,Y1,L>
=<δ,P2,…Pn,HB(r‖L)·k1P,k1Ppub+HB(r‖L)·S1,L>
…(式104)
Di=<Xi,Yi>
=<HB(r‖L)·kiP,kiPpub+HB(r‖L)·Si>
…(式201)
会话信息获得单元205把从加密装置100接收到的会话信息D1发送到下文中说明的临时密钥计算单元207和会话信息生成单元211。另外,会话信息获得单元205把从其他密钥处理装置200接收到的会话信息Di发送到下文中说明的成员验证单元213。另外,会话信息获得单元205可将所获得的会话信息与例如表示获得会话信息的日期/时间的信息关联起来,并且将会话信息、表示日期/时间的信息与历史信息等等一起存储到下文中说明的存储单元219等等。
临时密钥计算单元207例如是用CPU、ROM、RAM等等实现的。临时密钥计算单元207基于从会话信息获得单元205发送来的会话信息D1,计算在同时通信中临时使用的临时密钥。首先,临时密钥计算单元207参考会话信息D1中包括的关于成员信息Pi的对应关系的信息L,并且检测与密钥处理装置200相对应的成员信息Pi。随后,临时密钥计算单元207利用与密钥处理装置200相对应的成员信息Pi、密钥处理装置200的个人密钥、使用加密装置100的成员U1的公共密钥以及公开信息,根据以下的式202来计算临时密钥r’。在此情况下,在以下的式202中,HA表示公开的散列函数之一。
[数学式38]
r′=HA(e(Si,δQ1))⊕Pi=r…(式202)
在此情况下,当成员U1正确地生成了会话信息D1时,成员Ui所拥有的密钥处理装置200计算出的临时密钥r’与成员U1所拥有的加密装置选择的临时密钥r相同。换言之,在式202中,右侧的等号成立,结果r’=r成立。
临时密钥计算单元207将计算出的临时密钥r’发送到下文中说明的会话信息生成单元211。在以下说明中,假定r’=r成立。因此,r’被表示为r。另外,临时密钥计算单元207可将计算出的临时密钥与例如表示计算临时密钥的日期/时间的信息关联起来,并且将临时密钥、表示日期/时间的信息与历史信息等等一起存储到下文中说明的存储单元219等等。
参数选择单元209例如是用CPU、ROM、RAM等等实现的。参数选择单元209选择在密钥处理装置200计算会话信息Di时使用的参数kiRZq *。参数选择单元209将所选择的参数ki发送到会话信息生成单元211。
另外,会话信息生成单元211可将所选择的参数例如表示选择参数的日期/时间的信息关联起来,并且将参数、表示日期/时间的信息与历史信息等等一起存储到下文中说明的存储单元219等等。
会话信息生成单元211例如是用CPU、ROM、RAM等等实现的。会话信息生成单元211利用参数ki、存储在密钥处理装置200中的成员Ui的私用密钥、公开信息以及从加密装置100发送来的会话信息D1,根据式201来生成会话信息Di。所生成的会话信息Di经由通信控制单元217被广播到加密装置100和执行同时通信的其他密钥处理装置200。
[数学式39]
Di=<Xi,Yi>
=<HB(r‖L)·kiP,kiPpub+HB(r‖L)·Si>
…(式201)
如式201中所示,根据本实施例的会话信息生成单元211利用成员Ui的私用密钥Si来生成会话信息。因此,除了有私用密钥Si的成员Ui以外的成员即使在尝试生成假装为成员Ui的会话信息的会话信息时也无法生成会话信息Di
成员验证单元213例如是用CPU、ROM、RAM等等实现的。成员验证单元213判定参与同时通信的成员是否是有效成员。更具体而言,首先,成员验证单元213基于由密钥处理装置200生成的会话信息Di、从加密装置100获得的会话信息D1以及从其他密钥处理装置200获得的会话信息Di来计算出由以下的式203表示的验证参数z。随后,成员验证单元213计算以下的式204的左侧和右侧的值,并且判定式204是否成立,以验证参与同时通信的成员的有效性。当判定式204成立时,成员验证单元213判定执行同时通信的成员仅由有效成员构成,并且请求下文中说明的会话密钥生成单元215生成会话密钥。当判定式204不成立时,成员验证单元213判定某些发送了会话信息Di的成员是无效的,并且相应地不生成会话密钥。
[数学式40]
z = H B ( r | | L ) - 1 &CenterDot; &Sigma; j = 1 n X j = &Sigma; j = 1 n k j P …(式203)
e ( P , &Sigma; j = 1 n Y j ) = e ( P pub , z + H B ( r | | L ) &CenterDot; &Sigma; j = 1 n Q j ) …(式204)
与基本技术不同,当根据本实施例的成员验证单元213计算验证参数z时,成员验证单元213针对所有的会话信息Di(i=1,…,n)计算Xi亦即会话信息的一部分的总和。因此,当根据本实施例的密钥处理装置200计算下文中说明的会话密钥时,与基本技术相比,密钥处理装置200可以大大减少群组中的乘法数目,而乘法会产生大量的计算负担。与基本技术不同,根据本实施例的成员验证单元213利用每个成员的公共密钥Qi来执行验证。为了生成能够通过此验证的会话信息,每个成员需要使用每个成员的私用密钥Si,另一个成员Uj不可能假装为成员Ui。因此,这防止了上述与基本技术相关联的问题。
当成员验证单元213成功地完成对成员的验证时,成员验证单元213将表明成功验证的结果和计算出的验证参数z发送到会话密钥生成单元215。另外,成员验证单元213可将计算出验证参数z与例如表示计算验证参数z的日期/时间的信息关联起来,并且将计算出的验证参数z、表示日期/时间的信息与历史信息等等一起存储到下文中说明的存储单元219等等。
会话密钥生成单元215例如是用CPU、ROM、RAM等等实现的。在成员验证单元213成功验证了参与同时通信的成员的情况下,会话密钥生成单元215使用从成员验证单元213发送来的验证参数z来生成在同时通信中使用的会话密钥Ki。会话密钥Ki是利用以下的式205生成的。在此情况下,在以下的式205中,HC表示公开的散列函数之一。
[数学式41]
K=Ki=HC(z)…(式205)
通过使用这样生成的会话密钥Ki,密钥处理装置200和加密装置100可以安全地执行同时通信。
另外,会话密钥生成单元215可将所生成的会话密钥K与例如表示生成会话密钥K的日期/时间的信息关联起来,并且将会话密钥K、表示日期/时间的信息与历史信息等等一起存储到下文中说明的存储单元219等等。
通信控制单元217例如是用CPU、ROM、RAM、通信设备等等实现的。通信控制单元217控制密钥处理装置200与密钥生成装置10或加密装置100之间的通信。另外,通信控制单元217还控制密钥处理装置200与其他密钥处理装置200之间的通信。
存储单元219存储由密钥生成装置10公开的公开信息、从密钥生成装置10获得的包括公共密钥和私用密钥的个人密钥,等等。存储单元219可存储例如在根据本实施例的密钥处理装置200执行特定处理期间需要存储的各种参数或处理进度,并且可根据需要存储各种数据库等等。存储单元219可被个人密钥获得单元201、群组密钥生成单元203、群组密钥生成单元203中包括的每个处理单元以及通信控制单元217等等自由地读写。
以上已经说明了根据本实施例的密钥处理装置200的功能的示例。上述构成元件中的每一个可利用通用构件和电路来构造,或者可利用专用于每个构成元件的功能的硬件来构造。或者,每个构成元件的功能可由CPU等等来实现。因此,可按照实现本实施例时的技术水平来根据需要改变所使用的配置。
可以制作用于实现上述根据本实施例的密钥处理装置的功能的计算机程序,并且该计算机程序可实现在个人计算机等等上。另外,可以提供存储这种计算机程序的计算机可读记录介质。记录介质的示例包括磁盘、光盘、磁光盘和闪存。另外,上述计算机程序例如可通过网络来分发,而不使用记录介质。
应当注意,加密装置100也可具有密钥处理装置200的功能。或者,密钥处理装置200也可具有加密装置100的功能。在特定的同时通信中,密钥处理装置200也可充当发起者(即加密装置100)来启动根据本实施例的协议。或者,在特定的同时通信中,加密装置100也可充当被另一参与成员用来执行密钥处理装置200的功能的装置。
<密钥生成处理>
在根据本实施例的密钥共享系统1中,中心所拥有的密钥生成装置10生成此方法的各种系统参数(即公开信息)以及每个成员的个人密钥(即包括公共密钥和私用密钥的用户密钥)。下面将参考图5详细说明根据本实施例的密钥生成装置10执行的密钥生成处理。
首先,密钥生成装置10的参数选择单元13根据预定的方法选择阶数q、阶数为q的两个群G1、G2以及双线性映射e(步骤S11)。
随后,参数选择单元13选择参数P∈RG1和参数s∈RZq *(步骤S13),并且使用这些参数来计算Ppub=sP。此参数P也可被称为随机生成元。另一方面,参数s被秘密地保存作为主私用密钥。
随后,参数选择单元13选择四种散列函数,即H、HA、HB、HC(步骤S15)。这些散列函数分别具有以下特征。
H:{0,1}*→G1
HA:G2→{0,1}|q|
HB:{0,1}|q|→Zq *
HC:G1→{0,1}|q|
随后,公开信息生成单元15把在上述步骤中生成的各种设定值之中允许公开的某些作为系统参数(公开信息)公开(步骤S17)。例如,公开的系统参数包括<e,G1,G2,q,P,Ppub,H,HA,HB,HC>。
随后,当具有诸如用户ID号和邮件地址之类的用于区分用户的ID(IDi)的成员Ui参与此密钥共享系统1时,密钥生成单元17根据以下的方法来生成用户Ui的公共密钥Qi和私用密钥Si(步骤S19)。
更具体而言,首先,公共密钥生成单元19利用散列函数H(即系统参数)和从成员信息管理单元11获得的做出请求的成员的ID(IDi)来生成成员Ui的公共密钥Qi
公共密钥Qi=H(IDi)
随后,私用密钥生成单元21通过使用由公共密钥生成单元19生成的公共密钥Qi和主私用密钥s来生成成员Ui的私用密钥Si
私用密钥Si=sQi
密钥生成装置10将所生成的用户Ui的个人密钥(即公共密钥Qi和私用密钥Si)发送到相应的成员Ui。另外,密钥生成装置10还可公开所生成的用户Ui的公共密钥Qi
当装置尝试利用根据本实施例的密钥共享系统来执行同时通信时,装置使用这样公开的系统参数以及成员的公共密钥和私用密钥来根据以下方法生成并共享用于同时通信的会话密钥。
<用于生成会话密钥的方法>
随后,将参考图6和7来详细说明用于生成会话密钥的方法,其中包括根据本实施例的加密装置100执行的加密方法和密钥处理装置200执行的密钥处理方法。图6和7是示出根据本实施例的会话密钥生成处理的流程图。
根据本实施例的用于生成会话密钥的方法包括三个处理,即主要由加密装置100执行的处理、主要由密钥处理装置200执行的处理以及加密装置100和密钥处理装置200分别执行的用于生成会话密钥的处理。在以下说明中,主要由加密装置执行的处理也被称为第1轮。另一方面,主要由密钥处理装置200执行的处理也被称为第2轮。
在以下说明中,假定一个加密装置100和n-1个密钥处理装置200尝试在其间实现同时通信。在根据本实施例的方法中,n个成员U1,U2,…,Un中的任何一个是协议发起者(以下也可称之为发起者)。在以下说明中,为了简明起见,假定成员U1是发起者。
[第1轮]
首先,充当发起者的成员U1所拥有的加密装置100的参数选择单元105选择参数δ∈RG2和参数k1RZq *,即用于共享会话密钥的参数(步骤S101)。成员U1所拥有的信息处理装置还选择参数rR{0,1}|q|(步骤S101)。此参数r是作为用于在同时通信中共享会话密钥的一个手续而被选择的。
随后,加密装置100的成员信息生成单元107针对参与同时通信的成员U2至Un生成成员信息Pi(i=2,…,n),即用于向参与同时通信的装置发送被用作临时密钥的参数的信息(步骤S103)。此成员信息Pi是由式101表示的值。另外,当成员信息生成单元107生成成员信息Pi时,成员信息生成单元107生成表示成员信息与成员之间的对应关系的信息L。
随后,会话信息生成单元109使用公开信息、所选择的参数以及成员U1的私用密钥来计算如式102和103所示的值X1、Y1。当对X1、Y1的计算完成时,会话信息生成单元109生成由式104表示的会话信息D1(步骤S105)。
当已生成会话信息D1时,会话信息生成单元109经由通信控制单元117向所有密钥处理装置200广播所生成的会话信息D1(步骤S107)。
[第2轮]
在成员U2至Un所拥有的密钥处理装置200中的每一个的会话信息获得单元205接收到会话信息D1后,会话信息获得单元205将所获得的会话信息D1传送到临时密钥计算单元207。临时密钥计算单元207首先参考会话信息D1中包括的信息L,并且判定本密钥处理装置200的成员信息对应于P2至Pn中的哪一个(步骤S109)。
随后,临时密钥计算单元207利用本密钥处理装置200的成员信息Pi、会话信息D1、成员U1(即发起者)的公共密钥Q1以及本密钥处理装置200的私用密钥Si来根据式202计算临时密钥r’(步骤S111)。
在此情况下,当成员U1正确地生成了会话信息D1时,成员U2至Un所拥有的密钥处理装置200所计算出的临时密钥r’等于成员U1所拥有的加密装置100所选择的临时密钥r。换言之,r’=r成立。
随后,参数选择单元209选择参数kiRZq *(步骤S113)。然后,会话信息生成单元211利用参数ki、临时密钥r’、公开信息以及密钥处理装置200的私用密钥Si来生成被发送到加密装置100和其他成员Ui拥有的密钥处理装置200的会话信息Di(步骤S115)。应当注意,会话信息Di是基于以上说明的式201来生成的。
当已生成了会话信息Di时,成员U2至Un所拥有的密钥处理装置200中的每一个的会话信息生成单元211将所生成的会话信息Di广播到除密钥处理装置200以外的其他装置(步骤S117)。结果,所生成的会话信息Di被发送到加密装置100和所有其他密钥处理装置200。
[会话密钥的生成]
加密装置100的会话信息获得单元111获得从成员U2至Un所拥有的密钥处理装置200发送来的所有会话信息Di。结果,加密装置100获得总共n个会话信息,即会话信息D1至Dn,其中包括加密装置100生成的会话信息D1。加密装置100的成员验证单元113使用会话信息D1至Dn和公开信息来计算如式105中所示的验证参数z(步骤S119)。
类似地,成员U2至Un所拥有的密钥处理装置200中的每一个获得总共n个会话信息,即会话信息D1至Dn,其中包括会话信息D1和从除成员U1外的成员U2至Un所拥有的密钥处理装置200获得的会话信息Di。成员U2至Un所拥有的密钥处理装置200中的每一个的成员验证单元213使用会话信息D1至Dn和公开信息来根据式203计算验证参数z(步骤S121)。
随后,加密装置100的成员验证单元113利用计算出的验证参数z执行计算以判定以上说明的式106是否成立(步骤S123)。类似地,成员U2至Un所拥有的密钥处理装置200中的每一个的成员验证单元213利用计算出的验证参数z执行计算以判定以上说明的式204是否成立(步骤S125)。当判定式106成立时,加密装置100判定参与确立会话密钥K的n个成员都是有效的成员。类似地,当判定式204成立时,每个密钥处理装置200判定参与确立会话密钥Ki的n个成员全都是有效的成员。换言之,判定式106和204是否成立的步骤S123和步骤S125是用于验证成员的有效性的步骤。
仅当式106成立时,成员U1所拥有的加密装置100的会话密钥生成单元115才根据以上说明的式107计算会话密钥K(步骤S127)。类似地,仅当式204成立时,成员U2至Un所拥有的密钥处理装置200中的每一个的会话密钥生成单元215才根据以上说明的式205计算会话密钥K(步骤S129)。
根据以上过程,装置可以共享在同时通信中使用的会话密钥K,从而多个参与者可以开始同时通信(步骤S131)。
如上所述,在根据本实施例的用于生成会话密钥的方法中,从每个成员发送的会话信息包括依赖于该成员特有的私用密钥的值。当每个装置验证成员时,每个装置利用成员的公共密钥来验证会话信息。即使成员Ui不参与协议,其他成员也可以获得临时密钥r的值,但不能获得成员Ui的私用密钥Si。因此,在根据本实施例的用于生成会话密钥的方法中,其他成员无法像基本技术中记载的方法那样生成能够通过使用Ui的公共密钥的验证的会话信息。结果,这防止了来自成员的攻击,提高了安全性。
在根据本实施例的用于生成会话密钥的方法中,使用成员Ui的私用密钥Si的值(即,如式103中所示的值Yi)作为成员Ui发送的值被生成。因此,可以利用成员Ui的公共密钥Qi来验证成员。此时,要验证的值不仅包括kiPpub而且包括H2(r‖L)。换言之,当成员中的任何一个使用不同于其他成员的值作为值r时,上述验证中使用的表达式不成立。这使得参与同时通信的成员能够认识到没有成功共享会话密钥。如上所述,根据本实施例的用于生成会话密钥的方法不仅防止了成员的欺骗,而且还防止了阻止特定成员参与同时通信。
<用于生成会话密钥的方法中的计算量>
随后,将参考图8来考虑根据本实施例的用于生成会话密钥的方法中的计算量。图8是示出根据本实施例的会话密钥生成处理的说明图。
在图8中,在计算量等方面比较根据本实施例的用于生成会话密钥的方法和非专利文献2中记载的方法(即基本技术)。在图8中,“M大小”表示消息的量。“G1-Mul”表示群G1中的乘法的数目。“G2-Mul”表示群G2中的乘法的数目。在图中,“n”表示成员的数目。在图中,“U1”表示发起者的计算量。“Ui(每个)”表示除发起者以外的n-1个用户的每一个中所需的计算量。在图中,“总计”表示所有n个成员的总计算量。
从图8可以看出,根据本实施例的方法和非专利文献2中记载的方法在涉及轮数、消息量和配对数的负担方面是相同的。另一方面,非专利文献2中记载的方法在群G1中需要总共n2+2n+1个乘法,而根据本实施例的方法在群G1中只需要8n-2个乘法。这意味着,在非专利文献2中记载的方法中,计算量与成员数目n的平方成比例,而在根据本实施例的方法中,计算量与成员数目n成比例。因此,成员数目n越大,在根据本实施例的方法中对计算负担的抑制就越强。类似地,非专利文献2中记载的方法在群G2中需要总共2n-2个乘法,而根据本实施例的方法在群G2中不需乘法。因此,同样可以减小计算负担。
(第二实施例)
随后,将参考图9至11来详细说明根据本发明第二实施例的密钥共享系统。图9是示出根据本实施例的加密装置100的配置的框图。图10是示出根据本实施例的密钥处理装置200的配置的框图。图11是示出根据本实施例的会话密钥生成处理的流程图。
与非专利文献3中记载的方法类似,假定根据本实施例的密钥共享系统使得系统中的密钥生成装置10生成各种系统参数和成员的个人密钥。因此,密钥生成装置10公开包括散列函数、公共密钥加密方法的加密函数E和解密函数D、数字签名方法的签名生成函数S和签名验证函数V在内的系统参数。认为用户Ui所拥有的装置中的每一个存储用户Ui的公开加密密钥ei、秘密解密密钥di、秘密签名生成密钥si以及公开签名验证密钥vi,并且公开加密密钥ei和公开签名验证密钥vi被成员Ui共享。
<加密装置的配置>
首先,将参考图9来详细说明根据本实施例的加密装置100的配置。
根据本实施例的加密装置100是由启动用于生成在同时通信中使用的会话密钥的处理的发起者所操作的装置。在以下说明中,假定加密装置100由成员U1拥有。例如,如图9所示,根据本实施例的加密装置100主要包括个人密钥获得单元101、群组密钥生成单元103、通信控制单元117和存储单元119。
在此情况下,根据本实施例的个人密钥获得单元101、通信控制单元117和存储单元119具有与根据本发明第一实施例的处理单元相同的配置并且实现相同的效果。因此,在以下说明中,省略详细描述。
群组密钥生成单元103例如是用CPU、ROM、RAM等等实现的。群组密钥生成单元103以及密钥处理装置200通过使用存储在加密装置100中的个人密钥、执行同时通信的成员的公共密钥、公开信息以及从密钥处理装置200获得的信息来生成用于同时通信的群组密钥。例如,如图9所示,群组密钥生成单元103进一步包括参数选择单元121、成员信息生成单元123以及会话信息生成单元125。此外,群组密钥生成单元103还包括会话信息获得单元127以及会话密钥生成单元129。
参数选择单元121例如是用CPU、ROM、RAM等等实现的。参数选择单元121选择在同时通信中用作临时密钥的具有预定比特数目的参数N1。参数选择单元121将所选择的参数发送到会话信息生成单元125。
参数选择单元121可将所选择的参数与例如表示做出选择的日期/时间的信息关联起来,并且将所选择的参数、表示日期/时间的信息与历史信息等等一起存储到存储单元119等等。
成员信息生成单元123例如是用CPU、ROM、RAM等等实现的。成员信息生成单元123生成包括关于参与同时通信的成员Ui(i=2,…,n)的信息的成员信息U。通过参考成员信息U,密钥处理装置200可以识别参与同时通信的成员Ui。成员信息生成单元123将所生成的成员信息U发送到会话信息生成单元125。
成员信息生成单元123可将所生成的成员信息与表示例如生成成员信息的日期/时间的信息关联起来,并且将所生成的成员信息、表示日期/时间的信息与历史信息等等一起存储到存储单元119等等。
会话信息生成单元125例如是用CPU、ROM、RAM等等实现的。会话信息生成单元125基于从参数选择单元121发送来的各种参数、从成员信息生成单元123发送来的成员信息U以及公开信息,来生成附加有签名的会话信息D。
更具体而言,首先,会话信息生成单元125生成由以下的式111表示的消息作为会话信息D。
[数学式42]
D=(E(e2,N1),…,E(en,N1),h(N1))…(式111)
从以上的式111可以看出,会话信息D包括通过利用用户Ui的公开加密密钥ei对由参数选择单元121选择的参数N1加密而获得的集合以及通过利用散列函数h(即公开信息)转换参数N1而获得的散列值。
然后,会话信息生成单元125向所生成的会话信息D附加利用签名生成函数S(即公开信息)和用户U1的秘密签名生成密钥s1由以下的式112表示的签名。
[数学式43]
S(s1,(E(e2,N1),…,E(en,N1),h(N1)))…(式112)
当会话信息生成单元125生成会话信息D和附加到会话信息D的签名时,会话信息生成单元125请求通信控制单元117广播会话信息D、附加到会话信息D的签名和成员信息U。当会话信息生成单元125生成被加密以便被发送到每个成员Ui的参数N1时,会话信息生成单元125请求通信控制单元117发送经加密的参数N1
另外,会话信息生成单元125把用于生成会话信息的参数N1发送到会话密钥生成单元129。应当注意,参数N1可由会话信息生成单元125直接发送到会话密钥生成单元129,或者会话密钥生成单元129可获得临时存储在存储单元119等等中的参数N1
会话信息获得单元127例如是用CPU、ROM、RAM等等实现的。会话信息获得单元127经由通信控制单元117获得从所有密钥处理装置200发送来的会话信息Di。会话信息Di包括用户信息Ui亦即用于标识拥有密钥处理装置200的用户的信息以及由密钥处理装置200选择的参数Ni
会话信息获得单元127将所有获得的会话信息Di发送到会话密钥生成单元129。会话信息获得单元111可将所获得的会话信息Di与例如表示获得会话信息Di的日期/时间的信息关联起来,并且将会话信息Di、表示日期/时间的信息与历史信息等等一起存储到存储单元119等等。
会话密钥生成单元129例如是用CPU、ROM、RAM等等实现的。会话密钥生成单元129使用从会话信息生成单元125发送来的参数N1、从会话信息获得单元127发送来的参数Ni以及公开信息来生成用于同时通信的会话密钥KU
更具体而言,会话密钥生成单元129利用公开的散列函数h和所获得的参数N1至Nn基于以下的式113来生成会话密钥KU
[数学式44]
KU=h(N1‖N2‖…‖Nn)…(式113)
通过使用这样生成的会话密钥KU,加密装置100和多个密钥处理装置200可以安全地执行同时通信。
会话密钥生成单元129可将所生成的会话密钥KU与例如表示生成会话密钥KU的日期/时间的信息关联起来,并且将会话密钥K、表示日期/时间的信息与历史信息等等一起存储到存储单元119等等。
以上已经说明了根据本实施例的加密装置100的功能的示例。上述构成元件中的每一个可利用通用构件和电路来构造,或者可利用专用于每个构成元件的功能的硬件来构造。或者,每个构成元件的功能可由CPU等等来实现。因此,可按照实现本实施例时的技术水平来根据需要改变所使用的配置。
可以制作用于实现上述根据本实施例的加密装置的功能的计算机程序,并且该计算机程序可实现在个人计算机等等上。另外,可以提供存储这种计算机程序的计算机可读记录介质。记录介质的示例包括磁盘、光盘、磁光盘和闪存。另外,上述计算机程序例如可通过网络来分发,而不使用记录介质。
<密钥处理装置的配置>
随后,将参考图10来详细说明根据本实施例的密钥处理装置200的配置。
根据本实施例的密钥处理装置200是由除了加密装置100的用户(成员U1)(即同时通信的发起者)以外的成员Ui(i=2,…,n)使用的装置。例如,如图10所示,根据本实施例的密钥处理装置200主要包括个人密钥获得单元201、群组密钥生成单元203、通信控制单元217和存储单元219。
在此情况下,根据本实施例的个人密钥获得单元201、通信控制单元217和存储单元219具有与根据本发明第一实施例的处理单元相同的配置并且实现相同的效果。因此,在以下说明中,省略对其的详细描述。
群组密钥生成单元203例如是用CPU、ROM、RAM等等实现的。群组密钥生成单元203以及上述装置通过使用存储在密钥处理装置200中的个人密钥、执行同时通信的成员的公共密钥、公开信息以及从加密装置100和其他密钥处理装置200获得的信息来生成用于同时通信的群组密钥。例如,如图10所示,群组密钥生成单元203进一步包括会话信息获得单元221、临时密钥计算单元223、成员验证单元225、会话信息生成单元227、参数选择单元229以及会话密钥生成单元231。
会话信息获得单元221例如是用CPU、ROM、RAM等等实现的。会话信息获得单元221获得从加密装置100发送来的关于会话信息D的各种信息以及与从加密装置100发送来的会话信息D不同的、从参与同时通信的其他密钥处理装置200发送来的会话信息Di。更具体而言,会话信息获得单元221经由通信控制单元217获得从加密装置100发送来的经加密的参数N1和附加有签名的会话信息D。另外,会话信息获得单元221所获得的会话信息Di包括用户信息Ui亦即用于标识拥有另一密钥处理装置200的用户的信息以及由密钥处理装置200选择的参数Ni
当会话信息获得单元221接收到经加密的参数N1时,会话信息获得单元221把经加密的参数N1发送到临时密钥计算单元223。另外,会话信息获得单元221向成员验证单元225发送从加密装置100广播来的附加有签名的会话信息D。
当会话信息获得单元221获得从每个其他密钥处理装置200广播来的会话信息Di时,会话信息获得单元221将所获得的每个会话信息Di发送到会话密钥生成单元231。
会话信息获得单元221可将所获得的会话信息与例如表示获得会话信息的日期/时间的信息关联起来,并且将会话信息、表示日期/时间的信息与历史信息等等一起存储到存储单元219等等。
临时密钥计算单元223例如是用CPU、ROM、RAM等等实现的。当临时密钥计算单元223从会话信息获得单元221接收关于经加密的参数N1的信息时,临时密钥计算单元223对经加密的信息解密并获得参数N1的值。由于经加密的信息是利用拥有密钥处理装置200的用户Ui的公开加密密钥ei来加密的,所以每个密钥处理装置200可以利用存储的秘密解密密钥di来对该密文解密。在此情况下,参数N1被认为是在同时通信中临时使用的临时密钥。临时密钥计算单元223将作为解密的结果获得的参数N1发送到成员验证单元225。
临时密钥计算单元223可将参数N1亦即计算出的临时密钥与例如表示计算参数N1的日期/时间的信息关联起来,并且将参数N1、表示日期/时间的信息与历史信息等等一起存储到存储单元219等等。
成员验证单元225例如是用CPU、ROM、RAM等等实现的。成员验证单元225验证从会话信息获得单元221发送来的数字签名(其被附加到从加密装置100广播来的会话信息D)。可利用存储在加密装置100中的发起者U1的公开签名验证密钥v1来验证数字签名。此验证处理使得可以确认从发起者U1发送来的数字签名是用户U1的有效数字签名。另外,成员验证单元225通过使用从临时密钥计算单元223发送来的参数N1和公开的散列函数h来独立计算h(N1)。然后,成员验证单元225验证根据h(N1)计算的值是否与从会话信息获得单元221发送来的会话信息D中包括的值h(N1)相同。
当计算出的值与会话信息D中包括的值相同并且数字签名被判定为有效时,成员验证单元225判定所获得的会话信息是从有效成员(即有效发起者)发送来的。在此情况下,成员验证单元225向会话信息生成单元227发送验证结果,该验证结果表明会话信息D是从有效成员发送来的。
当判定数字签名不有效时,或者当根据h(N1)计算的值不与会话信息D中包括的值相同时,成员验证单元225判定所获得的会话信息D不是从有效成员发送来的。结果,密钥处理装置200完成生成会话密钥的处理。
会话信息生成单元227例如是用CPU、ROM、RAM等等实现的。当会话信息生成单元227从成员验证单元225接收到表明所获得的会话信息已被成功验证的通知时,会话信息生成单元227请求参数选择单元229选择参数Ni。当参数选择单元229通知参数Ni时,会话信息生成单元227经由通信控制单元217将用于标识拥有密钥处理装置200的用户Ui的用户信息Ui和所选择的参数Ni广播到其他成员。用户信息Ui和参数Ni对应于从用户Ui拥有的密钥处理装置200发送来的会话信息Di。其用户信息Ui和参数Ni被发送的成员是通过参考从加密装置100发送来的成员信息U来识别的。
当已发送了会话信息Di时,会话信息生成单元227将由参数选择单元229选择的参数Ni和由临时密钥计算单元223计算出的参数N1发送到会话密钥生成单元231。或者,参数Ni可由下文中说明的参数选择单元229发送到会话密钥生成单元231。又或者,参数Ni可由临时密钥计算单元223发送到会话密钥生成单元231。
参数选择单元229例如是用CPU、ROM、RAM等等实现的。当参数选择单元229接收到来自会话信息生成单元227的请求时,参数选择单元229选择被用作会话信息Di的一部分的具有预定比特数目的参数Ni。参数选择单元229将所选择的参数发送到会话信息生成单元227。
参数选择单元229可将所选择的参数与例如表示做出选择的日期/时间的信息关联起来,并且将所选择的参数、表示日期/时间的信息与历史信息等等一起存储到存储单元219等等。
会话密钥生成单元231例如是用CPU、ROM、RAM等等实现的。会话密钥生成单元231使用参数N1和Ni、从其他密钥处理装置200发送来的参数Ni以及公开信息来生成用于同时通信的会话密钥KU
更具体而言,会话密钥生成单元231利用公开的散列函数h和所获得的参数N1至Nn基于以下的式211来生成会话密钥KU
[数学式45]
KU=h(N1‖N2‖…‖Nn)…(式211)
通过使用这样生成的会话密钥KU,密钥处理装置200可以与加密装置100和其他密钥处理装置200安全地执行同时通信。
会话密钥生成单元231可将所生成的会话密钥KU与例如表示生成会话密钥的日期/时间的信息关联起来,并且将所生成的会话密钥KU、表示日期/时间的信息与历史信息等等一起存储到存储单元219等等。
以上已经说明了根据本实施例的密钥处理装置200的功能的示例。上述构成元件中的每一个可利用通用构件和电路来构造,或者可利用专用于每个构成元件的功能的硬件来构造。或者,每个构成元件的功能可由CPU等等来实现。因此,可按照实现本实施例时的技术水平来根据需要改变所使用的配置。
可以制作用于实现上述根据本实施例的密钥处理装置的功能的计算机程序,并且该计算机程序可实现在个人计算机等等上。另外,可以提供存储这种计算机程序的计算机可读记录介质。记录介质的示例包括磁盘、光盘、磁光盘和闪存。另外,上述计算机程序例如可通过网络来分发,而不使用记录介质。
应当注意,加密装置100也可具有密钥处理装置200的功能。或者,密钥处理装置200也可具有加密装置100的功能。在特定的同时通信中,密钥处理装置200也可充当发起者(即加密装置100)来启动根据本实施例的协议。或者,在特定的同时通信中,加密装置100也可充当被另一参与成员用来执行密钥处理装置200的功能的装置。
<用于生成会话密钥的方法>
随后,将参考图11来详细说明用于生成会话密钥的方法,其中包括根据本实施例的加密装置100执行的加密方法和密钥处理装置200执行的密钥处理方法。图11是示出根据本实施例的会话密钥生成处理的流程图。
在以下说明中,假定一个加密装置100和n-1个密钥处理装置200尝试在其间实现同时通信。在根据本实施例的方法中,n个成员U1,U2,…,Un中的任何一个是协议发起者(以下也可称之为发起者)。在以下说明中,为了简明起见,假定成员U1是发起者。
首先,成员U1(即发起者)所拥有的加密装置100的参数选择单元121选择被用作临时密钥的参数N1(步骤S201),并将参数N1发送到会话信息生成单元125。
随后,加密装置100的成员信息生成单元123生成包括参与同时通信的成员Ui(i=2,…,n)的信息的成员信息U(步骤S203)。当成员信息生成单元123生成了成员信息U时,成员信息生成单元123将所生成的成员信息U发送到会话信息生成单元125。
在会话信息生成单元125参考成员信息U的同时,会话信息生成单元125使用用户Ui的公开加密密钥ei来生成针对每个成员Ui加密的参数N1(即E(ei,N1))。会话信息生成单元125基于从参数选择单元121发送来的参数、从成员信息生成单元123发送来的成员信息U以及公开信息来生成附加有签名的会话信息D(步骤S205)。附加有签名的会话信息D是基于以上说明的式111和式112来生成的。
随后,会话信息生成单元125经由通信控制单元117将成员信息U和附加有签名的会话信息D广播到密钥处理装置200(步骤S207)。
然后,会话信息生成单元125经由通信控制单元117将经加密的参数N1发送到密钥处理装置200(步骤S209)。
当成员U2至Un所拥有的密钥处理装置200中的每一个的会话信息获得单元221接收到会话信息D和经加密的参数N1时,密钥处理装置200首先验证所获得的消息(会话信息D)(步骤S211)。由成员验证单元225利用由临时密钥计算单元223计算出的参数N1和由会话信息获得单元221获得的附加有签名的会话信息D来验证该消息。
当成员验证单元225提供的验证处理的结果表明未判定消息有效时,密钥处理装置200停止用于生成会话密钥的处理。另一方面,当成员验证单元225提供的验证处理的结果表明判定消息有效时,会话信息生成单元227请求参数选择单元229选择参数Ni。结果,参数选择单元229随机选择参数Ni(步骤S213)。参数选择单元229将所选择的参数Ni通知给会话信息生成单元227。
然后,会话信息生成单元227经由通信控制单元217将用于标识拥有密钥处理装置200的用户Ui的用户信息Ui和所选择的参数Ni广播到包括加密装置100在内的其他成员(步骤S215)。
密钥处理装置200和加密装置100的会话信息获得单元获得从其他密钥处理装置200发送来的参数Ni等等(步骤S217)。结果,所有n-1个密钥处理装置200都广播了用户信息Ui和参数Ni,并且从N1到Nn的总共n个参数被获得。
然后,密钥处理装置200和加密装置100的会话密钥生成单元129利用从N1到Nn的n个参数计算会话密钥KU(步骤S219)。根据上述过程,装置可以共享在同时通信中使用的会话密钥KU,从而多个参与者可以开始同时通信(步骤S221)。
如上所述,在根据本实施例的用于生成会话密钥的方法中,基于发起者U1所拥有的秘密签名生成密钥的数字签名被附加到发起者U1所拥有的加密装置100所选择的参数N1。当密钥处理装置200验证从发起者U1发送来的消息时,密钥处理装置200利用公开的签名验证密钥来验证从发起者U1发送来的会话信息D。这防止了发起者仅向特定成员发送不同值的参数N1
(第三实施例)
随后,将参考图12至16来详细说明根据本发明第三实施例的密钥共享系统。
<密钥共享系统>
首先,将参考图12来详细说明根据本实施例的密钥共享系统。图12是示出根据本实施例的密钥共享系统的说明图。
例如,如图12所示,根据本实施例的密钥共享系统1主要包括密钥生成装置10和多个加密装置100A、100B、100C、100D…。这些装置经由通信网络3相互连接。
通信网络3是连接在密钥生成装置10和加密装置100之间以便能够进行双向通信或单向通信的通信电路网络。通信网络3与根据本发明第一实施例的通信网络3相同。因此,将省略对其的详细描述。
密钥生成装置10生成每个加密装置100所特有的公共密钥和私用密钥。密钥生成装置10公开公共密钥,并且经由安全的通信路径将公共密钥和私用密钥分发到各装置。另外,密钥生成装置10不仅生成公共密钥和私用密钥,还生成每个加密装置100所特有的签名生成密钥和签名验证密钥,并且经由安全的通信路径将签名生成密钥和签名验证密钥分发到每个装置。另外,密钥生成装置10把可被公开并用于根据本实施例的密钥共享系统1中的参数作为系统参数公开。应当注意,密钥生成装置10可由生成和管理公共密钥和私用密钥的中心等等拥有。
加密装置100使用公共密钥、私用密钥、签名生成密钥、签名验证密钥、公开的系统参数等等来对用于生成在多个加密装置100之间执行的同时通信中所需的会话密钥的信息加密。另外,加密装置100经由通信网络3把经加密的用于生成会话密钥的信息发送到其他加密装置100。因此,加密装置100可以共享同时通信所需的会话密钥。该加密装置100可由任何第三方拥有。或者,加密装置100可由密钥生成装置10的拥有者所拥有。
加密装置100可以是诸如个人计算机(PC)之类的计算机设备(其可以是笔记本型的或桌面型的)。或者,加密装置100可以是任何装置,只要其具有通过网络进行通信的功能即可。这些装置的示例包括PDA(个人数字助理)、家庭游戏机、DVD/HDD记录器、电视接收机之类的信息设备以及用于电视广播的调谐器和记录器。这些装置的示例还包括可由订户携带的便携设备,例如便携游戏机、便携电话、便携视频/音频播放器、PDA和PHS。
在图12中,只示出了四个加密装置100。然而,在根据本实施例的密钥共享系统1中,装置的数目并不限于图12所示的示例。
<密钥生成装置的配置>
随后,将参考图13来详细说明根据本实施例的密钥生成装置10的配置。例如,如图13所示,根据本实施例的密钥生成装置10主要包括成员信息管理单元11、参数选择单元13、公开信息生成单元15、密钥生成单元17、信息提供单元23、通信控制单元25以及存储单元27。
成员信息管理单元11例如是用CPU、ROM、RAM等等实现的。成员信息管理单元11管理关于根据本实施例的密钥生成装置10为其生成个人密钥的成员的信息,其中成员的个人密钥包括公共密钥和私用密钥。例如,成员信息被记录到存储单元27。
参数选择单元13例如是用CPU、ROM、RAM等等实现的。参数选择单元13根据预定的方法选择阶数q、阶数为q的两个群G1、G2以及双线性映射e。随后,参数选择单元13选择参数P∈RG1和参数s∈RZq *,并且使用这些参数来计算Ppub=sP。此参数P也被称为随机生成元。另一方面,参数s被秘密地保存作为主私用密钥。
此外,参数选择单元13选择四种散列函数,即H1、H2、H3、H4
H1:{0,1}→G1
H2:G2→{0,1}t
H3:{0,1}t→{0,1}t
H4:Zq *→{0,1}t
在此情况下,在散列函数H4中,t表示散列函数的输出长度。例如,t被设定为160(即输出长度160比特)。
公开信息生成单元15例如是用CPU、ROM、RAM等等实现的。公开信息生成单元15从参数选择单元13选择的各种参数和散列函数之中选择可作为公开信息(公开的系统参数)公开的那些,并且采用它们作为公开信息。更具体而言,公开信息生成单元15生成<e,G1,G2,q,P,Ppub,H1,H2,H3,H4>的组合作为公开信息,并且将公开信息存储到存储单元27。
密钥生成单元17例如是用CPU、ROM、RAM等等实现的。当使用根据本实施例的密钥共享系统1的成员请求密钥生成单元17生成成员的包括公共密钥和私用密钥的个人密钥时,密钥生成单元17生成个人密钥。当密钥生成单元17生成个人密钥时,密钥生成单元17生成被成员用来附加和验证数字签名的签名密钥。当密钥生成单元17生成个人密钥和签名密钥时,密钥生成单元17从成员信息管理单元11获得做出请求的成员的ID(例如用户ID和邮件地址),并且基于所获得的ID和由参数选择单元13选择的系统参数来生成密钥。例如,如图13所示,密钥生成单元17进一步包括公共密钥生成单元19、私用密钥生成单元21和签名密钥生成单元22。
公共密钥生成单元19例如是用CPU、ROM、RAM等等实现的。公共密钥生成单元19利用从成员信息管理单元11获得的做出请求的成员的ID(IDi)和用作系统参数的散列函数H,根据以下的式21来生成成员i的公共密钥Qi
公共密钥Qi=H1(IDi)…(式21)
公共密钥生成单元19可将所生成的成员Ui的公共密钥Qi与成员Ui的相应成员信息关联起来,并且将所生成的公共密钥Qi和相应成员信息存储到存储单元27。
私用密钥生成单元21例如是用CPU、ROM、RAM等等实现的。私用密钥生成单元21利用主私用密钥s和由公共密钥生成单元19生成的公共密钥Qi,根据以下的式23来生成成员Ui的私用密钥Si
私用密钥Si=sQi…(式23)
私用密钥生成单元21可将所生成的成员Ui的私用密钥Si与成员Ui的相应成员信息关联起来,并且可以将所生成的私用密钥Si和相应的成员信息存储到存储单元27。
从式21可以看出,成员的公共密钥是根据公开信息和成员Ui的ID生成的。在根据本实施例的密钥共享系统1中,成员Ui的ID是诸如用户ID和邮件地址之类的信息。因此,任何用户都可以利用公开信息和成员Ui的ID来计算公共密钥。另一方面,从式23可以看出,成员Ui的私用密钥是利用秘密存储在密钥生成装置10中的主私用密钥来计算的值。因此,只有密钥生成装置10能够生成成员Ui的私用密钥。
签名密钥生成单元22例如是用CPU、ROM、RAM等等实现的。签名密钥生成单元22通过使用能够对任意t比特值执行处理的数字签名技术来生成成员Ui所特有的签名生成密钥ski和签名验证密钥vki
签名密钥生成单元22可将这样生成的成员Ui的签名生成密钥ski和签名验证密钥vki与成员Ui的相应成员信息关联起来,并且可将签名生成密钥ski、签名验证密钥vki和相应成员信息存储到存储单元27。
信息提供单元23例如是用CPU、ROM、RAM等等实现的。响应于根据本实施例的加密装置100给出的请求,信息提供单元23向这些装置提供诸如公开信息和成员的公共密钥之类的各种信息。当信息提供单元23提供信息时,信息提供单元23可参考存储在存储单元27中的各种数据。
通信控制单元25例如是用CPU、ROM、RAM、通信设备等等实现的。通信控制单元25控制密钥生成装置10与加密装置100之间的通信。
存储单元27存储由成员信息管理单元11管理的成员信息、由参数选择单元13选择的系统参数、由公开信息生成单元15生成的公开信息、由密钥生成单元17生成的个人密钥,等等。存储单元27可存储例如在根据本实施例的密钥生成装置10执行特定处理期间需要存储的各种参数或处理进度,并且可根据需要存储各种数据库等等。存储单元27可被成员信息管理单元11、参数选择单元13、公开信息生成单元15、密钥生成单元17、信息提供单元23、通信控制单元25等等自由地读写。
以上已经说明了根据本实施例的密钥生成装置10的功能的示例。上述构成元件中的每一个可利用通用构件和电路来构造,或者可利用专用于每个构成元件的功能的硬件来构造。或者,每个构成元件的功能可由CPU等等来实现。因此,可按照实现本实施例时的技术水平来根据需要改变所使用的配置。
可以制作用于实现上述根据本实施例的密钥生成装置的功能的计算机程序,并且该计算机程序可实现在个人计算机等等上。另外,可以提供存储这种计算机程序的计算机可读记录介质。记录介质的示例包括磁盘、光盘、磁光盘和闪存。另外,上述计算机程序例如可通过网络来分发,而不使用记录介质。
<加密装置的配置>
随后,将参考图14来详细说明根据本实施例的加密装置100的配置。图14是示出根据本实施例的加密装置的配置的框图。
根据本实施例的加密装置100是由参与同时通信的成员操作的装置。例如,如图14所示,根据本实施例的加密装置100主要包括个人密钥获得单元101、群组密钥生成单元103、通信控制单元117和存储单元119。
个人密钥获得单元101例如是用CPU、ROM、RAM等等实现的。个人密钥获得单元101经由通信控制单元117从密钥生成装置10获得预先分派给使用加密装置100的成员的个人密钥(即公共密钥和私用密钥)。另外,当个人密钥获得单元101获得个人密钥时,个人密钥获得单元101还可从密钥生成装置10获得公开信息(公开的系统参数)。例如,个人密钥获得单元101可将这样获得的个人密钥和公开信息存储到存储单元119。
群组密钥生成单元103例如是用CPU、ROM、RAM等等实现的。群组密钥生成单元103以及其他加密装置100通过使用存储在加密装置100中的个人密钥、执行同时通信的成员的公共密钥、公开信息以及从其他加密装置100获得的信息来生成用于同时通信的群组密钥。例如,如图14所示,群组密钥生成单元103进一步包括参数选择单元131、成员信息生成单元133以及会话信息生成单元135。此外,群组密钥生成单元103还包括会话信息获得单元137、成员验证单元139以及会话密钥生成单元141。
参数选择单元131例如是用CPU、ROM、RAM等等实现的。参数选择单元131选择参数δiRZq *和参数kiRZq *以及在同时通信中用作临时密钥的具有t比特的参数ri。参数选择单元105将所选择的参数发送到成员信息生成单元107和会话信息生成单元135。
参数选择单元131可将所选择的参数与例如表示做出选择的日期/时间的信息关联起来,并且将所选择的参数、表示日期/时间的信息与历史信息等等一起存储到存储单元119等等。
成员信息生成单元133例如是用CPU、ROM、RAM等等实现的。成员信息生成单元133利用参与同时通信的成员Uj(1≤j≤n,j≠i)的公共密钥Qj、存储在加密装置100中的私用密钥Si、由参数选择单元131选择的临时密钥ri以及公开信息,来生成如以下的式121所示的成员信息Pi j
[数学式46]
Pi j=H2(e(Si,Qj)·δi)⊕ri…(式121)
在此情况下,在式121中,H2表示公开的散列函数之一。
另外,成员信息生成单元107还生成表示成员信息Pi j的排列顺序的信息L,以便表明所生成的成员信息Pi j与参与同时通信的相应n-1个成员之间的对应关系。
成员信息生成单元133将所生成的成员信息Pi j和表示成员信息与成员之间的对应关系的信息L发送到会话信息生成单元135。
成员信息生成单元133可将所生成的成员信息与例如表示生成成员信息的日期/时间的信息关联起来,并且将所生成的成员信息、表示日期/时间的信息与历史信息等等一起存储到存储单元119等等。
会话信息生成单元135例如是用CPU、ROM、RAM等等实现的。会话信息生成单元135基于从参数选择单元131发送来的各种参数、从成员信息生成单元133发送来的成员信息Pi j和关于对应关系的信息L、以及公开信息,来生成成员Ui的会话信息Di
更具体而言,首先,会话信息生成单元135计算由以下的式122表示的值Vi和由以下的式123表示的值Wi。然后,会话信息生成单元135利用计算出的值等等来生成由以下的式124表示的会话信息Di。此会话信息标识在多个加密装置100之间执行的同时通信,并且是用于在同时通信中生成会话密钥的信息。
[数学式47]
Vi=H3(ri)⊕ki…(式122)
Wi=SIGi(H4(ki))…(式123)
D i = &lang; &delta; i , P i 1 , &CenterDot; &CenterDot; &CenterDot; , P i i - 1 , P i i + 1 , &CenterDot; &CenterDot; &CenterDot; , P i n , V i , W i , L &rang; …(式124)
在以上的式123中,SIGi(x)表示利用签名生成密钥ski为消息x生成的数字签名。
会话信息生成单元135向由参数选择单元131选择的随机数ki附加数字签名,以便防止向特定成员发送经修改的随机数ki。如果随机数ki是以明文的形式发送的,则除成员以外的人就可以获得以后生成的会话密钥。因此,会话信息生成单元135通过将ki放入散列函数H4(即公开信息)中来制作消息,并且利用签名生成密钥ski(即成员Ui所特有的私用密钥)来生成会话信息Di
会话信息生成单元135经由通信控制单元117将所生成的会话信息Di广播到其他加密装置100。另外,会话信息生成单元135将所生成的会话信息Di发送到成员验证单元139。会话信息生成单元135将所生成的会话信息Di与例如表示生成会话信息Di的日期/时间的信息关联起来,并且将所生成的会话信息Di、表示日期/时间的信息与历史信息等等一起存储到存储单元119等等。
会话信息获得单元137例如是用CPU、ROM、RAM等等实现的。会话信息获得单元137经由通信控制单元117获得从其他加密装置100发送来的会话信息Di
会话信息获得单元137将所有获得的会话信息Di发送到成员验证单元139。另外,会话信息获得单元137可将所获得的会话信息Di与例如表示获得会话信息Di的日期/时间的信息关联起来,并且将所获得的会话信息Di、表示日期/时间的信息与历史信息等等一起存储到存储单元119等等。
成员验证单元139例如是用CPU、ROM、RAM等等实现的。成员验证单元139判定参与同时通信的成员是否是有效成员。更具体而言,成员验证单元139利用加密装置100的个人密钥、成员所拥有的加密装置100所选择的参数以及从其他加密装置100获得的会话信息Dj来验证成员。
当成员验证单元139获得从其他加密装置100发送来的会话信息Dj时,成员验证单元139参考所获得的会话信息Dj中包括的信息L,并且从会话信息Dj之中检测与加密装置100相对应的Pj i。然后,成员验证单元139计算由以下的式125表示的值kj’。
[数学式48]
k j &prime; = H 3 ( H 2 ( e ( Q j , S i ) &CenterDot; &delta; j ) &CirclePlus; P j i ) &CirclePlus; V j …(式125)
随后,成员验证单元139利用计算出的kj’和作为公开信息的散列函数H4来计算H4(kj’)。然后,成员验证单元139使用成员Uj的签名验证密钥vkj来判定会话信息Dj中包括的Wj是否是与计算出的H4(kj’)相对应的有效数字签名。
成员验证单元139对从其他加密装置100获得的所有会话信息Dj执行上述成员验证处理。
当成员验证单元139成功地验证了成员时,成员验证单元139将表示成功验证的结果以及计算出的kj’发送到会话密钥生成单元141。当成员验证单元139验证成员失败时,成员验证单元139终止用于生成会话密钥的处理。
成员验证单元139可将计算出的值与例如表示执行计算的日期/时间的信息关联起来,并且将计算出的值、表示日期/时间的信息与历史信息等等一起存储到存储单元119等等。
会话密钥生成单元141例如是用CPU、ROM、RAM等等实现的。当成员验证单元139成功验证了参与同时通信的成员时,会话密钥生成单元141通过使用从成员验证单元139发送来的多个值kj’来用于同时通信的会话密钥K。会话密钥K是根据以下的式126生成的。
[数学式49]
K = K i = k 1 &prime; &CirclePlus; k 2 &prime; &CirclePlus; &CenterDot; &CenterDot; &CenterDot; &CirclePlus; k i - 1 &prime; &CirclePlus; k i &CirclePlus; k i + 1 &prime; &CirclePlus; &CenterDot; &CenterDot; &CenterDot; &CirclePlus; k n &prime; …(式126)
通过使用这样生成的会话密钥K,多个加密装置100可安全地执行同时通信。
会话密钥生成单元141可将所生成的会话密钥K与例如表示生成会话密钥K的日期/时间的信息关联起来,并且将所生成的会话密钥K、表示日期/时间的信息与历史信息等等一起存储到存储单元119等等。
通信控制单元117例如是用CPU、ROM、RAM、通信设备等等实现的。通信控制单元117控制加密装置100与密钥生成装置10之间的通信。
存储单元119存储由密钥生成装置10公开的公开信息、从密钥生成装置10获得的包括公共密钥和私用密钥的个人密钥,等等。存储单元119可存储例如在根据本实施例的加密装置100执行特定处理期间需要存储的各种参数或处理进度,并且可根据需要存储各种数据库等等。存储单元119可被个人密钥获得单元101、群组密钥生成单元103、群组密钥生成单元103中包括的每个处理单元以及通信控制单元117等等自由地读写。
以上已经说明了根据本实施例的加密装置100的功能的示例。上述构成元件中的每一个可利用通用构件和电路来构造,或者可利用专用于每个构成元件的功能的硬件来构造。或者,每个构成元件的功能可由CPU等等来实现。因此,可按照实现本实施例时的技术水平来根据需要改变所使用的配置。
可以制作用于实现上述根据本实施例的加密装置的功能的计算机程序,并且该计算机程序可实现在个人计算机等等上。另外,可以提供存储这种计算机程序的计算机可读记录介质。记录介质的示例包括磁盘、光盘、磁光盘和闪存。另外,上述计算机程序例如可通过网络来分发,而不使用记录介质。
<密钥生成处理>
在根据本实施例的密钥共享系统1中,中心所拥有的密钥生成装置10生成各种系统参数(即公开信息)以及每个成员的个人密钥(即包括公共密钥、私用密钥、签名生成密钥和签名验证密钥在内的用户密钥)。将参考图15详细说明根据本实施例的密钥生成装置10执行的密钥生成处理。
首先,密钥生成装置10的参数选择单元13根据预定的方法选择阶数q、阶数为q的两个群G1、G2以及双线性映射e(步骤S21)。
随后,参数选择单元13选择参数P∈RG1和参数s∈RZq *(步骤S23),并且使用这些参数来计算Ppub=sP。此参数P也可被称为随机生成元。另一方面,参数s被秘密地保存作为主私用密钥。
随后,参数选择单元13选择四种散列函数,即H1、H2、H3、H4(步骤S25)。这些散列函数分别具有以上说明的特征。
随后,公开信息生成单元15把在上述步骤中生成的各种设定值之中允许公开的某些作为系统参数(公开信息)公开(步骤S27)。例如,公开的系统参数包括<e,G1,G2,q,P,Ppub,H1,H2,H3,H4>。
随后,当具有诸如用户ID号和邮件地址之类的用于标识用户的ID(IDi)的成员Ui参与此密钥共享系统1时,密钥生成单元17根据以下的方法来生成用户Ui的公共密钥Qi和私用密钥Si(步骤S29)。
更具体而言,首先,公共密钥生成单元19通过使用散列函数H(即系统参数)和从成员信息管理单元11获得的做出请求的成员的ID(IDi)来生成成员Ui的公共密钥Qi
公共密钥Qi=H1(IDi)
随后,私用密钥生成单元21通过使用由公共密钥生成单元19生成的公共密钥Qi和主私用密钥s来生成成员Ui的私用密钥Si
私用密钥Si=sQi
另外,签名密钥生成单元22通过使用根据所使用的数字签名技术的方法来生成成员Ui所特有的签名生成密钥ski和签名验证密钥vki(步骤S29)。
密钥生成装置10将所生成的用户Ui的个人密钥(即公共密钥Qi、私用密钥Si、签名生成密钥ski和签名验证密钥vki)发送到相应的成员Ui。另外,密钥生成装置10还可公开所生成的用户Ui的公共密钥Qi
当装置尝试利用根据本实施例的密钥共享系统来执行同时通信时,装置使用这样公开的系统参数以及成员的公共密钥和私用密钥来根据以下方法生成并共享用于同时通信的会话密钥。
<用于生成会话密钥的方法>
随后,将参考图16来详细说明用于生成在多个加密装置之间执行的同时通信中使用的会话密钥的处理。在以下说明中,假定总共n台加密装置尝试在其间实现同时通信。
首先,每个成员Ui所拥有的加密装置100的参数选择单元131选择参数δiRG2和参数kiRZq *(步骤S301)。在此情况下,参数δi是用于共享会话密钥的参数。另一方面,每个成员Ui所拥有的加密装置100的参数选择单元131选择参数riR{0,1}t(步骤S301)。此参数ri是作为用于在同时通信中共享会话密钥的一个手续而被选择的。
随后,每个成员Ui所拥有的加密装置100的成员信息生成单元133针对参与同时通信的除本成员以外的成员Uj(1≤j≤n,j≠i)生成成员信息Pi j(步骤S303)。此成员信息Pi j是用于向参与同时通信的装置发送被用作临时密钥的参数的信息。此Pi j是由以上的式121表示的值。
随后,每个成员Ui所拥有的加密装置100的会话信息生成单元135通过使用公开的系统参数和所选择的参数来生成由以上说明的式124表示的会话信息Di(步骤S305)。
当已生成会话信息Di时,每个成员Ui所拥有的加密装置100的会话信息生成单元135经由通信控制单元117向加密装置100广播所生成的会话信息Di(步骤S307)。
首先,当每个成员Ui所拥有的加密装置100的会话信息获得单元137接收到来自另一加密装置100的会话信息Dj(1≤j≤n,j≠i)时,会话信息获得单元137将接收到的会话信息Dj发送到成员验证单元139。
首先,成员验证单元139参考会话信息Dj中包括的信息L来检测与成员Ui所拥有的加密装置100相对应的Pj i(步骤S309)。
随后,成员验证单元139通过使用与成员Ui所拥有的信息处理装置相对应的成员信息Pj i、会话信息Dj、成员Uj的公共密钥Qj以及与成员Ui所拥有的信息处理装置相对应的私用密钥Si,来根据以上说明的式125计算参数kj’(步骤S311)。
随后,成员验证单元139利用计算出的参数kj’和作为公开信息的散列函数H4来计算H4(kj’)。然后,成员验证单元139使用成员Uj的签名验证密钥vkj来判定会话信息Dj中包括的Wj是否是与计算出的H4(kj’)相对应的有效数字签名(步骤S313)。
当成员验证单元139成功地验证了消息(即成功地验证了成员)时,成员验证单元139将表明成功验证的结果以及计算出的kj’发送到会话密钥生成单元141。当成员验证单元139验证消息失败时,成员验证单元139终止用于生成会话密钥的处理。
当成员验证单元139成功地验证了消息时,每个加密装置100的会话密钥生成单元141通过使用从成员验证单元139发送来的多个值kj’来生成在同时通信中使用的会话密钥K(步骤S315)。会话密钥K是根据以上说明的式126来生成的。
每个加密装置100计算会话密钥K。因此,这意味着加密装置100共享在同时通信中使用的会话密钥K,从而多个参与者可以开始同时通信(步骤S317)。
如上所述,根据本实施例的用于生成会话密钥的方法被配置成使得当每个成员发送消息时,数字签名被附加到由用户的装置选择的用于对会话密钥产生影响的随机数ki。因此,这防止了参数ki被修改并给予特定成员。
顺便说一下,在上述实施例中,消息H4(ki)是通过将参数ki放入散列函数中来获得的,并且数字签名被附加到此消息。存在两类数字签名方法:消息恢复方案和认证代码附加方案。在根据认证代码附加方案的数字签名中,为了支持具有任意数据长度的消息,消息首先被输入到散列函数中以生成签名,并且验证方类似地利用通过将消息放入散列函数中而获得的结果来执行验证处理。如上所述,在具有包括散列函数的密钥共享系统从而使得消息被输入到散列函数中的数字签名系统中,可以使用SIGi(ki)来取代SIGi(H4(ki))作为会话信息Di的元素。
(硬件配置)
随后,将参考图17来详细说明根据本发明每个实施例的加密装置100的硬件配置。图17是示出根据本发明每个实施例的加密装置100的硬件配置的框图。
加密装置100主要包括CPU 901、ROM 903、RAM 905、主机总线907、桥接器909、外部总线911、接口913、输入设备915、输出设备917、存储设备919、驱动器921、连接端口923以及通信设备925。
CPU 901充当计算处理单元和控制设备,以便根据ROM 903、RAM905、存储设备919或可移除记录介质927中记录的各种程序来控制加密装置100中的操作的全部或其一部分。ROM 903存储被CPU 901使用的程序和计算参数等等。RAM 905临时存储在CPU 901的执行期间使用的程序和在执行期间适当变化的参数等等。它们通过由诸如CPU总线之类的内部总线构成的主机总线907相互连接。
主机总线907经由桥接器909连接到诸如PCI(外围组件互连/接口)总线之类的外部总线911。
输入设备915是被用户操作的操作装置,例如鼠标、键盘、触摸面板、按钮、开关和操纵杆。另外,输入设备915例如可以是使用红外光和其他无线电波的遥控装置(所谓的遥控器)。或者,输入设备915可以是可用来操作加密装置100的外部连接设备929,例如便携电话和PDA。另外,输入设备915例如由用于基于用户利用上述操作装置给出的信息生成输入信号并将输入信号输出到CPU 901的输入控制电路构成。通过操作此输入设备915,加密装置100的用户可向加密装置100输入各种数据并向加密装置100给出对于处理操作的指令。
输出设备917例如是由如下设备构成的:显示设备,例如CRT显示设备、液晶显示设备、等离子显示设备、EL显示设备和灯;音频输出设备,例如扬声器和耳机;以及用于从视觉上或听觉上向用户呈现所获得的信息的设备,例如打印机、便携电话和传真机。输出设备917例如输出作为执行由加密装置100执行的各种处理的结果而获得的结果。更具体而言,显示设备以文本或图像的形式显示从由加密装置100执行的各种处理获得的结果。另一方面,音频输出设备将包含再现的音频数据、声音数据等等的音频信号转换成模拟信号并输出该模拟信号。
存储设备919是被配置为加密装置100的存储单元的示例的数据存储设备。存储设备919可由磁存储设备(例如硬盘驱动器(HDD))、半导体存储设备、光存储设备、磁光存储设备等等构成。存储设备919例如存储要被CPU 901执行的程序、各种数据或者从外界获得的各种数据。
驱动器921是用于记录介质的读/写器,其被内置在加密装置100中或从外部附接。驱动器921读取附接到它的诸如磁盘、光盘、磁光盘和半导体存储器之类的可移除记录介质927中记录的信息,并将该信息输出到RAM 905。另外,驱动器921可将信息写入到附接到它的诸如磁盘、光盘、磁光盘和半导体存储器之类的可移除记录介质927中。可移除记录介质927可以是DVD介质、HD-DVD介质、Blu-ray介质、compact flash(CF)(注册商标)、记忆棒、安全数字(SD)存储卡等等。另外,可移除记录介质927例如可以是集成电路(IC)卡、包括非接触式IC芯片的电子设备,等等。
连接端口923是用于将设备直接连接到加密装置100的端口,例如通用串行总线(USB)端口、IEEE 1394端口(比如i.Link)、小型计算机系统接口(SCSI)端口、RS-232C端口、光音频端子以及高清晰度多媒体接口(HDMI)端口。通过将外部连接设备929连接到连接端口923,加密装置100可直接从外部连接设备929获得各种数据并向外部连接设备929提花各种数据。
通信设备925例如是由用于与通信网络931建立连接的通信设备等等构成的通信接口。通信设备925例如可以是用于有线或无线局域网(LAN)、蓝牙、无线USB(WUSB)等等的通信卡、用于光通信的路由器、用于非对称数字订户线(ADSL)的路由器以及用于各种通信的调制解调器。通信设备925例如可以根据诸如TCP/IP之类的规定协议向因特网或另外的通信设备发送信号等等以及从因特网或另外的通信设备接收信号等等。另外,与通信设备925相连的通信网络931是由通过有线或无线手段连接的网络等等构成的,并且其可以是因特网、家用LAN、红外数据通信、无线电波通信、卫星通信等等。
以上已经说明了能够实现根据本发明每个实施例的加密装置100的功能的硬件配置的示例。上述构成元件中的每一个可利用通用构件来构造,或者可利用专用于每个构成元件的功能的硬件来构造。因此,可按照实现本实施例时的技术水平来根据需要改变所使用的硬件配置。
根据本发明每个实施例的密钥生成装置10和密钥处理装置200的硬件配置与根据本发明每个实施例的加密装置100的硬件配置的配置相同。因此,省略对其的详细描述。
(总结)
如上所述,在根据本发明每个实施例的密钥共享系统中,从每个成员发送的会话信息包括依赖于成员所特有的私用密钥的值,并且当每个装置验证成员时,该装置利用该成员的公共密钥来验证会话信息。因此,其他成员不能像基本技术中记载的方法那样生成能够通过使用Ui的公共密钥的验证的会话信息。结果,根据本发明每个实施例的密钥共享系统防止了来自成员的攻击,提高了安全性。
另外,在根据本发明第一实施例的密钥共享系统中,当计算验证参数z时,对于所有会话信息Di(i=1,…,n),获得Xj(即会话信息的一部分)的总和。因此,当计算会话密钥时,可以大大减少产生大量计算负担的群中的乘法的数目,从而可以抑制生成会话密钥所需的计算负担。
在群组密钥协定技术中,用于确认所有成员是否已成功共享密钥的技术作为被称为密钥确认(Key Confirmation)的概念是已知的。在用于实现此概念的具体方法中,不仅需要确认用于共享群组密钥的协议的正确性,而且还需要确认每个成员所得出的群组密钥的正确性。在此情况下,每个成员可以发送基于群组密钥计算出的值,并且确认其他成员的值是否正确。然而,在此方法中,必须发送/接收用于确认群组密钥的又一个消息,这在一轮群组密钥协定方法中是无法实现的。与之不同,在本发明的第二和第三实施例中,会话信息包括依赖于成员的私用密钥的值。因此,在本发明的第二和第三实施例中,即使在一轮群组密钥协定方法中也能够实现密钥确认。
与密钥确认相关地,有一个被称为“完全性”(completeness)的概念。在这个概念中,“仅当所有参与者都对群组密钥的生成做出贡献时,所有的参与者才能计算出相同的密钥”。然而,在过去,不曾有用于在固定数目的轮(尤其是一轮)中满足完全性的方法。与之不同,根据本发明第一实施例的方法使用上述验证处理来确认所有成员都使用相同的参数r。另外,由于群组密钥都是通过广播发送的,所有不可能有一个特定用户接收到与其他用户接收到的值不同的值。因此,虽然此方法是具有固定数目的轮的方法,但是此方法满足完全性。
在密钥确认中,虽然所有成员可共享相同的群组密钥,但是上述方法不确认每个成员实际共享群组密钥。因此,当考虑“弱化的密钥确认”,即表明“每个成员获得了用来得出相同群组密钥的信息”的概念时,上述方法满足此概念。
以上已经参考附图描述了本发明的优选实施例,但本发明当然并不限于上述示例。本领域的技术人员可以发现所附权利要求范围内的各种变更和修改,并且应当理解,它们当然在本发明的技术范围内。
在根据本发明的第二和第三实施例中,例如,数字签名被用作利用用户特有的私用密钥计算出的值的示例。然而,根据本发明的实施例并不限于这种示例。不仅可以使用数字签名,而且也可以使用利用用户特有的私用密钥、公开的参数等等计算出的值本身。

Claims (25)

1.一种加密装置,包括:
参数选择单元,用于选择用于与进行同时通信的其他信息处理装置共享会话密钥的参数,其中所述同时通信是在共享所述会话密钥后进行的,在该同时通信中交换利用所述会话密钥保护的消息,其中所述参数选择单元作为用于在所述同时通信中共享所述会话密钥的手续而选择所述参数;
成员信息生成单元,用于通过使用由所述参数选择单元选择的参数、预先公开的公开参数、预先分派给所述加密装置的私用密钥、以及预先分派给参与装置的公共密钥来生成用于发送被所述参与装置用作临时密钥的参数的成员信息,其中所述参与装置是参与所述同时通信的信息处理装置;
会话信息生成单元,用于通过使用所述成员信息、由所述参数选择单元选择的参数、所述公开参数和所述私用密钥来生成用于标识所述同时通信和生成用于所述同时通信的会话密钥的会话信息;
会话信息获得单元,用于从各个所述参与装置分别获得由各个所述参与装置生成的其他会话信息;以及
会话密钥生成单元,用于通过使用由所述加密装置生成的会话信息和由所述参与装置生成的会话信息来生成所述会话密钥。
2.根据权利要求1所述的加密装置,其中,所述参数选择单元选择参数δ∈RZq *、参数k1RZq *以及具有预定比特数目的参数r。
3.根据权利要求2所述的加密装置,其中,所述公开参数包括相互不同的两个阶数为q的群G1、G2、用于将群G1中的元素的组合映射到群G2的双线性映射e、多个不同的散列函数、以及两个参数P、Ppub,并且
所述成员信息生成单元根据以下的式1来分别生成与各个所述参与装置相对应的成员信息Pi
[数学式1]
Pi=r⊕HA(e(S1,δQi))…(式1),
其中,在式1中,HA表示公开的散列函数之一,S1表示分派给所述加密装置的私用密钥,Qi表示预先分派给各个所述参与装置的公共密钥,并且i表示从2到n的整数。
4.根据权利要求3所述的加密装置,其中,所述会话信息生成单元计算由以下的式2表示的值X1和由式3表示的值Y1,并且生成由以下的式4表示的会话信息D1
[数学式2]
X1=HB(r‖L)·k1P…(式2),
Y1=k1Ppub+HB(r‖L)·S1…(式3),
D1=<δ,P2,…Pn,X1,Y1,L>…(式4),
其中,在式2和式3中,HB表示公开的散列函数之一,并且在式4中,P2至Pn表示与各参与装置相对应的成员信息,并且L表示关于成员信息P2至Pn与参与装置之间的对应关系的信息。
5.根据权利要求4所述的加密装置,还包括:
成员验证单元,用于通过使用由所述加密装置生成的会话信息和从所述参与装置获得的由式5表示的会话信息Di(i=2,…,n)中的每一个来验证参与所述同时通信的装置的有效性,
其中,所述成员验证单元计算由以下的式6表示的验证参数z,并且基于以下的式7是否成立来验证参与所述同时通信的装置的有效性:
[数学式3]
Di=<Xi,Yi>
=<HB(r‖L)·kiP,kiPpub+HB(r‖L)·Si>…(式5),
z = H B ( r | | L ) - 1 &CenterDot; &Sigma; j = 1 n X j = &Sigma; j = 1 n k j P …(式6),
e ( P , &Sigma; j = 1 n Y j ) = e ( P pub , z + H B ( r | | L ) &CenterDot; &Sigma; j = 1 n Q j ) …(式7)。
6.根据权利要求5所述的加密装置,其中,当式7成立时,成员验证单元判定所述参与装置由有效装置构成,并且相应地,所述会话密钥生成单元基于以下的式8来计算会话密钥K:
[数学式4]
K=HC(z)…(式8),
其中,在式8中,HC表示公开的散列函数之一。
7.根据权利要求1所述的加密装置,其中,所述公开参数包括相互不同的两个阶数为q的群G1、G2、用于将群G1中的元素的组合映射到群G2的双线性映射e、多个不同的散列函数、以及两个参数P、Ppub
所述参数选择单元选择参数δiRZq *和参数kiRZq *,以及具有预定比特数目的参数ri,并且
所述成员信息生成单元根据以下的式9来分别生成与各个所述参与装置相对应的成员信息Pi
[数学式5]
Pi j=H2(e(Si,Qj)·δi)⊕ri…(式9),
其中,在式9中,H2表示公开的散列函数之一,Si表示分派给所述加密装置的私用密钥,并且Qj表示预先分派给各个所述参与装置的公共密钥。
8.根据权利要求7所述的加密装置,其中,所述会话信息生成单元计算由以下的式10表示的值Vi和由以下的式11表示的值Wi,并且生成由以下的式12表示的会话信息Di
[数学式6]
Vi=H3(ri)⊕ki…(式10),
Wi=SIGi(H4(ki))…(式11),
D i = &lang; &delta; i , P i 1 , &CenterDot; &CenterDot; &CenterDot; , P i i - 1 , P i i + 1 , &CenterDot; &CenterDot; &CenterDot; , P i n , V i , W i , L &rang; …(式12),
其中,以上的式10中的H3和以上的式11中的H4中的每一个表示公开的散列函数之一,其中在以上的式11中,SIGi(x)表示利用预定的签名生成密钥为信息x生成的数字签名,并且在以上的式12中,P2至Pn表示与各参与装置相对应的成员信息,并且L表示关于成员信息与参与装置之间的对应关系的信息。
9.根据权利要求8所述的加密装置,还包括:
成员验证单元,用于通过使用由式12表示的、由所述加密装置生成的会话信息Di和从所述参与装置获得的会话信息Di中的每一个来验证参与所述同时通信的装置的有效性,
其中,所述成员验证单元计算由以下的式13表示的参数kj’(j=1,…,n,j≠i),并且基于计算出的参数kj’和会话信息Di来验证参与所述同时通信的装置的有效性:
[数学式7]
k j &prime; = H 3 ( H 2 ( e ( Q j , S i ) &CenterDot; &delta; j ) &CirclePlus; P j i ) &CirclePlus; V j …(式13)。
10.根据权利要求9所述的加密装置,其中,当所述成员验证单元成功地验证了所述装置的有效性时,所述会话密钥生成单元基于以下的式14来计算会话密钥K:
[数学式8]
K = K i = k 1 &prime; &CirclePlus; k 2 &prime; &CirclePlus; &CenterDot; &CenterDot; &CenterDot; &CirclePlus; k i - 1 &prime; &CirclePlus; k i &CirclePlus; k i + 1 &prime; &CirclePlus; &CenterDot; &CenterDot; &CenterDot; &CirclePlus; k n &prime; …(式14)。
11.根据权利要求1所述的加密装置,其中,所述公开参数包括用于对预定信息加密的加密函数E、用于对经加密的信息解密的解密函数D、用于向预定信息附加数字签名的签名生成函数S、用于验证所述数字签名的签名验证函数V、以及散列函数,
所述参数选择单元选择具有预定的比特数目的参数Ni,并且
所述会话信息生成单元生成具有由以下的式15表示的数字签名的消息D和密文E(ei,N1)(i=2,…,n):
[数学式9]
S(s1,(E(e2,N1),…,E(en,N1),h(N1)))…(式15),
其中,在以上的式15中,S(s,x)表示利用预定的签名生成密钥s为信息x生成的数字签名,并且E(e,x)表示通过利用公共密钥e对信息x加密而获得的密文。
12.根据权利要求11所述的加密装置,其中,所述会话密钥生成单元通过使用从其他参与装置获得的具有预定比特数目的参数Ni和由所述参数选择单元选择的参数N1来基于以下的式16计算会话密钥KU
[数学式10]
KU=h(N1‖N2‖…‖Nn)…(式16)。
13.一种密钥处理装置,包括:
会话信息获得单元,用于获得从加密装置发送来的用于发送被参与同时通信的参与装置用作临时密钥的参数的会话信息,其中所述会话信息被用来生成用于所述同时通信的会话密钥并且标识所述同时通信,其中所述同时通信是在共享所述会话密钥后与所述加密装置执行的并且在所述同时通信中交换利用所述会话密钥保护的消息,并且其中所述会话信息获得单元还获得与从所述加密装置发送来的会话信息不同的、从参与所述同时通信的其他参与装置发送来的会话信息;
临时密钥计算单元,用于通过使用从所述加密装置发送来的会话信息、预先分派给所述加密装置的公共密钥、预先分派给所述密钥处理装置的私用密钥、以及预先公开的公开参数来计算临时密钥,其中所述临时密钥是由所述加密装置设定来用于所述同时通信中的;
参数选择单元,用于选择用来计算由所述密钥处理装置生成的、将被发送到所述加密装置的会话信息的参数;
会话信息生成单元,用于通过使用由所述参数选择单元选择的参数、所述公开参数、所述私用密钥、以及从所述加密装置发送来的会话信息,来生成被发送到所述加密装置和所述其他参与装置的会话信息;以及
会话密钥生成单元,用于通过使用由所述密钥处理装置生成的会话信息、从所述加密装置发送来的会话信息以及从所述其他参与装置发送来的会话信息来生成所述会话密钥。
14.根据权利要求13所述的密钥处理装置,其中,所述公开参数包括相互不同的阶数为q的两个群G1、G2、用于将群G1中的元素的组合映射到群G2的双线性映射e、多个不同的散列函数、以及两个参数P、Ppub
所述会话密钥获得单元从所述加密装置获得由以下的式17表示的会话信息D1,并且
所述临时密钥计算单元通过使用从所述加密装置发送来的会话信息D1中包括的与所述加密装置相对应的成员信息Pi和参数δ、所述私用密钥、预先分派给所述加密装置的公共密钥、以及所述公开参数来基于以下的式18计算临时密钥r’:
[数学式11]
D1=<δ,P2,…Pn,HB(r‖L)·k1P,k1Ppub+HB(r‖L)·S1,L>…(式17)
r′=HA(e(Si,δQ1))⊕Pi=r…(式18),
其中,式17中的HB和式10中的HA中的每一个表示公开的散列函数之一。
15.根据权利要求14所述的密钥处理装置,其中,所述会话密钥生成单元生成由以下的式19表示的会话信息Di
[数学式12]
Di=<Xi,Yi>
=<HB(r‖L)·kiP,kiPpub+HB(r‖L)·Si>…(式19),
其中,在式19中,ki表示用于计算所述会话密钥的参数。
16.根据权利要求15所述的密钥处理装置,其中,所述会话信息获得单元从参与所述同时通信的其他参与装置获得由式19表示的会话信息,
所述密钥处理装置还包括成员验证单元,用于通过使用由所述密钥处理装置生成的会话信息、从所述加密装置获得的由式17表示的会话信息D1、以及从所述其他参与装置获得的会话信息,来验证参与所述同时通信的装置的有效性,并且
所述成员验证单元计算由以下的式20表示的验证参数z,并且基于以下的式21是否成立来验证参与所述同时通信的装置的有效性:
[数学式13]
z = H B ( r | | L ) - 1 &CenterDot; &Sigma; j = 1 n X j = &Sigma; j = 1 n k j P …(式20)
e ( P , &Sigma; j = 1 n Y j ) = e ( P pub , z + H B ( r | | L ) &CenterDot; &Sigma; j = 1 n Q j ) …(式21),
其中,在式20和式21中,变量n表示加密装置的数目、密钥处理装置的数目和其他参与装置的数目的总和。
17.根据权利要求16所述的密钥处理装置,其中,当式21成立时,成员验证单元判定参与所述同时通信的装置由有效装置构成,并且相应地,所述会话密钥生成单元基于以下的式22来计算会话密钥K:
[数学式14]
K=HC(z)…(式22),
其中,在式22中,HC表示公开的散列函数之一。
18.根据权利要求13所述的密钥处理装置,所述公开参数包括用于对预定信息加密的加密函数E、用于对经加密的信息解密的解密函数D、用于向预定信息附加数字签名的签名生成函数S、用于验证所述数字签名的签名验证函数V、以及散列函数,
所述密钥处理装置还包括成员验证单元,用于通过使用从所述加密装置获得的由以下的式23表示的会话信息和由所述临时密钥计算单元计算出的临时密钥来验证所述加密装置的有效性,
所述临时密钥计算单元使用所述密钥处理装置中保存的私用密钥来对从所述加密装置发送来的密文E(ei,N1)解密,并且计算参数N1作为所述临时密钥,并且
所述成员验证单元基于由以下的式23表示的附加到会话信息的数字签名的验证结果和利用所述散列函数和参数N1计算出的h(N1)来验证所述加密装置:
[数学式15]
S(s1,(E(e2,N1),…,E(en,N1),h(N1)))…(式23),
其中,在式23中,S(s,x)表示利用预定的签名生成密钥s为信息x生成的数字签名,并且E(e,x)表示通过利用公共密钥e对信息x加密而获得的密文。
19.根据权利要求18所述的密钥处理装置,其中,当所述成员验证单元成功地验证了所述装置的有效性时,所述参数选择单元选择具有预定比特数目的参数Ni,并且所述会话信息生成单元采用由所述参数选择单元选择的参数Ni作为所述会话信息,并将所述会话信息发送到所述加密装置和所述其他参与装置。
20.根据权利要求19所述的密钥处理装置,其中,所述会话密钥生成单元通过使用由所述临时密钥计算单元计算出的参数N1、由所述参数选择单元选择的参数Ni和从所述其他参与装置获得的参数Ni来基于以下的式24计算会话密钥KU
[数学式16]
KU=h(N1‖N2‖…‖Nn)…(式24)。
21.一种加密方法,包括以下步骤:
选择用于与进行同时通信的其他信息处理装置共享会话密钥的参数,其中所述同时通信是在共享所述会话密钥后进行的,在该同时通信中交换利用所述会话密钥保护的消息,其中所述参数是作为用于在所述同时通信中共享所述会话密钥的手续而被选择的;
通过使用由所述参数选择单元选择的参数、预先公开的公开参数、预先分派给执行所述加密方法的装置的私用密钥、以及预先分派给参与装置的公共密钥来生成用于发送被所述参与装置用作临时密钥的参数的成员信息,其中所述参与装置是参与所述同时通信的信息处理装置;
通过使用所述成员信息、由所述参数选择单元选择的参数、所述公开参数和所述私用密钥来生成用于标识所述同时通信和生成用于所述同时通信的会话密钥的会话信息;
从所述参与装置获得由所述参与装置生成的其他会话信息;以及
通过使用由执行所述加密方法的装置生成的会话信息和由所述参与装置生成的会话信息来生成所述会话密钥。
22.一种密钥处理方法,包括以下步骤:
获得从加密装置发送来的用于发送被参与同时通信的参与装置用作临时密钥的参数的会话信息,其中所述会话信息被用来生成用于所述同时通信的会话密钥并且标识所述同时通信,其中所述同时通信是在共享所述会话密钥后与所述加密装置执行的并且在所述同时通信中交换利用所述会话密钥保护的消息;
通过使用从所述加密装置发送来的会话信息、预先分派给所述加密装置的公共密钥、预先分派给执行所述密钥处理方法的装置的私用密钥、以及预先公开的公开参数来计算临时密钥,其中所述临时密钥是由所述加密装置设定来用于所述同时通信中的;
选择用来计算由执行所述密钥处理方法的装置生成的、将被发送到所述加密装置的会话信息的参数;
会话信息生成步骤,用于通过使用所选择的参数、所述公开参数、所述私用密钥、以及从所述加密装置发送来的会话信息,来生成被发送到所述加密装置和其他参与装置的会话信息;
获得与从所述加密装置发送来的会话信息不同的、从参与所述同时通信的其他参与装置发送来的会话信息;以及
通过使用由执行所述密钥处理方法的装置生成的会话信息、从所述加密装置发送来的会话信息以及从所述其他参与装置发送来的会话信息来生成所述会话密钥。
23.一种用于能够在共享会话密钥后与其他信息处理装置执行同时通信的计算机的程序,其中在该同时通信中交换利用所述会话密钥保护的消息,其中所述程序使得所述计算机实现:
参数选择功能,用于选择用于共享所述会话密钥的参数,其中所述参数选择功能作为用于在所述同时通信中共享所述会话密钥的手续选择所述参数;
成员信息生成功能,用于通过使用由所述参数选择单元选择的参数、预先公开的公开参数、预先分派给所述计算机的私用密钥、以及预先分派给参与装置的公共密钥来生成用于发送被所述参与装置用作临时密钥的参数的成员信息,其中所述参与装置是参与所述同时通信的信息处理装置;
会话信息生成功能,用于通过使用所述成员信息、由所述参数选择单元选择的参数、所述公开参数和所述私用密钥来生成用于标识所述同时通信和生成用于所述同时通信的会话密钥的会话信息;
会话信息获得功能,用于从各个所述参与装置分别获得由各个所述参与装置生成的其他会话信息;以及
会话密钥生成功能,用于通过使用由所述程序生成的会话信息和由所述参与装置生成的会话信息来生成所述会话密钥。
24.一种用于能够在共享会话密钥后与加密装置和其他信息处理装置执行同时通信的计算机的程序,其中在该同时通信中交换利用所述会话密钥保护的消息,其中所述程序使得所述计算机实现:
会话信息获得功能,用于获得从加密装置发送来的用于发送被参与同时通信的参与装置用作临时密钥的参数的会话信息,其中所述会话信息被用来生成用于所述同时通信的会话密钥并且标识所述同时通信,其中所述同时通信是与所述加密装置执行的,并且其中所述会话信息获得功能还获得与从所述加密装置发送来的会话信息不同的、从参与所述同时通信的其他参与装置发送来的会话信息;
临时密钥计算功能,用于通过使用从所述加密装置发送来的会话信息、预先分派给所述加密装置的公共密钥、预先分派的私用密钥、以及预先公开的公开参数来计算临时密钥,其中所述临时密钥是由所述加密装置设定来用于所述同时通信中的;
参数选择功能,用于选择用来计算由所述计算机生成的、将被发送到所述加密装置的会话信息的参数;
会话信息生成功能,用于通过使用所选择的参数、所述公开参数、所述私用密钥、以及从所述加密装置发送来的会话信息,来生成被发送到所述加密装置和所述其他参与装置的会话信息;以及
会话密钥生成功能,用于通过使用由所述计算机生成的会话信息、从所述加密装置发送来的会话信息以及从所述其他参与装置发送来的会话信息来生成所述会话密钥。
25.一种密钥共享系统,包括:
加密装置,包括:
参数选择单元,用于选择用于与进行同时通信的其他信息处理装置共享会话密钥的参数,其中所述同时通信是在共享所述会话密钥后进行的,在该同时通信中交换利用所述会话密钥保护的消息,其中所述参数选择单元作为用于在所述同时通信中共享所述会话密钥的手续而选择所述参数;
成员信息生成单元,用于通过使用由所述参数选择单元选择的参数、预先公开的公开参数、预先分派给所述加密装置的私用密钥、以及预先分派给参与装置的公共密钥来生成用于发送被所述参与装置用作临时密钥的参数的成员信息,其中所述参与装置是参与所述同时通信的信息处理装置;
会话信息生成单元,用于通过使用所述成员信息、由所述参数选择单元选择的参数、所述公开参数和所述私用密钥来生成用于标识所述同时通信和生成用于所述同时通信的会话密钥的会话信息;
会话信息获得单元,用于从各个所述参与装置分别获得由各个所述参与装置生成的其他会话信息;以及
会话密钥生成单元,用于通过使用由所述加密装置生成的会话信息和由所述参与装置生成的会话信息来生成所述会话密钥,以及
密钥处理装置,包括:
会话信息获得单元,用于获得从所述加密装置发送来的会话信息并且还获得与从所述加密装置发送来的会话信息不同的、从参与所述同时通信的其他参与装置发送来的会话信息;
临时密钥计算单元,用于通过使用从所述加密装置发送来的会话信息、预先分派给所述加密装置的公共密钥、预先分派给所述密钥处理装置的私用密钥、以及预先公开的公开参数来计算临时密钥,其中所述临时密钥是由所述加密装置设定来用于所述同时通信中的;
参数选择单元,用于选择用来计算由所述密钥处理装置生成的、将被发送到所述加密装置的会话信息的参数;
会话信息生成单元,用于通过使用由所述参数选择单元选择的参数、所述公开参数、所述私用密钥、以及从所述加密装置发送来的会话信息,来生成被发送到所述加密装置和所述其他参与装置的会话信息;以及
会话密钥生成单元,用于通过使用由所述密钥处理装置生成的会话信息、从所述加密装置发送来的会话信息以及从所述其他参与装置发送来的会话信息来生成所述会话密钥。
CN2009801401603A 2008-10-22 2009-10-21 密钥共享系统 Pending CN102177677A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008-272201 2008-10-22
JP2008272201 2008-10-22
PCT/JP2009/068147 WO2010047356A1 (ja) 2008-10-22 2009-10-21 鍵共有システム

Publications (1)

Publication Number Publication Date
CN102177677A true CN102177677A (zh) 2011-09-07

Family

ID=42119393

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801401603A Pending CN102177677A (zh) 2008-10-22 2009-10-21 密钥共享系统

Country Status (4)

Country Link
US (1) US20110194698A1 (zh)
JP (1) JPWO2010047356A1 (zh)
CN (1) CN102177677A (zh)
WO (1) WO2010047356A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103797750A (zh) * 2011-09-20 2014-05-14 皇家飞利浦有限公司 组成员对组秘密的管理
CN107113168A (zh) * 2015-01-16 2017-08-29 日本电信电话株式会社 密钥交换方法、密钥交换系统、密钥装置、终端装置和程序
CN109417472A (zh) * 2016-07-19 2019-03-01 日本电信电话株式会社 通信终端、服务器装置、程序
CN109727128A (zh) * 2018-12-07 2019-05-07 杭州秘猿科技有限公司 一种基于多个硬件钱包的资产管理方法及系统
CN111587557A (zh) * 2017-12-11 2020-08-25 空客防务和空间简易股份有限公司 安全通信方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100670017B1 (ko) * 2004-12-31 2007-01-19 삼성전자주식회사 조합에 기반한 브로드캐스트 암호화 방법
JP5491638B2 (ja) * 2010-10-26 2014-05-14 日本電信電話株式会社 代理計算システム、計算装置、能力提供装置、代理計算方法、能力提供方法、プログラム、及び記録媒体
US8611544B1 (en) 2011-01-25 2013-12-17 Adobe Systems Incorporated Systems and methods for controlling electronic document use
US9137014B2 (en) * 2011-01-25 2015-09-15 Adobe Systems Incorporated Systems and methods for controlling electronic document use
US10631134B2 (en) * 2012-11-29 2020-04-21 Red Hat, Inc. Distributing data between mobile services
US9215075B1 (en) 2013-03-15 2015-12-15 Poltorak Technologies Llc System and method for secure relayed communications from an implantable medical device
CN103796199B (zh) * 2014-02-19 2015-06-17 郑州轻工业学院 移动非平衡网络中可认证非对称群组秘钥协商方法
US9454787B1 (en) * 2014-03-04 2016-09-27 Stephen M. Dorr Secure membership data sharing system and associated methods
US9231965B1 (en) * 2014-07-23 2016-01-05 Cisco Technology, Inc. Traffic segregation in DDoS attack architecture
CN104219051B (zh) * 2014-08-20 2018-04-13 北京奇艺世纪科技有限公司 一种群组内消息的通信方法和系统
US10218698B2 (en) * 2015-10-29 2019-02-26 Verizon Patent And Licensing Inc. Using a mobile device number (MDN) service in multifactor authentication
DE112017008311T5 (de) * 2017-12-29 2020-09-17 Intel Corporation Technologien zur internet-der-dinge-schlüsselverwaltung
CN115314203B (zh) * 2022-10-11 2022-12-20 南京易科腾信息技术有限公司 群组密钥协商方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2868759B1 (ja) * 1998-03-17 1999-03-10 株式会社高度移動通信セキュリティ技術研究所 鍵更新方法
US6343280B2 (en) * 1998-12-15 2002-01-29 Jonathan Clark Distributed execution software license server
WO2003036860A1 (fr) * 2001-10-19 2003-05-01 Pioneer Corporation Systeme et procede de commande de dispositif electronique, dispositif electronique et appareil de commande
KR100571820B1 (ko) * 2003-10-20 2006-04-17 삼성전자주식회사 신원 정보를 기반으로 하는 암호 시스템에서의 컨퍼런스세션 키 분배 방법
US7725721B2 (en) * 2004-11-18 2010-05-25 Cisco Technology, Inc. Method and system for transferring software and hardware feature licenses between devices
US8126814B2 (en) * 2004-11-18 2012-02-28 Cisco Technology, Inc. Method and system for installing software and hardware feature licenses on devices
KR100670017B1 (ko) * 2004-12-31 2007-01-19 삼성전자주식회사 조합에 기반한 브로드캐스트 암호화 방법
US8086850B2 (en) * 2006-06-23 2011-12-27 Honeywell International Inc. Secure group communication among wireless devices with distributed trust
CN101272240B (zh) * 2007-03-21 2013-01-23 华为技术有限公司 一种会话密钥的生成方法、系统和通信设备
US7907735B2 (en) * 2007-06-15 2011-03-15 Koolspan, Inc. System and method of creating and sending broadcast and multicast data
US7496539B1 (en) * 2008-05-15 2009-02-24 International Business Machines Corporation Systems, methods and computer products for providing tape library dynamic price performance enhancement feature
CN100581169C (zh) * 2008-08-21 2010-01-13 西安西电捷通无线网络通信有限公司 一种基于单播会话密钥的组播密钥分发方法及其更新方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103797750A (zh) * 2011-09-20 2014-05-14 皇家飞利浦有限公司 组成员对组秘密的管理
CN107113168A (zh) * 2015-01-16 2017-08-29 日本电信电话株式会社 密钥交换方法、密钥交换系统、密钥装置、终端装置和程序
CN109417472A (zh) * 2016-07-19 2019-03-01 日本电信电话株式会社 通信终端、服务器装置、程序
CN111587557A (zh) * 2017-12-11 2020-08-25 空客防务和空间简易股份有限公司 安全通信方法
CN109727128A (zh) * 2018-12-07 2019-05-07 杭州秘猿科技有限公司 一种基于多个硬件钱包的资产管理方法及系统
CN109727128B (zh) * 2018-12-07 2020-10-09 杭州秘猿科技有限公司 一种基于多个硬件钱包的资产管理方法及系统

Also Published As

Publication number Publication date
JPWO2010047356A1 (ja) 2012-03-22
WO2010047356A1 (ja) 2010-04-29
US20110194698A1 (en) 2011-08-11

Similar Documents

Publication Publication Date Title
CN102177677A (zh) 密钥共享系统
US10122710B2 (en) Binding a data transaction to a person&#39;s identity using biometrics
CN104796265B (zh) 一种基于蓝牙通信接入的物联网身份认证方法
US11880831B2 (en) Encryption system, encryption key wallet and method
EP1908202B1 (en) Systems, method, integrated circuit chip and computer program product for ambiguity envelope encryption
CN107196926B (zh) 一种云外包隐私集合比较方法与装置
CN110324143A (zh) 数据传输方法、电子设备及存储介质
WO2017201809A1 (zh) 终端通信方法及系统
US20140355757A1 (en) Encryption / decryption of data with non-persistent, non-shared passkey
US9438589B2 (en) Binding a digital file to a person&#39;s identity using biometrics
US20110145576A1 (en) Secure method of data transmission and encryption and decryption system allowing such transmission
EP2416524A2 (en) System and method for secure transaction of data between wireless communication device and server
CN107612934A (zh) 一种基于密钥分割的区块链移动端计算系统和方法
CN112906030B (zh) 基于多方全同态加密的数据共享方法和系统
CN103685225A (zh) 信息处理设备、信息处理方法、以及程序
US20080195867A1 (en) Authenticating security parameters
Abusukhon et al. A novel network security algorithm based on private key encryption
CN102024123A (zh) 一种云计算中虚拟机镜像导入方法及装置
CN106452770A (zh) 一种数据加密方法、解密方法、装置和系统
CN112383397A (zh) 一种基于生物特征的异构签密通信方法
CN107637013B (zh) 密钥交换方法、密钥交换系统、密钥分发装置、通信装置、及记录介质
CN106453253A (zh) 一种高效的基于身份的匿签密方法
CN112702582B (zh) 一种基于sm2的监控视频安全传输方法和设备
US20210158444A1 (en) Method and Apparatus for a Blockchain-Agnostic Safe Multi-Signature Digital Asset Management
CN107682156A (zh) 一种基于sm9算法的加密通信方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110907