WO2009043266A1 - Method and device for group key agreement - Google Patents

Method and device for group key agreement Download PDF

Info

Publication number
WO2009043266A1
WO2009043266A1 PCT/CN2008/072434 CN2008072434W WO2009043266A1 WO 2009043266 A1 WO2009043266 A1 WO 2009043266A1 CN 2008072434 W CN2008072434 W CN 2008072434W WO 2009043266 A1 WO2009043266 A1 WO 2009043266A1
Authority
WO
WIPO (PCT)
Prior art keywords
group
key
intermediate value
users
new
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.)
Ceased
Application number
PCT/CN2008/072434
Other languages
English (en)
French (fr)
Inventor
Chunbo Ma
Jianhua Li
Yue Wu
Ya Liu
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.)
Huawei Technologies Co Ltd
Shanghai Jiao Tong University
Original Assignee
Huawei Technologies Co Ltd
Shanghai Jiao Tong University
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 Huawei Technologies Co Ltd, Shanghai Jiao Tong University filed Critical Huawei Technologies Co Ltd
Publication of WO2009043266A1 publication Critical patent/WO2009043266A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

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/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
    • 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

Definitions

  • the present invention relates to the field of communications, and in particular, to a method and device for negotiating a group key.
  • Ad Hoc network is a multi-hop, self-organizing, topology dynamic network, nodes move frequently, power reserves are limited, and the trust relationship between nodes and wireless transmission links are relatively fragile. These characteristics make for Ad Hoc networks.
  • the design of the group key agreement protocol is quite different from the traditional solution. In the Ad Hoc network, in order to ensure communication security, it is usually necessary to encrypt and then transmit the message. Since the cryptosystem has an advantage in efficiency, the use of the group shared key can greatly reduce the message processing. Complexity.
  • the Ad Hoc network is also a dynamic peer group, which lacks fixed trusted third-party support. Therefore, the group session key used to encrypt messages must be established through negotiation of all group members to improve the security and reliability of the group key.
  • the key negotiation protocol of the Ad Hoc network group should also consider the dynamic topology of the network. Therefore, the key agreement protocol is required to implement the forward security and backward security of the key, and can effectively support the joining and exiting of the node.
  • Step 101 Select system parameters, and select two cycles for the user to create a cyclic multiplier on the elliptic curve.
  • G1 and G2 are the generators of the group G1, and the cyclic multiplication groups G1 and G2 have effectively calculated bilinear maps, that is, the product of one element on G1 and one element on G2 is another element on G2. , expressed as Gl xG2 -> G2, where the calculation of the bilinear pair on G1 and G2 is relatively easy, which is called computable.
  • the bilinear mapping of g and g be recorded as Q, and Q be the generator of the multiplicative group G2.
  • the protocol has three algorithms, namely 3-group key negotiation algorithm (3-G), 2-group key negotiation algorithm (2-G) and group key negotiation algorithm (KG).
  • each group selects two groups G1 and G2 which are q-based on the elliptic curve, where G1 is the addition cycle group, G2 is the multiplication cycle group, and P is the generator of the group G1. ; These two groups have computable bilinear maps. In addition, it is assumed that the bilinear map of P and P is denoted by W, and W is also a generator of the group G2.
  • 3-group key negotiation algorithm (3-G) There are three groups of users for key negotiation, namely Ul, U2, U3, and their temporary private keys are Sl, S2, S3. Among the three groups of users, each group has one representative, without loss of generality. Let member A1 be the representative of U1, member A2 be the representative of U2, and member A3 be the representative of U3. Member A1 performs the following calculations:
  • Member A1 sends P1 and T1 to each member of the other group.
  • Member A2 and member A3 also perform the above steps.
  • Member A2 sends P2 and T2 to each member of the other group, and member A3 sends P3 and T3 to each member of the other group.
  • Al sends Kl and T(sAl) to the rest of the users.
  • the user in U1 verifies P2 through T2.
  • A1 selects the random number sAl.
  • Al selects this random number to make the operation between two members like three members.
  • the user in U2 performs the above operation and will get the same shared key Key.
  • the group key negotiation algorithm KG is described below, and the key negotiation algorithm is a recursive algorithm.
  • the description is as follows:
  • the input parameters are m and group UCi+l), U(i+2), ..., UCi+m;).
  • m is the size of the user in the group.
  • Uj be equal to j, where n ⁇ j ⁇ l;
  • the above (2-G) algorithm is called, and the input parameters are U(i+1), U(i+2) and s(i+l), s(i+2), shared key Key. Is the negotiation key of the group U i+l) and U i+2);
  • nl the smallest integer greater than m divided by 3
  • n3 the smallest integer less than m divided by 3
  • n2 m-nl-n3.
  • the loop variable j performs the following process from 1 to 3:
  • the input parameters are YU1, YU2, YU3, Ysl, Ys2 and Ys3.
  • KEY is equal to the session key negotiated by YU1, YU2 and YU3.
  • the disadvantages of the above three schemes are: The algorithm of key negotiation is generated by the recursive call, which increases the complexity of the algorithm; the number of communication rounds of key negotiation increases with the number of participants, and the above three schemes not only increase The delay also increases the amount of communication in the system. Summary of the invention
  • the embodiment of the present invention provides a method and a device for negotiating a group key.
  • the technical solution is as follows:
  • An embodiment of the present invention provides a method for negotiating a group key.
  • the Methods include:
  • Step A The user generates a public value according to the secret index, and exchanges the public value with two adjacent users on the left side and two adjacent users on the right side respectively;
  • Step B After receiving the public value sent by four neighboring users, the user generates an intermediate value according to the secret index in the public value and the secret index of the public value, and broadcasts an intermediate message carrying the intermediate value;
  • Step C After receiving the intermediate message of other users, the user verifies whether the intermediate value in the intermediate message is correct. After the verification is passed, the session key is generated according to the intermediate value of the other user and the intermediate value thereof. The session key is used as a group key;
  • the method includes:
  • Step A1 Separating one user from the group, taking the separated user as a specific user; forming the remaining users in the group into a new group, and each user in the new group performs the step A To the step C;
  • Step B1 The specific user exchanges a public value carrying a secret index with a plurality of users in the new group; the specific user and the plurality of users generate a new middle according to a secret index in the received public value.
  • Step C1 The plurality of users encrypt the session key by using the new intermediate value, and send the encrypted ciphertext to the specific user; after receiving the ciphertext, the specific user uses the Decrypting the ciphertext by a new intermediate value to obtain the session key;
  • Step D1 the plurality of users and the specific user encrypt the generated new intermediate value by using the session key, and broadcast the encrypted new intermediate value;
  • Step E1 The specific user and each user in the new group generate a new group key according to the new intermediate value and the session key.
  • An embodiment of the present invention further provides a device for negotiating a group key, where the device includes:
  • An information interaction module configured to generate a public value according to a secret index, exchange public values with two adjacent devices on the left side and two adjacent devices on the right side, and perform information interaction with other devices;
  • the intermediate value generating module is configured to extract a secret index in the public value received by the information interaction module, generate an intermediate value according to the secret index in the public value and the secret index of the device itself, and notify the information interaction module to broadcast Carrying an intermediate message of the intermediate value;
  • a group key generation module configured to verify an intermediate value in the intermediate message received by the information interaction module, and after the verification is passed, generate a session key according to an intermediate value of the other device and an intermediate value thereof, The session key is used as the group key.
  • the device of the present invention further provides another device for negotiating a group key, where the device includes:
  • An information interaction module configured to generate a public value according to a secret index, respectively, with two adjacent devices on the left side and a right side Two adjacent devices exchange public values and exchange information with other devices;
  • An intermediate value generating module configured to extract a secret index in a public value received by the information interaction module, generate an intermediate value according to the secret index in the public value and a secret index of the device itself, and broadcast through the information interaction module Carrying an intermediate message of the intermediate value;
  • a session key generation module configured to verify an intermediate value in the intermediate message received by the information interaction module, and after the verification is passed, generate a session key according to the received intermediate value and an intermediate value thereof;
  • a new intermediate value generating module configured to notify the information interaction module to exchange a public value carrying a secret index with a specific device, and generate a new middle according to the received secret index in the public value of the specific device and the secret index of the device itself Value
  • a group key generation module configured to generate a new group key according to the new intermediate value generated by the new intermediate value generation module and the session key.
  • the embodiment of the present invention further provides a device for negotiating a group key, where the device includes: an information interaction module, configured to generate a public value according to a secret index, and exchange public values with multiple devices in the group respectively. And interacting with other devices;
  • the intermediate value generating module is configured to extract a secret index in the public value received by the information interaction module, and generate an intermediate value according to the secret index in the public value and the secret index of the device itself;
  • a session key decryption module configured to decrypt the ciphertext received by the information interaction module by using an intermediate value generated by the intermediate value generation module, to obtain a session key
  • the intermediate value encryption module is configured to encrypt the intermediate value generated by the intermediate value generation module by using the session key decrypted by the session key decryption module, and broadcast the encrypted intermediate value by using the information interaction module.
  • each user exchanges an intermediate message carrying a secret index with two users adjacent to the left side and two adjacent users on the right side, thereby generating an intermediate value, and exchanging intermediate values with other users to generate a session key.
  • the number of communication rounds in the key negotiation process is small, and the real-time communication is improved.
  • the number of rounds of key negotiation is independent of the number of members, and the amount of traffic for key negotiation is reduced.
  • FIG. 2 is a flowchart of a method for negotiating a group key when the total number of users in the group is an odd number provided in Embodiment 1 of the present invention
  • FIG. 3 is a flowchart of a method for negotiating a group key when the total number of users in a group is even in the first embodiment of the present invention.
  • FIG. 4 is a flow chart showing an example of a method for negotiating a group key when the total number of users in the group is an odd number provided in Embodiment 1 of the present invention
  • FIG. 5 is a flow chart showing an example of a method for negotiating a group key when the total number of users in the group is even in the group provided by the embodiment 1 of the present invention
  • FIG. 6 is a flowchart of a method for negotiating a group key when the group number of groups is 5 according to Embodiment 1 of the present invention
  • FIG. 7 is a structural diagram of a device for negotiating a group key according to Embodiment 2 of the present invention
  • FIG. 8 is a structural diagram of another apparatus for negotiating a group key according to Embodiment 3 of the present invention.
  • FIG. 9 is a structural diagram of an apparatus for negotiating a group key according to Embodiment 4 of the present invention. detailed description
  • the system parameters of the negotiated group key scheme include: two cyclical groups G1 and G2, which are q, and are established on an elliptic curve, and g is a generator of the group G1, and the two multiplications
  • the group has a computable bilinear map, and the bilinear map of g and g is denoted as Q.
  • This embodiment provides a method for negotiating a group key.
  • the method includes:
  • Step 201 The user generates a public value according to the secret index, and exchanges the public value with two adjacent users on the left side and two adjacent users on the right side respectively;
  • Step 202 After receiving the public value sent by four neighboring users, the user generates an intermediate value according to the secret index in the received intermediate message and its own secret index, and broadcasts an intermediate message carrying the intermediate value;
  • Step 203 After receiving the intermediate message of the other user, the user verifies whether the intermediate value in the received intermediate message is correct. After the verification is passed, the session key is generated according to the intermediate value of the other user and the intermediate value thereof, and the session is generated. The key acts as a group key.
  • the method includes:
  • Step 301 Separate a user from the group, and use the separated user as a specific user; group the remaining users in the group into a new group, and the total number of users in the new group is an odd number, and each user performs Step 201 to step 203: acquiring a session key;
  • Step 302 The specific user exchanges a public value carrying a secret index with multiple users in the new group; The user and the plurality of users generate a new intermediate value according to the secret index in the received public value;
  • Step 303 The multiple users encrypt the session key with a new intermediate value, and send the encrypted ciphertext to the specific user. After receiving the ciphertext, the specific user decrypts the ciphertext with a new intermediate value to obtain a session. Key
  • Step 304 The plurality of users and the specific user encrypt the new intermediate value with the session key, and broadcast the encrypted new intermediate value;
  • Step 305 Each user in the specific user and the new group according to the new intermediate value and the session The key generates a new group key.
  • Step 401 The user Ui selects a random number, and uses the selected random number as a secret index, calculates a public value according to the secret index and the system parameter g, and sends the public value to the nearest two users and the right side of the left side thereof. Neighboring two users. This step is specifically:
  • the user Ui selects the random number X, where is the order of g, and the asterisk indicates that 0 is removed.
  • Calculate the public value Xi g xl and send Xi to the users U(i-2), U(i-1), U(i+1) and U(i+2), which are sent to the left side respectively. Neighbor two users and the nearest two users on the right.
  • Step 404 After receiving the intermediate message sent by all other users, the user Ui extracts the intermediate values K1, ⁇ 2, ..., K(il), K(i+1), ..., Kn, and then verifies the intermediate value Kl. ⁇ 2, ..., ⁇ is correct.
  • Li is finally obtained, that is, the value of R(i-2). If the user Li calculated by the above method is the same as the one calculated in step 202, it means that the intermediate values K1, ⁇ 2, ..., Kn he received are correct, otherwise it is incorrect, and the group key is not performed.
  • Step 405 After verifying that the intermediate values Kl, ⁇ 2, ..., Kn are correct, according to the recursive method in step 404, Rl, R2, and Rn will be obtained. For example, taking the current user Ui as U1 as an example, R1—>R3, R3—>R5, ,
  • R(n-2)->R(n) then, from R(n)->R2, from R2—>R4, , R(n-3)->R(nl), pushed by other users
  • the guiding process is similar.
  • the number n of users in the above method is an odd number. If the number of users in the group is an even number, it is assumed that there are n+1 users at this time. According to the recursive method in the above step 404, the odd users U1, U3, . .., U (n) will derive Rl,
  • Step 501 Select n users from n+1 users, respectively, users Ul, U2, ..., Un.
  • Steps 502 to 506 are the same as steps 401 to 405 described above, and are not described herein again.
  • Step 507 After the user U1, U2, ..., Un obtains the group session key S of (Ul, U2, ..., Un) by the above method, selects from the users U1, U2, ..., Un A plurality of users interact with the user U (n+1).
  • the users U1 and Un are selected, and the users U1 and Un respectively send the public values XI and Xn to U(n+1).
  • Step 509 The user U1 and Un respectively use the intermediate value K(n+1) as the key to encrypt the session key S, and send the encrypted ciphertext to the user U(n+1);
  • Step 510 After receiving the ciphertext, the user U(n+1) decrypts the intermediate key K(n+1) to obtain the session key S.
  • Step 511 The users Ul, Un, and U(n+1) respectively use S as the key to encrypt the intermediate value K(n+1), and broadcast the encrypted ciphertext to other users;
  • the specific group key negotiation process is as follows :
  • the users Ul and Un encrypt the group key ⁇ with S as the key, and send the ciphertext to the (U2, ..., U(n-1)) 0 in the form of a broadcast so that the user (Ul, ... Two secret values are shared in , Un): group session key S and group key ⁇ .
  • the user Ul, ..., Un connects the group session key S and the group key KT, and then performs a hash operation to obtain the current group key KK.
  • U1 and Un use KT to encrypt KK for the group key and send it to the users Cl, C2, ..., Cj, so that the group of users has the group key KK.
  • C1 be U(n+1)
  • C1 randomly select the random number x(n+l)
  • calculate the public value X i+l) g x(n+1)
  • publicize the value X(n+1) ) is sent to users U1 and Un.
  • U1 and Un send the public values XI and Xn to U(n+ 1).
  • U1 and Un encrypt the KK with the KT key and send it to the user Cl, so that the user owns the key ⁇ .
  • Step 601 The users U1, U2, U3, U4, U5 respectively select a random number, and respectively calculate the public value according to the selected random number and the system parameter g, and then send the public value to the two adjacent users and the right side thereof. Two adjacent users on the side. Specifically:
  • U4 U5; Similarly, user U2 sends X2 to U1, U5 and U3, U4; user U3 sends X3 to U1, U2 and U4 and U5; user U4 sends X4 to U2, U3 and U5, U1 User U5 sends X5 to U3, U4 and Ul, U2, which constitutes a user chain consisting of 5 users.
  • Step 604 After receiving the intermediate values ⁇ 2, ⁇ 3, ⁇ 4, ⁇ 5 sent by other users, the user U1 verifies the intermediate values ⁇ 2, ⁇ 3, ⁇ 4, ⁇ 5.
  • Rl is equal to L3, R2 is equal to L4, R3 is equal to L5, R4 is equal to L5, R4 is equal to L1, and R5 is equal to L2. Therefore, user U1 can obtain R3 by the product of R1 and K3, and the product of R3 and K5 obtains R5, and the product of R5 and K2 is obtained.
  • User U1 compares R1 calculated in this step with R1 calculated in step 302. If they are the same, then K2, ⁇ 3, ⁇ 4, and ⁇ 5 are correct, otherwise they are wrong.
  • the group key can be generated as follows:
  • Ul and U5 encrypt the KK with KT as the key and send it to the user U6, so that U6 also has the group key KK.
  • the group key negotiation process is as follows:
  • User U6 exchanges public values with U7, Ul and U5, while user U7 exchanges public values with U1, U5 and P U6.
  • User U6, U7 encrypts KT' with S' as the key, and sends the encrypted ciphertext to user U5.
  • the user U6, U7 encrypts the KT with KT' as a key and sends the encrypted ciphertext to the user U1, so that the user U1 also has ⁇ .
  • the users U1 and U5 encrypt the KT with S as the key, and send the ciphertext to the user U2, U3, U4 in the form of a broadcast, so that two secret values S are shared in the users U1, U2, U3, U4, U5. And KT.
  • users U1 and U5 encrypt KK with KT as the key and send the ciphertext to users U6 and U7 so that the two users also have the group key KK.
  • the device provides a device for negotiating a group key, including:
  • the information interaction module 701 is configured to generate a public value according to the secret index, exchange public values with two adjacent devices on the left side and two adjacent devices on the right side, and perform information interaction with other devices;
  • the intermediate value generating module 702 is configured to extract a secret index in the public value received by the information interaction module 701, generate an intermediate value according to the secret index in the public value and the secret index of the device itself, and notify the information interaction module 701 to broadcast the intermediate value.
  • the group key generation module 703 is configured to verify the intermediate value in the intermediate message received by the information interaction module 701. After the verification is passed, the session key is generated according to the intermediate value of the other device and the intermediate value of the device, and the session key is used as the session key. Group key.
  • the device provides a device for negotiating a group key, including:
  • the information interaction module 801 is configured to generate a public value according to the secret index, exchange public values with two adjacent devices on the left side and two adjacent devices on the right side, and perform information interaction with other devices;
  • the intermediate value generating module 802 is configured to extract a secret index in the public value received by the information interaction module 801, generate an intermediate value according to the secret index in the public value and the secret index of the device itself, and broadcast the intermediate value through the information interaction module 801.
  • the session key generation module 803 is configured to verify an intermediate value in the intermediate message received by the information interaction module 801, and after the verification is passed, generate a session key according to the received intermediate value and the intermediate value thereof;
  • the new intermediate value generating module 804 is configured to notify the information interaction module 801 to exchange the public value carrying the secret index with the specific device, and generate a new intermediate value according to the received secret index in the public value of the specific device and the secret index of the device itself;
  • the group key generation module 805 is configured to generate a new group key according to the new intermediate value generated by the new intermediate value generation module 504 and the session key. Further, the above device further includes:
  • a session key encryption module configured to encrypt the session key with the new intermediate value generated by the new intermediate value generation module 804, and send the encrypted ciphertext to the specific device through the information interaction module 801;
  • the intermediate value encryption module is configured to encrypt the new intermediate value generated by the new intermediate value generating module 804 with the session key, and broadcast the encrypted new intermediate value through the information interaction module 801.
  • the device provides a device for negotiating a group key, including:
  • the information interaction module 901 is configured to generate a public value according to a secret index, exchange a public value with a plurality of devices in the group, and perform information interaction with other devices;
  • the intermediate value generating module 902 is configured to extract a secret index in the public value received by the information interaction module 901, and generate an intermediate value according to the secret index in the public value and the secret index of the device itself;
  • the session key decryption module 903 is configured to decrypt the ciphertext received by the information interaction module 901 by using the intermediate value generated by the intermediate value generating module 902 to obtain a session key;
  • the intermediate value encryption module 904 is configured to encrypt the intermediate value generated by the intermediate value generation module 902 with the session key decrypted by the session key decryption module 903, and broadcast the encrypted intermediate value through the information interaction module 901. All or part of the above steps may be completed by an instruction to control the corresponding hardware, and the instructions may be stored in a storage medium such as a hard disk or a memory of a computer or a server.
  • the technical solution provided by the above embodiment is based on an elliptic curve cryptosystem, an elliptic curve based cryptosystem and
  • RS A and El Gamal have higher single-bit security than cryptosystems, and they are more competitive with RSA and El Gamal systems in the future when computing power is gradually increased.
  • the system can complete the key negotiation process under a fixed number of communication rounds, that is, the number of communication rounds negotiated by the key is independent of the number of members in the group.
  • the present invention has the following advantages:
  • the number of communication rounds used in the key negotiation process is small. For example, there are n users in the group. If the prior art is used, the key negotiation process needs to perform Log (n) round communication, and using the solution provided by the embodiment of the present invention, only two rounds of communication can be completed. , improve the real-time communication.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

协商组群密钥的方法和设备 技术领域
本发明涉及通信领域, 特别涉及一种协商组群密钥的方法和设备。 背景技术 说
Ad Hoc网络是一种多跳、 自组织、 拓扑结构动态变化的网络, 节点移动频繁, 电能储 备有限,而且节点之间的信任关系以及无线传输链路都比较脆弱,这些特点使得对于 Ad Hoc 网络的组密钥协商协议的设计与传统方案具有很大的不同。 在 Ad Hoc网络中, 为了保证通 信安全, 通常需要对消息进行加密后再传输, 由于对书称密码体制在效率上具有优势, 因此 采用群组共享密钥能在很大程度上降低消息处理的复杂性。 同时, Ad Hoc网络也是一种动 态对等群组, 缺少固定的可信第三方支持, 因此用于加密消息的组会话密钥必须通过所有 组成员协商建立, 提高组密钥的安全可靠性。 另外, Ad Hoc网络组密钥协商协议还应考虑 网络的动态拓扑特性, 所以要求密钥协商协议能够实现密钥的前向安全性以及后向安全性, 并能有效支持节点的加入与退出。
现有技术中有一种 Joux三方密钥协商协议, 以三个用户 Ui , U2和 U3协商一个共享密 钥为例, 参见图 1, 该协议的运行过程如下:
步骤 101 : 选择系统参数, 为每个用户选择两个阶为^ 建立在椭圆曲线上的循环乘群
G1和 G2, g为群 G1的生成子, 并且循环乘群 G1和 G2具有可有效计算的双线性映射, 即 G1上的一个元素与 G2上的一个元素的乘积是 G2上的另外一个元素,表示为 Gl xG2—>G2, 这里在 G1和 G2上的双线性对的计算是比较容易的, 就称作是可计算的。 设 g与 g的双线 性映射记为 Q, Q为乘群 G2的生成子。
步骤 102: U1随机选择 xl e Z *, 然后计算公开值 Rl =gxl, 并将 R1发送给 U2和 U3 ;
U2随机选择 x2e Z , 然后计算公开值 R2 = gx2, 并将 R2发送给 U1和 U3 ; U3随机选择 x3 , 然后计算公开值 R3 =gx3, 并将其发送给 U1和 U2。
步骤 103 : U1根据收到的公开值 R2和 R3及 xl计算三方会话的密钥 Key = Qxlx2x3 ; U2 根据 R1和 R3及 x2计算三方会话的密钥 Key = Qxlx2x3 ; U3根据 R1和 R2及 x3计算三方会 话的密钥 Key = Qxlx2x3
通过上两步的计算, 用户 Ul, U2和 U3得到了相同的会话密钥, 即密钥 Key = Qxlx2x3。 基于 Joux三方密钥协商协议, 现有技术还构造了群密钥协商协议, 下面简单介绍该群 密钥协商协议如下:
该协议有三个算法, 分别是 3—群密钥协商算法(3— G), 2—群密钥协商算法(2— G) 和群密钥协商算法 (KG)。
在密钥协商前, 每个群组分别选择两个阶为 q的建立在椭圆曲线上的群 G1和 G2, 其 中, G1为加法循环群, G2为乘法循环群, P为群 G1的生成子; 这两个群有可计算的双线 性映射。 另外, 设 P与 P的双线性映射记为 W, W也是群 G2的生成子。
设有 n个用户进行密钥协商, 用 U表示用户集合的子集。 对于每一个用户 i, 其公钥为 Qi,该公钥与其身份相关。系统自身选取一个随机数 s,然后计算 sP作为系统的公钥 P(pub), 而各个用户的长期私钥 Si = sQi。
这里先介绍 3—群密钥协商算法 (3— G): 设有三组用户进行密钥协商, 分别为 Ul, U2, U3, 其临时私钥分别为 Sl, S2, S3。在这三组用户中, 每组有一个代表, 不失一般性, 设成员 A1为 U1的代表, 成员 A2为 U2的代表, 成员 A3为 U3的代表。 成员 A1进行如 下计算:
1 ) 计算临时私钥 S1和 P的乘积 Pl, 即 P1 =PS1 ;
2) 计算 PI的 Hash函数得到 Dl, 即 D1 =H (PI ); 然后以 D1乘以 SI并加上临时私 钥 S1和 P1的乘积得到 Tl, 即 T1 =D1S1 + S1P1 ;
3 ) 成员 A1将 P1和 T1发送给其它组群中的各个成员。
成员 A2和成员 A3也进行上述步骤, 成员 A2将 P2和 T2发送给其它组群中的各个成 员, 成员 A3将 P3和 T3发送给其它组群中的各个成员。
最后, U1 内的成员根据收到的 P2和 T2、 Ρ3和 Τ3, 以及临时私钥 S1生成共享密钥 Key=H (WS1S2S3); U2内的成员根据收到的 PI和 Tl、 P3和 T3, 以及临时私钥 S2生成共 享密钥 Key=H (WS1S2S3); U3内的成员根据收到的 P1和 Tl、 Ρ2和 Τ2, 以及临时私钥 S3 生成共享密钥 Key=H (WS1S2S3)。
下面介绍 2—群密钥协商协议算法 (2— G):
设有两组用户参与该算法, 分别为 Ul, U2, 其临时私钥分别为 Sl, S2。 设 Ul的代表 为 Al, U2的代表为 A2。 成员 Al进行如下计算:
1 ) A1计算临时私钥 S1和 P的乘积 Pl, 即 P1 =PS1 ;
2) 计算 PI的 Hash函数得到 Dl, 即 D1 =H (PI ); 然后以 D1乘以 SI并加上临时私 钥 S1和 P1的乘积得到 Tl, 即 T1 =D1S1 + S1P1 ;
3 ) 成员 A1将 P1和 T1发送给 U2的各个用户。 同样的 A2进行类似的计算, 并将 P2和 T2发送给 U1的用户。
4) A1选取随机数 sAl e Z , 并计算 Kl = ( sAl ) P;
5 ) Al首先计算 Kl的 Hash函数, 记做 H (Kl ),然后以 H (Kl )乘以 SI并加上(sAl ) 和 Kl的乘积, 这里记做 T ( sAl ), T ( sAl ) =H(K1)S1 + ( sAl ) Kl ;
6) Al将 Kl和 T(sAl)发送给其余的用户。
完成以上步骤后, U1中的用户通过 T2对 P2进行验证, 验证通过后, 再根据 P2计算 共享密钥 Key=H (WslS2sA1 ), 即以 Sl, S2和 sAl的乘积为幂, W为底的指数, 然后进行 Hash运算。
这里只有 A1选择了随机数 sAl。 Al选择这个随机数会使两个成员之间的运算象三个 成员, 同理, U2中的用户进行上述运算, 将得到相同的共享密钥 Key。
下面介绍群密钥协商算法 KG, 该密钥协商算法是一个递规算法。 描述如下: 输入的参数为 m和组群 UCi+l), U(i+2), ..., UCi+m;)。 其中, m表示组群中用户的规 模。 例如: 组群由用户 Ul, U2, U3, U4, U5构成, 那么当 i = 2, m = 2时, 组群就是用 户集合的一个子集, 包括用户 U3, U4。 进行该算法时, 令 Uj等于 j, 这里 n≥j≥l ;
如果输入的参数 m= l, 密钥协商后, 共享密钥 Key = sG+l);
如果 m=2, 调用上述 (2—G) 算法, 输入的参数为 U(i+1), U(i+2)和 s(i+l), s(i+2), 共享密钥 Key是组群 U i+l)和 U i+2)的协商密钥;
当 m大于 2时, 设 ηθ为 0, nl为大于 m除以 3的最小整数, n3为小于 m除以 3的最 小整数, n2 = m-nl-n3。 循环变量 j从 1到 3进行如下过程:
进行密钥协商算法 KG, 输入的参数为 nj, U(i+nG-l)+l), ..., U(i+nG-l)+nj);
设 YUj为 U(i+n(j-l)+l), ..., U(i+n(j-l)+nj)的集合; Ysj = Key; nj = n(j-l)十 nj。
调用 3— G算法, 输入的参数为 YU1, YU2, YU3 , Ysl, Ys2和 Ys3。
则 KEY等于 YU1, YU2和 YU3协商的会话密钥。
上述三种方案的缺点是: 密钥协商的算法通过递规调用产生, 增加了算法的复杂度; 密钥协商的通信轮数随着参与者的人数的增加而增加, 上述三种方案不但增加了时延, 还 增大了系统的通信量。 发明内容
为了简化密钥协商过程的通信量, 并缩短密钥协商的时间, 本发明实施例提供了一种 协商组群密钥的方法和设备。 所述技术方案如下:
本发明实施例提供了一种协商组群密钥的方法, 当组群内的用户总数为奇数时, 所述 方法包括:
步骤 A: 用户根据秘密指数生成公开值, 分别与左侧的两个相邻用户和右侧的两个相 邻用户交换公开值;
步骤 B:所述用户收到四个相邻用户发送的公开值后,根据所述公开值中的秘密指数和 自身的秘密指数生成中间值, 广播携带所述中间值的中间消息;
步骤 C:所述用户收到其它用户的中间消息后,验证所述中间消息中的中间值是否正确, 验证通过后, 根据所述其它用户的中间值和自身的中间值生成会话密钥, 将所述会话密钥 作为组群密钥;
当组群内的用户总数为偶数时, 所述方法包括:
步骤 A1 : 从组群中分离出一个用户, 将所分离出的用户作为特定用户; 将组群内的其 余用户组成新的组群, 所述新的组群内每个用户执行所述步骤 A至所述步骤 C;
步骤 B1 : 所述特定用户与所述新的组群内的多个用户交换携带秘密指数的公开值; 所 述特定用户与所述多个用户根据收到的公开值中的秘密指数生成新中间值;
步骤 C1 : 所述多个用户用所述新中间值加密所述会话密钥, 并将加密后的密文发送给 所述特定用户; 所述特定用户收到所述密文后, 用所述新中间值对所述密文解密, 得到所 述会话密钥;
步骤 D1 : 所述多个用户和所述特定用户用所述会话密钥加密所生成的新中间值, 并广 播加密后的所述新中间值;
步骤 E1 : 所述特定用户和所述新的组群内的每个用户根据所述新中间值和所述会话密 钥生成新的组群密钥。
本发明实施例还提供了一种协商组群密钥的设备, 所述设备包括:
信息交互模块, 用于根据秘密指数生成公开值, 分别与左侧的两个相邻设备和右侧的 两个相邻设备交换公开值, 以及与其它设备进行信息交互;
中间值生成模块, 用于提取所述信息交互模块收到的公开值中的秘密指数, 根据所述 公开值中的秘密指数和设备自身的秘密指数生成中间值, 并通知所述信息交互模块广播携 带所述中间值的中间消息;
组群密钥生成模块, 用于验证所述信息交互模块收到的中间消息中的中间值, 验证通 过后, 根据所述其它设备的中间值和自身的中间值生成会话密钥, 将所述会话密钥作为组 群密钥。
本发明实施例还提供了另一种协商组群密钥的设备, 所述设备包括:
信息交互模块, 用于根据秘密指数生成公开值, 分别与左侧的两个相邻设备和右侧的 两个相邻设备交换公开值, 以及与其它设备进行信息交互;
中间值生成模块, 用于提取所述信息交互模块收到的公开值中的秘密指数, 根据所述 公开值中的秘密指数和设备自身的秘密指数生成中间值, 并通过所述信息交互模块广播携 带所述中间值的中间消息;
会话密钥生成模块, 用于验证所述信息交互模块收到的中间消息中的中间值, 验证通 过后, 根据收到的中间值和自身的中间值生成会话密钥;
新中间值生成模块, 用于通知所述信息交互模块与特定设备交换携带秘密指数的公开 值, 并根据接收到的所述特定设备的公开值中的秘密指数和设备自身的秘密指数生成新中 间值;
组群密钥生成模块, 用于根据所述新中间值生成模块生成的新中间值和所述会话密钥 生成新的组群密钥。
进一步地, 本发明实施例还提供了一种协商组群密钥的设备, 所述设备包括: 信息交互模块, 用于根据秘密指数生成公开值, 分别与组群中的多个设备交换公开值, 以及与其它设备进行信息交互;
中间值生成模块, 用于提取所述信息交互模块收到的公开值中的秘密指数, 根据所述 公开值中的秘密指数和设备自身的秘密指数生成中间值;
会话密钥解密模块, 用于利用所述中间值生成模块生成的中间值解密所述信息交互模 块收到的密文, 得到会话密钥;
中间值加密模块, 用于利用所述会话密钥解密模块解密出的会话密钥对所述中间值生 成模块生成的中间值加密, 并通过所述信息交互模块广播加密后的所述中间值。
本发明实施例提供的技术方案的有益效果是:
本发明实施例中每个用户与左侧相邻的两个用户和右侧的两个相邻用户交换携带秘密 指数的中间消息, 进而生成中间值, 与其它用户交换中间值生成会话密钥, 使密钥协商过 程中的通信轮数较少, 提高了通信的实时性。 且密钥协商的轮数与成员的人数无关, 减小 密钥协商的通信量。 附图说明
图 1是现有技术中的 Joux三方密钥协商协议的运行过程流程图;
图 2是本发明实施例 1提供的组群内的用户总数为奇数时的协商组群密钥的方法流程 图;
图 3是本发明实施例 1提供的组群内的用户总数为偶数时的协商组群密钥的方法流程 图;
图 4是本发明实施例 1提供的组群内的用户总数为奇数时的协商组群密钥的方法举例 流程图;
图 5是本发明实施例 1提供的组群内的用户总数为偶数时的协商组群密钥的方法举例 流程图;
图 6是本发明实施例 1提供的组群个数为 5时的协商组群密钥的方法流程图; 图 7是本发明实施例 2提供的协商组群密钥的设备的结构图;
图 8是本发明实施例 3提供的另一种协商组群密钥的设备的结构图;
图 9是本发明实施例 4提供的第三种协商组群密钥的设备的结构图。 具体实施方式
为使本发明的目的、 技术方案和优点更加清楚, 下面将结合附图对本发明实施方式作 进一步地详细描述。
本发明以下实施例提供的协商组群密钥方案的系统参数包括: 两个阶为 q, 且建立在椭 圆曲线上的循环乘群 G1和 G2, g为群 G1的生成子, 这两个乘群有可计算的双线性映射, g与 g的双线性映射记为 Q。
实施例 1
本实施例提供了一种协商组群密钥的方法, 当组群内的用户总数为奇数时, 参见图 2, 该方法包括:
步骤 201 : 用户根据秘密指数生成公开值, 分别与左侧的两个相邻用户和右侧的两个相 邻用户交换公开值;
步骤 202: 该用户收到四个相邻用户发送的公开值后, 根据收到的中间消息中的秘密指 数和自身的秘密指数生成中间值, 广播携带该中间值的中间消息;
步骤 203 : 该用户收到其它用户的中间消息后, 验证收到的中间消息中的中间值是否正 确, 验证通过后, 根据其它用户的中间值和自身的中间值生成会话密钥, 将该会话密钥作 为组群密钥。
当组群内的用户总数为偶数时, 参见图 3, 该方法包括:
步骤 301 : 从组群中分离出一个用户, 将所分离出的用户作为特定用户; 将组群内的其 余用户组成新的组群, 新的组群内的用户总数为奇数, 每个用户执行步骤 201 至步骤 203 获取会话密钥;
步骤 302: 此特定用户与新的组群内的多个用户交换携带秘密指数的公开值; 此特定用 户与上述多个用户根据收到的公开值中的秘密指数生成新中间值;
步骤 303 : 上述多个用户用新中间值加密会话密钥, 并将加密后的密文发送给此特定用 户; 此特定用户收到该密文后, 用新中间值对密文解密, 得到会话密钥;
步骤 304:多个用户和此特定用户用会话密钥加密新中间值,并广播加密后的新中间值; 步骤 305:此特定用户和新的组群内的每个用户根据新中间值和会话密钥生成新的组群 密钥。
下面以 n (这里设 n为奇数)个用户(Ul, U2,...,Un)为例,其中, U(n+l)=Ul, U(n+2) =U2, U (-1 ) =U (n-1 ), U (0) =U (n), 这样就构成了一个由 n个用户构成的首尾相 接的用户链。 参见图 4, 协商组群密钥的方法如下:
步骤 401 : 用户 Ui选择随机数, 并将选择的随机数作为秘密指数, 根据秘密指数和系 统参数 g计算公开值, 将该公开值发送给其左侧相邻最近的两个用户和右侧相邻最近的两 个用户。 此步骤具体为:
用户 Ui选择随机数 X ,其中, 是 g的阶,星号表示除去 0。计算公开值 Xi= gxl, 并将 Xi发送给用户 U(i-2)、 U(i-1)、 U(i+1)及 U(i+2), 即分别发送给其左侧相邻最近的两个 用户和右侧相邻最近的两个用户。
步骤 402: 用户 Ui接收其右边两个用户 UCi+l)和 UCi+2)的两个值 XCi+l)和 X i+2), 左 边两个用户 U(i-l)和 U(i-2)的两个值 X(i-l)和 X(i-2)后, 用户 Ui通过 X(i+1), X(i+2)和 Xi计 算右侧共享密钥
Figure imgf000009_0001
以及左侧共享密钥 Li = QHW»。
步骤 403 : 用户 Ui计算中间值 Ki=Ri/Li, 然后通过网络将携带该中间值的中间消息发 送给其它用户。
步骤 404: 用户 Ui收到所有其它用户发送的中间消息后, 提取中间值 Kl, Κ2, ..., K(i-l), K(i+ 1), ..., Kn后, 验证中间值 Kl, Κ2, ..., Κη是否正确。 具体验证过程如下: 因为 Ri = Qx(1+1Wl+2)xi, L(i+2) = Qx(l+1) xi x(l+2), 所以 Ri=L(i+2)。 又因为 Ki=Ri/Li, 所以 用户 Ui可以通过计算 K(i+2)与 Ri的乘积得到 R(i+2), 因为 R(i+2)=L(i+4), 所以用户 Ui 又可以通过计算 K(i+4)与 R(i+2)的乘积得到 R(i+4), 也就是 L(i+6)。 以此类推最后得到 Li, 也就是 R(i-2)的值。如果用户 Ui通过上述方法计算得到的 Li与其在步骤 202中计算得到的 相同, 则说明他收到的中间值 Kl, Κ2, ..., Kn正确, 否则不正确, 不进行组群密钥的协 商。
步骤 405: 验证中间值 Kl, Κ2, ..., Kn正确后, 根据步骤 404中的递推方法, 将得到 Rl , R2, , Rn。例如, 以当前用户 Ui为 U1为例, 则由 R1—>R3, 由 R3—>R5, ,
R(n-2)->R(n), 然后, 由 R(n)—>R2, 由 R2— >R4, , R(n-3)->R(n-l), 其它用户的推 导过程类似。 用户 Ui计算组群的会话密钥 S = R1R2 ...Rn。
上述方法中的用户个数 n为奇数, 如果组群内用户个数是偶数个时, 设此时有 n+1个 用户, 根据上述步骤 404中的递推方法, 奇数用户 Ul, U3, ..., U (n) 将会推导出 Rl,
R3, ... ..., R(n), 偶数用户 U2, U4, ..., U (n+ l )将会推导出 R2, R4, ... ..., R(n+ 1), 所以奇数用户计算出的会话密钥 S = RlR3...R(n), 偶数用户计算出的会话密钥 S =
R2R4...R(n+ l), 所以, 当组群内的用户个数为偶数个时, 参见图 5, 执行以下步骤:
步骤 501 : 从 n+l个用户中选择 n个用户, 分别为用户 Ul, U2, ..., Un。
步骤 502至步骤 506与上述步骤 401至步骤 405相同, 这里不再赘述。
步骤 507: 用户 Ul, U2, ..., Un通过上述方法得到 (Ul, U2, ..., Un) 的组群会话 密钥 S后, 从用户 Ul, U2, ..., Un中选择多个用户与用户 U (n+l )进行信息交互, 本实 施例选择用户 U1和 Un,用户 U1和 Un分别将公开值 XI和 Xn发送给 U(n+1)。同时, U(n+1) 随机选择 x(n+l) G Z , 计算公开值 X(n+l) = gx(n+1), 并将公开值 X(n+1)分别发送给 U1和
Un。
步骤 508: 用户 Ul, Un和 UCn+l)通过双线性对计算中间值 KCn+i;> = Qx ai x(n+1)
步骤 509: 用户 U1和 Un分别将中间值 K(n+1)作为密钥加密会话密钥 S, 并将加密后 的密文发送给用户 U(n+1);
步骤 510: 用户 U(n+1)收到密文后, 用中间值 K(n+1)解密得到会话密钥 S。
步骤 511 : 用户 Ul、 Un和 U(n+1)分别用 S作为密钥加密中间值 K(n+1), 并将加密后 的密文广播给其它用户;
步骤 512: 用户 Ul, U2, ..., U(n+1)共享组群会话密钥 S和中间值 K(n+1), 将组群会 话密钥 S和中间值 Κ(η+1)进行连接, 然后进行 Hash运算得到当前的组群密钥 KK, 即 ΚΚ =H ( S||K(n+l))。 当有一群用户加入时,不失一般性,假设有 j个用户 Cl, C2, ..., Cj加入当前组群(Ul, U2, ..., Un), 具体群组密钥协商过程如下:
首先, 构造 (Un, Cl, C2, ..., Cj , Ul ) 的用户群, 并为组群中的用户按照由小到大 的顺序编号形成组群 (Tl, Τ2, ..., TG+2)), 其中, Tl =Un, TG+2)=U1。 然后在该组群 中按以上的组群密钥协商方法得到该组群密钥 KT。
用户 Ul和 Un以 S为密钥加密组群密钥 ΚΤ, 并将密文以广播的形式发送给(U2, ..., U(n-1))0 这样在用户 (Ul, ..., Un) 中共享了两个秘密值: 组群会话密钥 S 和组群密钥 κτ。 用户 Ul, ..., Un将组群会话密钥 S和组群密钥 KT进行连接, 然后进行 Hash运算得 到当前的组群密钥 KK。同时, U1和 Un用 KT为组群密钥加密 KK,并将其发送给用户 Cl, C2, ..., Cj, 使该组用户拥有组群密钥 KK。
在完成上述加入算法之后, 也可以对用户进行排序, 对于新加入的成员 Cl, C2, ..., Cj, 令 Cl=U(n+l), C2=U(n+2), ..., Cj=U(n+j)。
如果上述加入的用户为单个用户时, 即 C1 要求加入组群 (Ul, ..., Un) 中, 具体过 程如下:
首先, 令 C1为 U(n+1), C1随机选取随机数 x(n+l), 计算公开值 X i+l) = gx(n+1), 并将 公开值 X(n+1)发送给用户 U1和 Un。 同时, U1和 Un将公开值 XI和 Xn发送给 U(n+ 1)。 然后, Ul, Un和 U(n+1)计算组群密钥 KT = Qxl皿 (n+1)。
接着, U1 和 Un 以组群会话密钥 S 为密钥加密 KT, 并将密文以广播的形式发送给 (U2, ..., U(n-1))。 这样在用户 (Ul, ..., Un) 中共享了两个秘密值组群会话密钥 S和组 群密钥 KT。
用户(Ul, ..., Un)将组群会话密钥 S和组群密钥 KT进行连接, 然后进行 Hash运算, 得到当前的组群密钥 KK, 即 KK=Hash(S||KT;)。 同时, U1和 Un用 KT为密钥加密 KK, 并 将其发送给用户 Cl, 使得该用户拥有密钥 κκ。
如果目前用户群 ώΟΙΙ, U2, ..., Un)构成, 当用户 Ui, ..., Uj要退出该组群时, 则将 剩余的用户组成新的组群, 根据新组群中用户个数的奇偶数, 执行上述组群密钥的协商方 法的步骤 401至步骤 405或步骤 501至步骤 512。
针对上述组群密钥的协商方法, 以 5个用户构成的组群 Ul, U2, U3, U4, U5为例, 参见图 6, 具体过程如下:
步骤 601: 用户 Ul, U2, U3, U4, U5分别选择随机数, 并根据选择的随机数和系统 参数 g分别计算公开值, 然后将公开值发送给其左侧的两个相邻用户和右侧的两个相邻用 户。 具体为:
用户 U1选择随机数 xle Z , 计算公开值 Xl=gxl, 并将 XI发送给用户 U2, U3和
U4, U5; 同理, 用户 U2将 X2发送给 U1, U5和 U3, U4; 用户 U3将 X3发送给 U1, U2 禾口 U4和 U5; 用户 U4将 X4发送给 U2, U3禾口 U5, U1; 用户 U5将 X5发送给 U3, U4和 Ul, U2, 这样就构成了一个由 5个用户构成的首尾相接的用户链。
步骤 602: 用户 U1收到了其它四个用户发送的公开值, 分别是 U2的 X2, U3的 X3, U4的 X4和 U5的 X5, 用户 U1计算右侧密钥 Ri =(^^3和左侧密钥 LI =Qxlx4x5。 同理, 其它用户也进行类似计算。 步骤 603 : 用户 Ul计算中间值 K1 =R1/L1, U2计算中间值 K2 =R2/L2, U3计算中 间值 K3 =R3/L3, U4计算中间值 K4 =R4/L4, U5计算中间值 K5 =R5/L5, 然后分别通过 网络将中间值 Kl, Κ2, Κ3, Κ4, Κ5发布给组内其它用户。
步骤 604: 用户 U1收到其它用户发送的中间值 Κ2, Κ3, Κ4, Κ5后, 对中间值 Κ2, Κ3, Κ4, Κ5进行验证。
因为有 Rl等于 L3, R2等于 L4, R3等于 L5, R4等于 Ll, R5等于 L2, 所以, 用户 Ul可以通过 R1与 K3的乘积得到 R3, R3与 K5的乘积得到 R5, R5与 K2的乘积得到 R2, R2与 K4的乘积得到 R4, R4与 K1的乘积得到 R1。 用户 U1将本步骤计算得到 R1与步骤 302中计算的 R1进行比较, 如果相同, 则 K2、 Κ3、 Κ4禾 Ρ Κ5正确, 否则错误。
其它用户也用上述方法对收到的中间值进行验证。
步骤 605 : 验证通过后, 用户 U1根据 Kl、 Κ2、 Κ3、 Κ4禾 Ρ Κ5得到 Rl、 R2、 R3、 R4 和 R5,计算会话密钥 S =R1R2R3R4R5,同理,其它用户也计算出会话密钥 S =R1R2R3R4R5。 当用户 U6要加入以上的组群时, 可以采用如下方法生成组群密钥:
用户 U6随机选择 x6e Ζί , 计算公开值 X6 = gx6, 然后用户 U6与 Ul和 U5交换公开 值。 Ul、 U5以及 U6计算共享的密钥 KT = Qxlx5x6
Ul和 U5以会话密钥 S为密钥加密 KT, 并将密文以广播的形式发送给 U2, U3和 U4。 这样用户 Ul, U2, U3, U4和 U5就共享了秘密 S和 KT。
用户 Ul, U2, U3, U4禾 将 S禾 P KT进行连接, 然后进行 Hash运算, 得到当前的 组群密钥 KK, 即 KK= ( S||KT)。 同时, Ul和 U5用 KT为密钥加密 KK, 并将其发送给用 户 U6, 使 U6也拥有组群密钥 KK。 当用户 U6, U7要求加入由用户 Ul, U2, U3, U4, U5构成的组群时, 组群密钥协商 过程如下:
首先, 用户 U6随机选择 x6e Z *, 计算公开值 X6 = gx6 ; U7随机选择 x7e Z *, 计算公 开值 X7 = gx7。 用户 U6与 U7, Ul和 U5交换公开值, 同时, 用户 U7与 Ul, U5禾 P U6交 换公开值。
然后,用户 U5, U6和 U7计算得到 S'=Qx5x6x7。用户 U6, U7和 Ul计算得到 KT'=Qx6x7xl。 用户 U6, U7以 S'为密钥加密 KT', 并将加密后的密文发送给用户 U5。
接着, 用户 U5, U6和 U7分别计算 KT =Hash ( S'||KT')。 用户 U6, U7以 KT'为密钥 加密 KT并将加密后的密文发送给用户 Ul, 使用户 U1也拥有了 κτ。 用户 Ul和 U5以 S为密钥加密 KT, 并将密文以广播的形式发送给用户 U2, U3, U4, 这样在用户 Ul, U2, U3, U4, U5中就共享了两个秘密值 S和 KT。
这五个用户将秘密 S和 KT进行连接, 然后进行 Hash运算, 得到当前的组群密钥 KK, 即 KK=H ( S||KT)。 同时, 用户 U1和 U5以 KT为密钥加密 KK, 并将密文其发送给用户 U6和 U7, 使得这两个用户也拥有组群密钥 KK。
当 U3要退出由用户 Ul, U2, U3, U4, U5构成的组群。 则将剩余的用户 Ul, U2, U4, U5组成新的组群,新组群中用户个数为偶数,执行上述组群密钥的协商方法的步骤 501 至步骤 512, 生成组群密钥 KK。
实施例 2
参见图 7, 本实施例提供了一种协商组群密钥的设备, 包括:
信息交互模块 701, 用于根据秘密指数生成公开值, 分别与左侧的两个相邻设备和右侧 的两个相邻设备交换公开值, 以及与其它设备进行信息交互;
中间值生成模块 702, 用于提取信息交互模块 701收到的公开值中的秘密指数, 根据公 开值中的秘密指数和设备自身的秘密指数生成中间值, 并通知信息交互模块 701 广播携带 中间值的中间消息;
组群密钥生成模块 703, 用于验证信息交互模块 701收到的中间消息中的中间值, 验证 通过后, 根据其它设备的中间值和自身的中间值生成会话密钥, 将会话密钥作为组群密钥。
实施例 3
参见图 8, 本实施例提供了一种协商组群密钥的设备, 包括:
信息交互模块 801, 用于根据秘密指数生成公开值, 分别与左侧的两个相邻设备和右侧 的两个相邻设备交换公开值, 以及与其它设备进行信息交互;
中间值生成模块 802, 用于提取信息交互模块 801收到的公开值中的秘密指数, 根据公 开值中的秘密指数和设备自身的秘密指数生成中间值, 并通过信息交互模块 801 广播携带 中间值的中间消息;
会话密钥生成模块 803, 用于验证信息交互模块 801收到的中间消息中的中间值, 验证 通过后, 根据收到的中间值和自身的中间值生成会话密钥;
新中间值生成模块 804,用于通知信息交互模块 801与特定设备交换携带秘密指数的公 开值, 并根据接收到的特定设备的公开值中的秘密指数和设备自身的秘密指数生成新中间 值;
组群密钥生成模块 805,用于根据新中间值生成模块 504生成的新中间值和会话密钥生 成新的组群密钥。 进一步地, 上述设备还包括:
会话密钥加密模块, 用于用新中间值生成模块 804 生成的新中间值加密会话密钥, 并 通过信息交互模块 801将加密后的密文发送给特定设备;
中间值加密模块, 用于用会话密钥对新中间值生成模块 804 生成的新中间值加密, 并 通过信息交互模块 801广播加密后的新中间值。
实施例 4
参见图 9, 本实施例提供了一种协商组群密钥的设备, 包括:
信息交互模块 901, 用于根据秘密指数生成公开值, 分别与组群中的多个设备交换公开 值, 以及与其它设备进行信息交互;
中间值生成模块 902, 用于提取信息交互模块 901收到的公开值中的秘密指数, 根据公 开值中的秘密指数和设备自身的秘密指数生成中间值;
会话密钥解密模块 903, 用于用中间值生成模块 902 生成的中间值解密信息交互模块 901收到的密文, 得到会话密钥;
中间值加密模块 904,用于用会话密钥解密模块 903解密出的会话密钥对中间值生成模 块 902生成的中间值加密, 并通过信息交互模块 901广播加密后的中间值。 上述方案中的全部或部分步骤可以通过指令控制相应的硬件完成, 该指令可以存储于 存储介质中, 存储介质如计算机或服务器的硬盘或内存。 以上实施例提供的技术方案基于椭圆曲线的密码体制, 基于椭圆曲线的密码体制与
RS A和 El Gamal等密码体制相比, 具有很高的单比特安全性, 并且在未来计算能力逐渐提 升的情况下与 RSA和 El Gamal的体制相比具有更强的竞争力。
该体制可以在固定的通信轮数下完成密钥协商过程, 也就是说该密钥协商的通信轮数 与组群中成员的人数无关。 相对于现有技术, 本发明有如下优点:
a) 在多个用户加入的过程中, 首先计算了要求加入的用户组群的共享密钥, 然后将此 密钥与原始组群的密钥进行合并得到更新的组群密钥, 提高了协议的效率。
b) 密钥协商过程中用的通信轮数较少。例如, 组群中有 n个用户, 如果应用现有技术, 完成密钥协商过程需要进行 Log (n) 轮的通信, 而使用本发明实施例提供的方案, 只需要 两轮的通信就可以完成, 提高了通信的实时性。
c) 通信量小。 由于密钥协商的轮数与成员的人数无关, 使得在成员较多, 即 n比较大 的情况下, 可以明显的减小密钥协商的通信量。 以上所述仅为本发明的较佳实施例, 并不用以限制本发明, 凡在本发明的精神和原则 之内, 所作的任何修改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。

Claims

权 利 要 求 书
1. 一种协商组群密钥的方法, 其特征在于, 当组群内的用户总数为奇数时, 所述方法 包括:
步骤 A: 用户根据秘密指数生成公开值, 分别与左侧的两个相邻用户和右侧的两个相 邻用户交换公开值;
步骤 B:所述用户收到四个相邻用户发送的公开值后,根据所述公开值中的秘密指数和 自身的秘密指数生成中间值, 广播携带所述中间值的中间消息;
步骤 C:所述用户收到其它用户的中间消息后,验证所述中间消息中的中间值是否正确, 验证通过后, 根据所述其它用户的中间值和自身的中间值生成会话密钥, 将所述会话密钥 作为组群密钥;
当组群内的用户总数为偶数时, 所述方法包括:
步骤 A1 : 从组群中分离出一个用户, 将所分离出的用户作为特定用户; 将组群内的其 余用户组成新的组群, 所述新的组群内每个用户执行所述步骤 A至所述步骤 C;
步骤 B1 : 所述特定用户与所述新的组群内的多个用户交换携带秘密指数的公开值; 所 述特定用户与所述多个用户根据收到的公开值中的秘密指数生成新中间值;
步骤 C1 : 所述多个用户用所述新中间值加密所述会话密钥, 并将加密后的密文发送给 所述特定用户; 所述特定用户收到所述密文后, 用所述新中间值对所述密文解密, 得到所 述会话密钥;
步骤 D1 : 所述多个用户和所述特定用户用所述会话密钥加密所生成的新中间值, 并广 播加密后的所述新中间值;
步骤 E1 : 所述特定用户和所述新的组群内的每个用户根据所述新中间值和所述会话密 钥生成新的组群密钥。
2.如权利要求 1所述的协商组群密钥的方法, 其特征在于, 所述方法基于椭圆曲线的双 线性对映射, 系统参数包括两个阶为^ 且建立在椭圆曲线上的循环乘群 G1和 G2, g是所 述循环乘群 G1的生成子,所述 G1和 G2有可计算的双线性映射, g与 g的双线性映射为 Q。
3. 如权利要求 2所述的协商组群密钥的方法, 其特征在于, 所述步骤 A包括: 用户从 中选择一个随机数作为秘密指数, 以所述系统参数中的 g为底数, 所述秘密 指数为指数得到公开值, 并将所述公开值发送给左侧相邻的两个用户和右侧相邻的两个用 户。
4. 如权利要求 2所述的协商组群密钥的方法, 其特征在于, 所述步骤 B包括: 所述用户收到所述相邻用户发送的公开值后, 以所述系统参数中的 Q为底数, 以左侧 相邻用户发送的公开值中的秘密指数和自身的秘密指数的乘积为指数生成左侧共享密钥; 以右侧相邻用户发送的公开值中的秘密指数和自身的秘密指数的乘积为指数生成右侧共享 密钥;
所述用户将所述右侧共享密钥除以左侧共享密钥, 得到中间值, 广播携带所述中间值 的中间消息。
5. 如权利要求 4所述的协商组群密钥的方法, 其特征在于, 所述步骤 C包括: 所述用户收到其它用户的中间消息后, 根据所收到的中间消息中的中间值计算左侧共 享密钥, 比较计算的所述左侧共享密钥与所述步骤 B 中生成的左侧共享密钥是否相等, 如 果相等, 则判断所收到的中间消息中的中间值正确;
验证通过后, 根据所述其它用户的中间值和自身的中间值计算其它用户的右侧共享密 钥, 将每个右侧共享密钥相乘得到会话密钥;
将所述会话密钥作为组群密钥。
6. 如权利要求 1所述的协商组群密钥的方法, 其特征在于, 所述步骤 E1包括: 所述特定用户和所述新的组群内的每个用户将所述新中间值和所述会话密钥进行连 接, 对连接后的结果进行哈希运算得到新的组群密钥。
7. 如权利要求 1所述的协商组群密钥的方法, 其特征在于, 当有多个新用户加入原组 群时, 所述方法还包括:
从所述原组群中选出多个用户, 将所选出的多个用户与所述多个新用户组成新的组群, 根据新的组群中用户的总数执行所述步骤 A至所述步骤 C或所述步骤 A1至所述歩骤 E1, 得到所述新的组群的组群密钥;
所述选出的多个用户用所述会话密钥加密所述新组群的组群密钥, 并广播加密后的密 文;
所述原组群中用户收到所述密文后, 用所述会话密钥解密得到所述新组群的组群密钥; 所述原组群中的用户根据所述会话密钥和所述新组群的组群密钥生成当前组群的组群密 钥;
所述选出的多个用户用所述新组群的组群密钥加密所述当前组群的组群密钥, 并将加 密后的密钥发送给所述多个新用户;
所述多个新用户对加密后的密钥进行解密, 得到所述当前组群的组群密钥。
8. 如权利要求 1所述的协商组群密钥的方法, 其特征在于, 当有多个用户退出原组群 时, 所述方法还包括:
将所述原组群中剩余的用户组成新的组群,根据新的组群中用户的总数执行所述步骤 A 至所述步骤 C或所述步骤 A1至所述步骤 El, 得到所述新的组群的组群密钥。
9.一种协商组群密钥的设备, 其特征在于, 所述设备包括:
信息交互模块 (701 ), 用于根据秘密指数生成公开值, 分别与左侧的两个相邻设备和 右侧的两个相邻设备交换公开值, 以及与其它设备进行信息交互;
中间值生成模块 (702), 用于提取所述信息交互模块 (701 ) 收到的公开值中的秘密指 数, 根据所述公开值中的秘密指数和本地设备自身的秘密指数生成中间值, 并通知所述信 息交互模块 (701 ) 广播携带所述中间值的中间消息;
组群密钥生成模块 (703 ), 用于验证所述信息交互模块 (701 ) 收到的中间消息中的中 间值, 验证通过后, 根据所述其它设备的中间值和自身的中间值生成会话密钥, 将所述会 话密钥作为组群密钥。
10.—种协商组群密钥的设备, 其特征在于, 所述设备包括:
信息交互模块 (801 ), 用于根据秘密指数生成公开值, 分别与左侧的两个相邻设备和 右侧的两个相邻设备交换公开值, 以及与其它设备进行信息交互;
中间值生成模块 (802), 用于提取所述信息交互模块 (801 ) 收到的公开值中的秘密指 数, 根据所述公开值中的秘密指数和本地设备自身的秘密指数生成中间值, 并通过所述信 息交互模块广播携带所述中间值的中间消息;
会话密钥生成模块 (803 ), 用于验证所述信息交互模块 (801 ) 收到的中间消息中的中 间值, 验证通过后, 根据收到的中间值和自身的中间值生成会话密钥;
新中间值生成模块 (804), 用于通知所述信息交互模块 (801 ) 与特定设备交换携带秘 密指数的公开值, 并根据接收到的所述特定设备的公开值中的秘密指数和设备自身的秘密 指数生成新中间值; 组群密钥生成模块 (805 ), 用于根据所述新中间值生成模块 (804) 生成的新中间值和 所述会话密钥生成新的组群密钥。
11. 如权利要求 10所述的协商组群密钥的设备, 其特征在于, 所述设备还包括: 会话密钥加密模块, 用于利用所述新中间值生成模块生成的新中间值加密所述会话密 钥, 并通过所述信息交互模块将加密后的密文发送给所述特定设备;
中间值加密模块, 用于利用所述会话密钥对所述新中间值生成模块生成的新中间值加 密, 并通过所述信息交互模块广播加密后的所述新中间值。
12. 一种协商组群密钥的设备, 其特征在于, 所述设备包括:
信息交互模块 (901 ), 用于根据秘密指数生成公开值, 分别与组群中的多个设备交换 公开值, 以及与其它设备进行信息交互;
中间值生成模块 (902), 用于提取所述信息交互模块 (801 ) 收到的公开值中的秘密指 数, 根据所述公开值中的秘密指数和设备自身的秘密指数生成中间值;
会话密钥解密模块 (903 ), 用于利用所述中间值生成模块 (902) 生成的中间值解密所 述信息交互模块收到的密文, 得到会话密钥;
中间值加密模块 (904), 用于利用所述会话密钥解密模块 (903 ) 解密出的会话密钥对 所述中间值生成模块 (902) 生成的中间值加密, 并通过所述信息交互模块 (901 ) 广播加 密后的所述中间值。
PCT/CN2008/072434 2007-09-28 2008-09-19 Method and device for group key agreement Ceased WO2009043266A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200710175295.6 2007-09-28
CN2007101752956A CN101399660B (zh) 2007-09-28 2007-09-28 协商组群密钥的方法和设备

Publications (1)

Publication Number Publication Date
WO2009043266A1 true WO2009043266A1 (en) 2009-04-09

Family

ID=40517943

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2008/072434 Ceased WO2009043266A1 (en) 2007-09-28 2008-09-19 Method and device for group key agreement

Country Status (2)

Country Link
CN (1) CN101399660B (zh)
WO (1) WO2009043266A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI556618B (zh) * 2015-01-16 2016-11-01 Univ Nat Kaohsiung 1St Univ Sc Network Group Authentication System and Method
CN103813317B (zh) * 2012-11-07 2017-02-08 中国移动通信集团公司 无线传感器网络群组密钥协商方法
EP3509246A4 (en) * 2016-09-01 2020-02-19 Nippon Telegraph and Telephone Corporation KEY REPLACEMENT METHOD AND KEY REPLACEMENT SYSTEM

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8848921B2 (en) * 2009-12-24 2014-09-30 South China University Of Technology Group key management approach based on linear geometry
CN102035646B (zh) * 2010-12-24 2012-12-26 北京工业大学 一种增强保护的混合密钥协商方法
CN103001957B (zh) * 2012-11-26 2015-07-15 广州大学 一种密钥生成方法、设备及服务器
CN103227987B (zh) * 2013-04-08 2016-05-04 哈尔滨工程大学 一种异构传感网认证组密钥管理方法
CN105684484A (zh) * 2013-10-28 2016-06-15 日本电气株式会社 根据基于邻近的服务的位置变化的安全管理
CN105812132B (zh) * 2014-12-30 2019-07-26 大唐高鸿信息通信研究院(义乌)有限公司 基于车载短距离通信网的群组密码协商方法
CN106685907B (zh) * 2016-06-29 2018-09-04 腾讯科技(深圳)有限公司 一种会话密钥的生成方法及装置
CN108667606B (zh) * 2018-04-27 2021-01-15 湖北工业大学 一种抗泄漏的群组用户认证密钥协商方法及系统
CN108964904B (zh) * 2018-07-16 2020-12-22 哈尔滨工业大学(深圳) 群密钥安全管理方法、装置、电子设备及存储介质
CN115208623B (zh) * 2022-05-31 2024-02-13 长城信息股份有限公司 一种打印作业的数据安全传输方法及系统
CN115314203B (zh) * 2022-10-11 2022-12-20 南京易科腾信息技术有限公司 群组密钥协商方法
CN119276468B (zh) * 2024-12-10 2025-04-01 杭州海康威视数字技术股份有限公司 基于双棘轮算法的群组密钥协商方法、通信方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1984077A (zh) * 2005-08-10 2007-06-20 阿尔卡特公司 移动设备到ip通信网络的接入控制

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1984077A (zh) * 2005-08-10 2007-06-20 阿尔卡特公司 移动设备到ip通信网络的接入控制

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LI XIN ET AL.: "An efficient dynamic group key agreement protocol", JOURNAL OF ZHEJIANG UNIVERSITY, 28 February 2007 (2007-02-28) *
XIAO YOUAN ET AL.: "Research on the Xiao's Key Agreement Scheme", JOURNAL OF WUHAN UNIVERSIY OF TECHNOLOGY, 31 December 2003 (2003-12-31) *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103813317B (zh) * 2012-11-07 2017-02-08 中国移动通信集团公司 无线传感器网络群组密钥协商方法
TWI556618B (zh) * 2015-01-16 2016-11-01 Univ Nat Kaohsiung 1St Univ Sc Network Group Authentication System and Method
EP3509246A4 (en) * 2016-09-01 2020-02-19 Nippon Telegraph and Telephone Corporation KEY REPLACEMENT METHOD AND KEY REPLACEMENT SYSTEM
US11258588B2 (en) 2016-09-01 2022-02-22 Nippon Telegraph And Telephone Corporation Key exchange method and key exchange system
US11677543B2 (en) 2016-09-01 2023-06-13 Nippon Telegraph And Telephone Corporation Key exchange method and key exchange system

Also Published As

Publication number Publication date
CN101399660B (zh) 2010-11-10
CN101399660A (zh) 2009-04-01

Similar Documents

Publication Publication Date Title
WO2009043266A1 (en) Method and device for group key agreement
Chen et al. RCDA: Recoverable concealed data aggregation for data integrity in wireless sensor networks
CN110011995B (zh) 多播通信中的加密和解密方法及装置
Wu et al. A new efficient certificateless signcryption scheme
CN101291214B (zh) 一种生成组密钥的方法、系统和设备
CN108964906B (zh) 协同ecc的数字签名方法
CN107294696B (zh) 针对Leveled全同态密钥分配方法
Kate et al. Pairing-based onion routing with improved forward secrecy
Hoang et al. Forward-secure data outsourcing based on revocable attribute-based encryption
CN106953727B (zh) D2d通信中基于无证书的组安全认证方法
Huang et al. A key-chain-based keying scheme for many-to-many secure group communication
Gupta et al. Design of ECC based authenticated group key agreement protocol using self-certified public keys
Zhen et al. A lightweight encryption and authentication scheme for wireless sensor networks
Großschädl TinySA: A security architecture for wireless sensor networks
CN114205077A (zh) 基于Blom密钥分配算法的混合加密安全通信方法
Kate et al. Using sphinx to improve onion routing circuit construction
CN103957101A (zh) 一种群组通信中的组密钥建立方法
Abdel-Hafez et al. Authenticated Group Key Agreement Protocols for Ad hoc Wireless Networks.
Li et al. AD‐ASGKA–authenticated dynamic protocols for asymmetric group key agreement
Araz et al. Load-balanced key establishment methodologies in wireless sensor networks
Chien et al. Identity-based key agreement protocol for mobile ad-hoc networks using bilinear pairing
JP2006135840A (ja) 鍵共有状態移行方法、システム、並びに情報記憶媒体
Di Crescenzo et al. Threshold cryptography in mobile ad hoc networks
Zou et al. An authenticated key agreement protocol for mobile ad hoc networks
Dutta et al. Secure and efficient group key agreements for cluster based networks

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08800928

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08800928

Country of ref document: EP

Kind code of ref document: A1