Method and system for realizing end-to-end VoIP multi-encrypted encrypted call
By integrating secure storage media and multiple session keys bound to the call period sequence in the VoIP terminal, the problem that existing VoIP encryption systems cannot achieve long-term uninterrupted session key replacement is solved, and the security and cracking resistance of calls are improved.
Patent Information
- Application Number
- CN202211212285.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-09-29
- Publication Date
- 2025-04-29
- Estimated Expiration
- 2042-09-29
AI Technical Summary
Existing VoIP encryption systems cannot achieve uninterrupted session key replacement during long-term encrypted calls, resulting in reduced security and increased risk of cracking.
By integrating a secure storage medium in a VoIP terminal, the master key belonging to different secret phone networks is stored, and multiple session keys bound to the call period sequence are used to realize the replacement of non-interrupted call keys during long-term calls.
It realizes the uninterrupted call key replacement during long-term encrypted calls, ensuring the use of different session keys for each call period, avoiding the cracking risks caused by the long use of a single session key, and improving the security guarantee of multiple secrets.
Smart Images

Figure CN115589292B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of password application, and in particular to a method and system for realizing end-to-end VoIP one-call-multiple-password encryption. Background Art
[0002] With the development of 5G technology and instant messaging technology, there are more and more scenarios for encryption and decryption of VoIP (Voice over Internet Protocol, IP phone). At present, the solutions for VoIP encryption needs are generally based on digital certificates and public-private key cryptography systems. my country's cryptographic industry standard GM / T0098-2020 "Technical Specifications for Encrypted Voice Communication Based on IP Network" also proposes a set of SIP protocol encrypted voice communication technology standards based on digital certificates and asymmetric cryptography systems. The VoIP encryption system based on digital certificates and public-private key cryptography systems currently has the following difficulties in actual use:
[0003] (1) The number of mobile users is huge, and the complexity of digital certificates and asymmetric cryptographic systems is also very high. It involves multiple links such as the generation, distribution, registration, issuance, verification, and revocation of digital certificates and asymmetric key pairs. There are multiple components such as the key management system KMS, certificate center CA, certificate registration center RA, online certificate verification OCSP service, certificate revocation list CRL / LDAP directory service, etc. my country's own asymmetric cryptographic system also adopts a dual-certificate dual-key pair system, and the number of certificates and key pairs that need to be managed has increased exponentially.
[0004] (2) The process of session key negotiation or distribution uses long-term asymmetric encryption key pairs and signature key pairs, and does not achieve a one-time one-key protection process.
[0005] (3) The process of session key negotiation or distribution is based on asymmetric key pairs and digital certificates. The public key used to encrypt and transmit session key materials is public. If the computing power of quantum computers is improved, there is a possibility that it can be deciphered, resulting in the session key to be transmitted being deciphered and stolen.
[0006] (4) The session key cannot be changed during an encrypted call, which poses a certain risk when the call is long, and also weakens the security of the one-call-one-secret key.
[0007] In the related art, a Chinese invention patent document with publication number CN104683291A records a session key negotiation method based on an IMS system, in which a terminal is configured with a symmetric encryption algorithm and a key in a multimedia server; the calling party encrypts the session key using a first symmetric encryption algorithm and a key to generate a first ciphertext session key, and the first ciphertext session key is transmitted to the multimedia server via a CSCF server in a SIP message; the multimedia server receives the SIP message, decrypts the first ciphertext session key using a first symmetric encryption algorithm and a key to obtain a session key, and the multimedia server encrypts the session key using a second symmetric encryption algorithm and a key configured by the called party to generate a second ciphertext session key, and the second ciphertext session key is transmitted to the called party via a SIP message via the CSCF server, and the called party receives the SIP message and decrypts the second ciphertext session key using a second symmetric encryption algorithm and a key to obtain a session key.
[0008] This solution is applied to multimedia servers, CSCF servers and several terminals in the IP multimedia subsystem. The extended parameter a in the SDP message body of the INVITE message carries the encryption algorithm of the session key and the encryption algorithm of the media stream. It uses the encryption algorithm E1 and the key P1 to encrypt the session key to obtain the base64 encoding of the session key. However, from the perspective of standardization, generally only one cryptographic algorithm of the same type is determined in a certain system. For example, the symmetric encryption algorithm uses AES for the international algorithm and SM4 for the domestic commercial encryption algorithm. Using different cryptographic algorithms does not make much sense as long as the encryption strength is the same. Moreover, this solution cannot achieve the high security strength of changing the session key during a long encrypted call without interrupting the call, and achieving multiple encryptions for one call.
[0009] The Chinese invention patent document with publication number CN109274480A records a data authentication method and quantum key distribution system based on the HMAC-SM3 algorithm. The key cache stores pre-assigned key data and quantum key data output by the QKD system. Both QKD terminals use the same key and the HMAC-SM3 algorithm to perform hash operations on the terminal interaction data within the same time period (equivalent to the caller and the called party calculating HMAC respectively) to obtain a hash value respectively.
[0010] The solution is to use the same key and the HMAC-SM3 algorithm on two QKD terminals to perform hash operations on the terminal interaction data within the same period of time to improve the accuracy of data integrity authentication of the Quantum Key Distribution (QKD) system, rather than an encrypted call between two VoIP terminals. Summary of the invention
[0011] The technical problem to be solved by the present invention is how to realize the replacement of session keys during long-term encrypted calls without interrupting calls, so as to achieve high security strength of multiple keys for one call.
[0012] The present invention solves the above technical problems through the following technical means:
[0013] On the one hand, the present invention proposes a method for realizing end-to-end VoIP one-call multi-encrypted encrypted call, the method is applied to a VoIP terminal, the VoIP terminal is integrated with a secure storage medium, the secure storage medium stores master keys belonging to different encrypted call private networks, and when the VoIP terminal is used as a calling party, the method comprises the following steps:
[0014] Initiate a SIP session request to the called party that belongs to the same private network as the called party, wherein the INVITE message instruction of the SIP session request includes a SIP message header and an SDP message body;
[0015] Randomly select two master key ID numbers and corresponding master keys belonging to the secret call private network to which the called party belongs from the integrated secure storage medium;
[0016] Using one of the master keys to encrypt the n session key materials N1 in the SDP message body to obtain n first session key ciphertexts, using another of the master keys to calculate a first cryptographic hash value for the INVITE message instruction to obtain the INVITE ciphertext of this SIP session, wherein an extended parameter a field is set in the SDP message body of the INVITE ciphertext to carry key negotiation information and talk time period information, and the n session key materials N1 are hardware random numbers generated in real time by the caller, and correspond to the talk time periods divided by the current clock of the caller respectively;
[0017] Sending the INVITE ciphertext of this SIP session to the called party, so that the called party generates an INVITE response message based on the INVITE ciphertext;
[0018] Receive the INVITE response message, decrypt to obtain n session key materials N2, and generate n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2, where the n session key materials N2 are hardware random numbers generated in real time by the called party, and correspond to the call time periods divided by the current clock of the called party respectively;
[0019] Based on the n session keys and the n initialization vectors, an encrypted conversation is performed with the called party.
[0020] The present invention uses multiple session keys bound to the call period sequence to achieve non-interrupted call key replacement during a long call. As the call time increases, it can ensure that different session keys are used for each call period of the same call, avoiding the risk of cracking caused by the long use of a single session key, and achieving security protection of multiple keys for one call. The method based on a large number of pre-shared master keys pre-filled solves the problem of end-to-end transparent encrypted VoIP calls, reducing the complexity of commonly used VoIP encrypted calls based on digital certificates and asymmetric cryptographic systems.
[0021] Further, the n session key materials N1 are encrypted respectively using one of the master keys, and the cryptographic hash value of the INVITE message instruction is calculated using another of the master keys to obtain the INVITE ciphertext of the current SIP session, including:
[0022] The n session key materials N1 are encrypted respectively using the master key keyid_enc1 to obtain the base64 codes corresponding to the n session key materials N1; wherein the call time periods corresponding to the n session key materials N1 are started at the local current timestamp of the caller and are incremented in sequence with the duration of each session key usage in minutes as the interval value;
[0023] Setting an extended parameter a field in the SDP message body of the INVITE message instruction to carry key negotiation information and talk time period information;
[0024] Another master key keyid_hmac1 is used to calculate a cryptographic hash value of the INVITE message instruction using a cryptographic hash algorithm with a key to obtain the INVITE ciphertext of this SIP session.
[0025] Furthermore, the SDP message body content of the INVITE response message includes the netID of the private network to which the calling and called parties belong, the master key ID used to encrypt the n session key materials N2 generated by the called party and the n second session key ciphertexts obtained by encryption, the master key ID used to encrypt the entire response message of the called party and the encrypted second cryptographic hash value, the session key materials N2 corresponding to each call time period divided by the current clock of the called party, the session key, the initialization vector, the verification random number and the verification random number ciphertext, wherein the n session key materials N2 are hardware random numbers generated in real time by the called party;
[0026] The receiving the INVITE response message, decrypting to obtain n session key materials N2, and generating n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2, includes:
[0027] Receive the INVITE response message, and use the private network identifier netID and the master key ID used to encrypt the entire response message of the called party to retrieve the corresponding master key to verify the second cryptographic hash value;
[0028] When the verification is passed, the corresponding master key is taken out to decrypt the second session key ciphertext through the private network identifier netID and the master key ID used to encrypt the n session key materials N2 generated by the called party, so as to obtain the n session key materials N2;
[0029] Based on the n session key materials N1 and the n session key materials N2, n session keys and n initialization vectors are generated.
[0030] Further, the generating n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2 includes:
[0031] SKEY_k=HMAC(HASH(N1_k|N2_k), call_id_xxx|sessionid_xxx)
[0032] SKEY_key_k=HMAC(SKEY_k,call_id_xxx|sessionid_xxx|0)
[0033] SKEY_iv_k=HMAC(SKEY_key_k, call_id_xxx|sessionid_xxx|1)
[0034] Wherein: SKEY_k is the intermediate result; N1_k is the kth session key material N1; N2_k is the kth session key material N2; call_id_xxx is the call ID of SIP; sessionid_xxx is the task ID of SIP; HASH(N1_k|N2_k) is the hash value calculated after splicing N1_k and N2_k; SKEY_key_k is the kth session key; SKEY_iv_k is the kth initialization vector.
[0035] Further, the performing an encrypted conversation with the called party based on the n session keys and the n initialization vectors includes:
[0036] Decrypting the verification random number ciphertext based on the n session keys and the n initialization vectors to obtain a verification random number;
[0037] Compare and verify the verification random number obtained by decryption with the verification random number in plain text;
[0038] When the verification is successful, the called party is replied with an ACK message to complete the encrypted SIP three-way handshake communication;
[0039] Based on the n session keys and the n initialization vectors, an encrypted conversation is performed with the called party, wherein the encryption mode adopts the CBC algorithm combined with the CFB algorithm.
[0040] Furthermore, when conducting an encrypted call with the called party, RTP is used to transmit the audio and video streams, including:
[0041] Sending the RTP stream, the caller determines the lower edge of the call period sequence interval corresponding to the caller's call period by the call period sampling field in the RTP message sent by the caller, and uses the session key and initialization vector corresponding to the lower edge of the caller's call period sequence interval as the session key and initialization vector used for actual encryption;
[0042] Receive the RTP stream sent by the called party, determine the lower edge of the corresponding called party's call period sequence interval from the call period sampling field of the RTP message sent by the called party, and use the session key and initialization vector corresponding to the lower edge of the called party's call period sequence interval as the session key and initialization vector used for actual decryption.
[0043] Furthermore, the storage space of the secure storage medium is divided into a plurality of mutually isolated subspaces, each of the subspaces stores a master key belonging to the same secret talk private network, and the same secret talk private network stores the master keys with the same key ID identifier; the master keys are charged by a quantum key distribution network or by a key agent.
[0044] Furthermore, before initiating a SIP session request to the called party that belongs to the same private network as the called party, the method further includes:
[0045] An initialization program is run to perform an integrity check on the secure storage medium, and obtain authorization to use the master key stored in the secure storage medium.
[0046] In a second aspect, the present invention proposes a method for implementing an end-to-end VoIP multi-encrypted call, the method being applied to a VoIP terminal, the VoIP terminal having an integrated secure storage medium, the secure storage medium storing master keys belonging to different encrypted call private networks, and when the VoIP terminal is the called party, comprising the following steps:
[0047] Receive the INVITE ciphertext sent by the caller;
[0048] The first cryptographic hash value is verified by taking out the corresponding master key through the netID of the private network to which the calling and called parties belong and the master key ID used to encrypt the INVITE message of the calling party;
[0049] When the verification is passed, the corresponding master key is taken out to decrypt the first session key ciphertext through the netID of the private network to which the calling party and the called party belong and the master key ID used to encrypt the n session key materials N1 generated by the calling party, and the n session key materials N1 are the hardware time data generated by the calling party, which respectively correspond to the various call time periods divided by the current clock of the calling party;
[0050] Obtain n hardware random numbers from its own integrated secure storage medium as session key materials N2, wherein the n session key materials N2 correspond to the call time periods divided by the current clock of the called party;
[0051] An INVITE response message is generated based on the n session key materials N1 and the n session key materials N2.
[0052] Further, the generating an INVITE response message based on the n session key materials N1 and the n session key materials N2 includes:
[0053] Based on the n session key materials N1 and the n session key materials N2, generating n session keys and n initialization vectors;
[0054] The INVITE response message is generated based on the n session keys, the n initialization vectors and the n session key materials N2.
[0055] Further, the generating n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2 includes:
[0056] SKEY_k=HMAC(HASH(N1_k|N2_k), call_id_xxx|sessionid_xxx)
[0057] SKEY_key_k=HMAC(SKEY_k,call_id_xxx|sessionid_xxx|0)
[0058] SKEY_iv_k=HMAC(SKEY_key_k, call_id_xxx|sessionid_xxx|1)
[0059] Wherein: SKEY_k is the intermediate result; N1_k is the kth session key material N1; N2_k is the kth session key material N2; call_id_xxx is the call ID of SIP; sessionid_xxx is the task ID of SIP; HASH(N1_k|N2_k) is the hash value calculated after splicing N1_k and N2_k; SKEY_key_k is the kth session key; SKEY_iv_k is the kth initialization vector.
[0060] Further, the generating the INVITE response message based on the n session keys, the n initialization vectors and the n session key materials N2 includes:
[0061] According to the netID of the private network to which the calling and called parties belong, two corresponding master key IDs and corresponding master keys are obtained from the integrated secure storage medium;
[0062] Encrypting n session key materials N2 using one of the master keys to obtain n second session key ciphertexts, and calculating a second cryptographic hash value for an INVITE response message using another of the master keys;
[0063] Encrypting the verification random number using the n session keys and the n initialization vectors to obtain a verification random number ciphertext, wherein the verification random number is generated in real time by the called party;
[0064] Generate the INVITE response message, the INVITE response message includes a SIP message header and an SDP message body, the SDP message body content includes the netID of the secret call private network to which the calling and called parties belong, the master key ID used to encrypt n session key materials N2 generated by the called party and the n second session key ciphertexts obtained by encryption, the master key ID used to encrypt the entire response message of the called party and the encrypted second cryptographic hash value, the session key material N2 corresponding to each call time period divided by the current clock of the called party, the session key, the initialization vector, the verification random number and the verification random number ciphertext.
[0065] Further, after receiving the ACK message sent by the calling party, when using RTP to transmit the audio and video stream, the method also includes:
[0066] Sending an RTP stream, the call period sampling field in the RTP message sent by the called party determines the lower edge of the corresponding call period sequence interval of the called party, and uses the session key and initialization vector corresponding to the lower edge of the call period sequence interval of the called party as the session key and initialization vector used for actual encryption;
[0067] Receive the RTP stream sent by the caller, determine the lower edge of the call period sequence interval corresponding to the caller by the call period sampling field of the RTP message sent by the caller, and use the session key and initialization vector corresponding to the lower edge of the caller's call period sequence interval as the session key and initialization vector used for actual decryption.
[0068] Furthermore, the storage space of the secure storage medium is divided into a plurality of mutually isolated subspaces, each of the subspaces stores a master key belonging to the same secret talk private network, and the same secret talk private network stores the master keys with the same key ID identifier; the master keys are charged by a quantum key distribution network or by a key agent.
[0069] In a third aspect, the present invention provides a VoIP terminal, wherein the VoIP terminal integrates a first secure storage medium, wherein the first secure storage medium stores master keys belonging to different secret call private networks, and when the VoIP terminal acts as a calling party, the VoIP terminal comprises:
[0070] The first data transceiver module is used to initiate a SIP session request to a called party that belongs to the same private network as the called party, wherein the INVITE message instruction of the SIP session request includes a SIP message header and an SDP message body;
[0071] A first key management module, used for randomly selecting two master key ID numbers and corresponding master keys belonging to the secret call private network to which the called party belongs from the first secure storage medium integrated therein;
[0072] A first data encryption and decryption module is used to use one of the master keys to encrypt the n session key materials N1 in the SDP message body to obtain n first session key ciphertexts, and use another of the master keys to calculate a first cryptographic hash value for the INVITE message instruction to obtain the INVITE ciphertext of this SIP session, wherein the SDP message body of the INVITE ciphertext is provided with an extended parameter a field to carry key negotiation information and talk time period information, and the n session key materials N1 are hardware random numbers generated in real time by the calling party, and correspond to the talk time periods divided by the current clock of the calling party respectively;
[0073] The first data transceiver module is used to send the INVITE ciphertext of this SIP session to the called party, so that the called party generates an INVITE response message based on the INVITE ciphertext;
[0074] The first data transceiver module is used to receive the INVITE response message, decrypt it to obtain n session key materials N2, and generate n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2, where the n session key materials N2 are hardware random numbers generated in real time by the called party, and correspond to each call time period divided by the current clock of the called party;
[0075] The first encrypted conversation module is used to conduct an encrypted conversation with the called party based on the n session keys and the n initialization vectors.
[0076] In a fourth aspect, the present invention provides a VoIP terminal, wherein the VoIP terminal integrates a second secure storage medium, wherein the second secure storage medium stores master keys belonging to different secret call private networks, and when the VoIP terminal is used as a called party, the VoIP terminal includes:
[0077] The second data transceiver module is used to receive the INVITE ciphertext sent by the calling party;
[0078] The second data encryption and decryption module is used to call the second key management module to retrieve the corresponding master key from the secure storage medium according to the netID of the private network to which the calling and called parties belong and the master key ID used to encrypt the INVITE message of the calling party, so as to verify the first cryptographic hash value;
[0079] and for, when the verification is passed, calling the second key management module to retrieve the corresponding master key from the secure storage medium to decrypt the first session key ciphertext according to the netID of the private network to which the calling and called parties belong and the master key ID used to encrypt the n session key materials N1 generated by the calling party, to obtain n session key materials N1, wherein the session key materials N1 are hardware data generated by the calling party at any time, and correspond to the various call time periods divided by the current clock of the calling party;
[0080] The second key management module is used to obtain n hardware random numbers as session key materials N2 from its own integrated secure storage medium, and the n session key materials N2 respectively correspond to each call time period divided by the current clock of the called party;
[0081] The second data encryption and decryption module is further used to generate an INVITE response message based on the n session key materials N1 and the n session key materials N2.
[0082] In a fifth aspect, the present invention proposes a method for implementing an end-to-end VoIP multi-encrypted encrypted call, the method comprising:
[0083] The calling party initiates a SIP session request to the called party who belongs to the same private network as the calling party, and randomly selects two master keys from the first secure storage medium integrated therein, encrypts n session key materials N1 to obtain the first session key ciphertext and calculates the first cryptographic hash value of the entire INVITE message instruction, and generates the INVITE ciphertext of this SIP session. The extended parameter a field in the SDP message body of the INVITE ciphertext carries the session key material N1 and the call period sequence information;
[0084] The called party receives the INVITE ciphertext, verifies the first cryptographic hash value and decrypts the first session key ciphertext to obtain n session key materials N1;
[0085] The called party generates a verification random number and n session key materials N2, and generates n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2, wherein the n session key materials N2 correspond to the call time periods divided by the called party according to the current clock.
[0086] The called party obtains two master keys from its integrated second secure storage medium, encrypts n session key materials N2 respectively to obtain the second session key ciphertext and calculates the second cryptographic hash value of the entire INVITE response message;
[0087] The called party generates an INVITE response message based on the verification random number, n session keys, n initialization vectors, the second session key ciphertext and the second cryptographic hash value;
[0088] The calling party receives the INVITE response message, decrypts it to obtain n session key materials N2, and generates n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2;
[0089] The calling party carries out an encrypted conversation with the called party based on the n session keys and the n initialization vectors.
[0090] In a sixth aspect, the present invention proposes an encrypted call system for realizing end-to-end VoIP one-call multiple-secrets, the system comprising a first VoIP terminal, a second VoIP terminal, a service acceptance platform and a quantum key distribution network, wherein the first VoIP terminal and the second VoIP terminal are respectively integrated with a first secure storage medium and a second secure storage medium, the first secure storage medium and the second secure storage medium store master keys belonging to different secret call private networks, the first VoIP terminal, the second VoIP terminal and the service acceptance platform are respectively connected to the quantum key distribution network, the first VoIP terminal and the second VoIP terminal are respectively connected to the service acceptance platform, and the first VoIP terminal and the second VoIP terminal are connected;
[0091] The service acceptance platform is used to provide the corresponding relationship between the first VoIP terminal, the second VoIP terminal and the quantum key distribution network, and divide the encrypted call private network;
[0092] The quantum key distribution network is used to pre-fill the first secure storage medium and the second secure storage medium with a master key;
[0093] The first VoIP terminal includes:
[0094] A data transceiver module is used to initiate a SIP session request to a called party that belongs to the same private network as the called party, wherein the INVITE message instruction of the SIP session request includes a SIP message header and an SDP message body;
[0095] A key management module, used for randomly selecting two master key ID numbers and corresponding master keys belonging to the secret call private network to which the called party belongs from the secure storage medium integrated therein;
[0096] A data encryption and decryption module, used to use one of the master keys to encrypt the n session key materials N1 in the SDP message body to obtain n first session key ciphertexts, and use another of the master keys to calculate a first cryptographic hash value for the INVITE message instruction to obtain the INVITE ciphertext of this SIP session, wherein the SDP message body of the INVITE ciphertext is provided with an extended parameter a field to carry key negotiation information and talk time period information, and the n session key materials N1 are hardware random numbers generated in real time by the calling party, and correspond to the talk time periods divided by the current clock of the calling party respectively;
[0097] The data transceiver module is used to send the INVITE ciphertext of this SIP session to the second VoIP terminal, so that the second VoIP terminal generates an INVITE response message based on the INVITE ciphertext;
[0098] The data transceiver module is used to receive the INVITE response message, decrypt it to obtain n session key materials N2, and generate n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2, where the n session key materials N2 are hardware random numbers generated in real time by the called party, and correspond to each call time period divided by the current clock of the called party;
[0099] The encrypted conversation module is used to conduct an encrypted conversation with the called party based on the n session keys and the n initialization vectors.
[0100] The advantages of the present invention are:
[0101] (1) The present invention uses multiple session keys bound to the call period sequence to achieve non-interrupted call key replacement during a long call. As the call time increases, it can ensure that different session keys are used for each call period of the same call, avoiding the risk of cracking caused by the long use of a single session key, and achieving security protection for multiple keys for one call. The method based on a large number of pre-shared master keys pre-filled solves the problem of end-to-end transparent encryption calls in VoIP, reducing the complexity of commonly used VoIP encryption calls based on digital certificates and asymmetric cryptographic systems.
[0102] (2) A VoIP encryption call solution based on quantum key distribution network pre-charged keys and symmetric cryptographic system for end-to-end key negotiation was constructed. The pre-charged keys and end-to-end key negotiation solved the huge burden on the central key management or key distribution platform during real-time voice encryption calls.
[0103] Additional aspects and advantages of the present invention will be given in part in the following description and in part will be obvious from the following description, or will be learned through practice of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS
[0104] Figure 1 It is a flowchart of a method for implementing an end-to-end VoIP multi-encrypted encrypted call proposed in the first embodiment of the present invention;
[0105] Figure 2 It is a flowchart of a method for implementing an end-to-end VoIP multi-encrypted encrypted call proposed in the second embodiment of the present invention;
[0106] Figure 3 is a schematic structural diagram of a VoIP terminal proposed in the third embodiment of the present invention;
[0107] Figure 4 is a schematic structural diagram of a VoIP terminal proposed in a fourth embodiment of the present invention;
[0108] Figure 5It is a flowchart of a method for implementing an end-to-end VoIP multi-encrypted encrypted call proposed in a fifth embodiment of the present invention;
[0109] Figure 6 It is a complete flow chart of a method for implementing an end-to-end VoIP multi-encrypted encrypted call proposed in the fifth embodiment of the present invention;
[0110] Figure 7 It is a structural diagram of a system for implementing end-to-end VoIP multi-encrypted encrypted calls proposed in the sixth embodiment of the present invention. DETAILED DESCRIPTION
[0111] In order to make the purpose, technical solution and advantages of the embodiments of the present invention clearer, the technical solution in the embodiments of the present invention will be clearly and completely described below in combination with the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0112] Example 1
[0113] like Figure 1 As shown, the first embodiment of the present invention proposes a method for implementing an end-to-end VoIP multi-encrypted encrypted call. The method is applied to a VoIP terminal. The VoIP terminal integrates a secure storage medium. The secure storage medium stores master keys belonging to different encrypted call private networks. When the VoIP terminal acts as a calling party, the method includes the following steps:
[0114] S101, initiating a SIP session request to a called party that belongs to the same private network as the called party, wherein the INVITE message instruction of the SIP session request includes a SIP message header and an SDP message body;
[0115] It should be noted that before making a secret call, the caller first checks the address book to confirm that the called party and himself belong to the same secret call private network, and then initiates a secret call SIP call. If they do not belong to the same secret call private network, the secret call will not be made.
[0116] It should be noted that the encrypted network is demarcated by the business acceptance platform. VoIP terminals within the same encrypted network can make encrypted VoIP calls to each other. The business acceptance platform also accepts registrations from VoIP terminals, and different VoIP terminals can register to different encrypted networks.
[0117] S102, randomly selecting two master key ID numbers and corresponding master keys belonging to the private network of the called party from the integrated secure storage medium;
[0118] It should be noted that the secure storage medium in this embodiment includes but is not limited to large-capacity secure storage media such as secure SIM cards (for smart phones) or secure U shields (for personal computers). A large number of master keys can be pre-filled into the secure storage medium through the quantum key distribution network QKD. The key format is a 4-byte key ID + K-byte key and a K-byte initialization vector. All terminals in the same secret call network share the same master key identified by the same key ID.
[0119] It should be understood that the value of byte K is related to the encryption algorithm and is not specifically limited in this embodiment.
[0120] It should be noted that the quantum key distribution network and equipment used in this embodiment are based on but not limited to the QKD key distribution network, and the key pre-injection function involved can be implemented using any symmetric key management system and equipment.
[0121] S103, using one of the master keys to encrypt the n session key materials N1 in the SDP message body to obtain n first session key ciphertexts, using another of the master keys to calculate a first cryptographic hash value for the INVITE message instruction to obtain the INVITE ciphertext of this SIP session, setting an extended parameter a field in the SDP message body of the INVITE ciphertext to carry key negotiation information and talk time period information, the n session key materials N1 are hardware random numbers generated in real time by the calling party, and correspond to the talk time periods divided by the current clock of the calling party respectively;
[0122] It should be noted that, in this embodiment, a cryptographic hash algorithm HMAC with a key is specifically used to calculate the integrity check value of the INVITE message instruction to obtain the first cryptographic hash value.
[0123] It should be noted that the session key material N1 is a hardware random number generated in real time by the calling party reading n K bytes (n can be set and associated with the same number of call time period sequences) from a secure storage medium.
[0124] S104, sending the INVITE ciphertext of this SIP session to the called party, so that the called party generates an INVITE response message based on the INVITE ciphertext;
[0125] It should be noted that the process of the called party generating an INVITE response message is described in the following embodiment 2.
[0126] S105, receiving the INVITE response message, decrypting to obtain n session key materials N2, and generating n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2, wherein the n session key materials N2 are hardware random numbers generated in real time by the called party, and respectively correspond to each call time period divided by the current clock of the called party;
[0127] S106: Conduct an encrypted conversation with the called party based on the n session keys and the n initialization vectors.
[0128] The present invention uses multiple session keys bound to the call period sequence to achieve non-interrupted call key replacement during a long call. As the call time increases, it can ensure that different session keys are used for each call period of the same call, avoiding the risk of cracking caused by the long use of a single session key, and achieving security protection of multiple keys for one call. The method based on a large number of pre-shared master keys pre-filled solves the problem of end-to-end transparent encrypted VoIP calls, reducing the complexity of commonly used VoIP encrypted calls based on digital certificates and asymmetric cryptographic systems.
[0129] Moreover, the HMAC in this embodiment has an integrity protection function, which can prevent tampering, and comprehensively protect the encryption and integrity of the key material, which is more secure. The session key during the encrypted call is not directly generated by the caller, but is synthesized from the key materials generated by the caller and the called party respectively, which is not easy to be leaked or forged.
[0130] In one embodiment, in step S103, the n session key materials N1 are encrypted respectively using one of the master keys, and a cryptographic hash value is calculated for the INVITE message instruction using another of the master keys to obtain the INVITE ciphertext of the current SIP session, including the following steps:
[0131] S131, using one of the master keys to encrypt the n session key materials N1 respectively, to obtain the base64 codes corresponding to the n session key materials N1; wherein the call time periods corresponding to the n session key materials N1 are based on the current local timestamp of the caller as the starting time, and are incremented in sequence based on the duration of each session key usage in minutes as the interval value;
[0132] S132, setting an extended parameter a field in the SDP message body of the INVITE message instruction to carry key negotiation information and talk time information;
[0133] S133. Using another of the master keys, a cryptographic hash algorithm with a key is used to calculate a cryptographic hash value for the INVITE message instruction to obtain the INVITE ciphertext of this SIP session.
[0134] It should be noted that after the SIP session ends, the master key used is marked as invalid and cleared.
[0135] Specifically, this embodiment randomly selects two master key ID numbers and corresponding master keys from the master key storage space corresponding to the secret network identifier netID of the called party, one of which is used to encrypt the session key material N1, and the other master key is used to calculate the integrity check value of the content of the entire INVITE message instruction (including the SIP message header and the SDP message body) using the keyed cryptographic hash algorithm HMAC. The entire secret SIP INVITE message is shown in the following example:
[0136] INVITE sip:user2@ip_user2 SIP / 2.0
[0137] Via:SIP / 2.0 / UDP ip_user1:port_user1
[0138] Max-Forwards:XXX
[0139] Contact:<sip:user1@ip_user1:port_user1>
[0140] To: "user2"<sip:user2@ip_user2>
[0141] From: "user1"<sip:user1@ip_user1>
[0142] Call-ID:call_id_xxx
[0143] Cseq:1INVITE
[0144] Allow:INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,NOTIFY,MESSAGE,SUBSCRIBE,INFO
[0145] Content-Type:application / SDP
[0146] Content-Length:***
[0147] / / SDP message body content
[0148] v=0
[0149] o=user1 sessionid_xxx timestamp1_xxx IN IP4 ip_user1
[0150] s=talk
[0151] t=0 0
[0152] a=duration:minutes timestamp1_1timestamp1_2…timestamp1_n
[0153] a=network:netID
[0154] a=nonce:keyid_enc1 nonce1_encrypted_1nonce1_encrypted_2…nonce1_encrypted_n
[0155] a=hmac:keyid_hmac1 hmac1_xxx
[0156] m=audio 29000RTP / AVP 0
[0157] In the above example: minutes is the duration of each session key usage, in minutes; timestamp1_1 to timestamp1_n are call time periods divided with reference to the current clock of the caller, increasing in minutes, and timestamp1_1 is equal to the current local timestamp of the caller; netID is the ID of the encrypted private network to which the caller and the called party belong; keyid_enc1 is the master key ID used by the caller to encrypt the caller's session key material; keyid_hmac1 is the master key ID used by the caller to calculate HMAC for the entire message; nonce1_encrypted_k (k=1…n) is the base64 encoding of the encrypted caller's session key material, corresponding to n timestamps timestamp1_n, that is, there are n caller's session key materials; hmac1_xxx is the base64 encoding of the HMAC of the caller's INVITE message.
[0158] In one embodiment, the SDP message body content of the INVITE response message includes the netID of the private network to which the calling and called parties belong, the master key ID used to encrypt the n session key materials N2 generated by the called party and the n second session key ciphertexts obtained by encryption, the master key ID used to encrypt the entire response message of the called party and the encrypted second cryptographic hash value, the session key materials N2 corresponding to each call time period divided by the current clock of the called party, the session key, the initialization vector, the verification random number and the verification random number ciphertext, wherein the n session key materials N2 are hardware random numbers generated in real time by the called party;
[0159] The step S105: receiving the INVITE response message, decrypting to obtain n session key materials N2, and generating n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2, comprises the following steps:
[0160] S151, receiving the INVITE response message, and taking out the corresponding master key to verify the second cryptographic hash value through the private network identifier netID and the master key ID used to encrypt the entire response message of the called party;
[0161] S152, when the verification is passed, the corresponding master key is taken out to decrypt the second session key ciphertext through the private network identifier netID and the master key ID used to encrypt the n session key materials N2 generated by the called party, so as to obtain the n session key materials N2;
[0162] It should be noted that if the verification fails, the call will be terminated.
[0163] S153. Generate n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2.
[0164] In one embodiment, the step S153: generating n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2, is specifically:
[0165] SKEY_k=HMAC(HASH(N1_k|N2_k), call_id_xxx|sessionid_xxx)
[0166] SKEY_key_k=HMAC(SKEY_k,call_id_xxx|sessionid_xxx|0)
[0167] SKEY_iv_k=HMAC(SKEY_key_k, call_id_xxx|sessionid_xxx|1)
[0168] Wherein: SKEY_k is the intermediate result; N1_k is the kth session key material N1; N2_k is the kth session key material N2; call_id_xxx is the call ID of SIP; sessionid_xxx is the task ID of SIP; HASH(N1_k|N2_k) is the hash value calculated after splicing N1_k and N2_k; SKEY_key_k is the kth session key; SKEY_iv_k is the kth initialization vector.
[0169] In one embodiment, the step S106: performing an encrypted conversation with the called party based on the n session keys and the n initialization vectors, comprises the following steps:
[0170] S161. Decrypt the verification random number ciphertext based on the n session keys and the n initialization vectors to obtain a verification random number;
[0171] S162, comparing and verifying the verification random number obtained by decryption with the verification random number in plain text;
[0172] S163. When the verification is successful, reply the called party with an ACK message to complete the encrypted SIP three-way handshake communication;
[0173] It should be noted that if the verification fails, the call will be terminated directly.
[0174] S164. Based on the n session keys and the n initialization vectors, an encrypted conversation is performed with the called party, wherein the encryption mode adopts a CBC algorithm combined with a CFB algorithm.
[0175] It should be noted that the encryption mode is CBC (integer multiple of algorithm grouping) + CFB (remainder other than integer multiple of algorithm grouping), which is transparent to voice messages and does not increase any additional length overhead.
[0176] It should be noted that the calling party retains the values of the timestamp sequence (timestamp1_k / timestamp2_k (k=1...n)) of the SDP message sent by the calling party and the called party during the SIP handshake phase and the corresponding session key and initialization vector (SKEY_key_k / SKEY_iv_k (k=1...n)).
[0177] In one embodiment, when conducting an encrypted call with a called party, RTP is used to transmit audio and video streams, including the following steps:
[0178] Sending the RTP stream, the caller determines the lower edge of the call period sequence interval corresponding to the caller's call period by the call period sampling field in the RTP message sent by the caller, and uses the session key and initialization vector corresponding to the lower edge of the caller's call period sequence interval as the session key and initialization vector used for actual encryption;
[0179] Receive the RTP stream sent by the called party, determine the lower edge of the corresponding called party's call period sequence interval from the call period sampling field of the RTP message sent by the called party, and use the session key and initialization vector corresponding to the lower edge of the called party's call period sequence interval as the session key and initialization vector used for actual decryption.
[0180] Specifically, the calling party uses RTP to transmit audio and video streams, and determines the actual session key and initialization vector to be used based on the value of the timestamp sampling field of the RTP protocol message: if the RTP stream is sent by the calling party, the session key corresponding to the lower edge of the calling party's timestamp sequence interval corresponding to the timestamp of the RTP message is the session key and initialization vector used for actual encryption; if the RTP stream is received from the called party, the session key corresponding to the lower edge of the called party's timestamp sequence interval corresponding to the timestamp of the RTP message is the session key and initialization vector used for actual decryption. For example:
[0181] timestamp_k1 <timestamp_rtp<timestamp_k2
[0182] Wherein: timestamp_rtp is the timestamp time sampling domain of the RTP protocol message; timestamp_k1 and timestamp_k2 are a segment of the timestamp sequence in the SDP message, which can be a time series segment of the caller or a time series segment of the called party. The time segment where timestamp_rtp of the RTP protocol message is located determines the encryption key of the caller (the caller sends the RTP message, which is determined by the time series segment of the caller) or the decryption key (the caller accepts the RTP message, which is determined by the time series segment of the called party), or determines the encryption key of the called party (the callee sends the RTP message, which is determined by the time series segment of the called party) or the decryption key (the callee accepts the RTP message, which is determined by the time series segment of the caller).
[0183] It should be noted that the above SDP message exchange enables both parties to share the time sequence of the caller and the called party, using SKEY_key_k1 and SKEY_iv_k1 (k1=1...n). When k1 exceeds n, the encrypted call is terminated. As the call time increases, different session keys can be used for each minute period to achieve security protection of multiple keys for one call.
[0184] In one embodiment, the storage space of the secure storage medium is divided into a plurality of mutually isolated subspaces, each of the subspaces stores a master key belonging to the same secret talk private network and is distinguished by a 4-byte secret talk private network ID, and the master keys identified by the same key ID are stored in the same secret talk private network; the master keys are filled by a quantum key distribution network or by a key agent.
[0185] In one embodiment, before the step S101: initiating a SIP session request to the called party who belongs to the same private network as the called party, the method further includes:
[0186] An initialization program is run to perform an integrity check on the secure storage medium, and obtain authorization to use the master key stored in the secure storage medium.
[0187] This embodiment runs the initialization program to perform an integrity check on the hardware medium, and obtains authorization to use the master key stored in the secure storage medium through PIN code verification and other means, ensuring that the secure storage medium is in a usable state before making an encrypted VoIP call.
[0188] This embodiment establishes a simple, efficient and sufficiently secure VoIP (SIP protocol) audio and video data encryption and decryption session key distribution and negotiation mechanism by pre-filling the VoIP terminal and using the large-capacity master key generated by the quantum key distribution network QKD. Different from the technology of VOIP session key distribution or negotiation based on public key cryptography, this embodiment constructs a VOIP encrypted call solution based on the quantum key distribution network pre-filled key and symmetric cryptographic system for end-to-end key negotiation. The pre-filled key and end-to-end key negotiation solve the huge burden on the central key management or key distribution platform during real-time voice encrypted calls. It can also realize seamless replacement of session keys without affecting call continuity during long-term encrypted calls, thereby realizing one-call multi-key high-intensity encrypted calls between VoIP terminals.
[0189] Example 2
[0190] like Figure 2As shown, the second embodiment of the present invention proposes a method for realizing an end-to-end VoIP multi-encrypted call, the method is applied to a VoIP terminal, the VoIP terminal is integrated with a secure storage medium, the secure storage medium stores master keys belonging to different encrypted call private networks, and when the VoIP terminal is the called party, the method includes the following steps:
[0191] S201, receiving the INVITE ciphertext sent by the calling party;
[0192] It should be noted that the called party first checks the address book to confirm that the calling party and the called party belong to the same private network for confidential speech, and then processes the SIP message header and SDP message body.
[0193] S202, using the netID of the private network to which the calling and called parties belong and the master key ID used to encrypt the calling party's INVITE message, retrieve the corresponding master key to verify the first cryptographic hash value;
[0194] It should be noted that the recipient obtains the master key used for HMAC of this SIP message through netID and keyid_hmac1, which is used to verify the first cryptographic hash value. If the verification fails, the session is terminated.
[0195] S203, when the verification is passed, the corresponding master key is taken out to decrypt the first session key ciphertext through the netID of the private network to which the calling party and the called party belong and the master key ID used to encrypt the n session key materials N1 generated by the calling party, and the n session key materials N1 are hardware time data generated by the calling party, respectively corresponding to the various call time periods divided by the current clock of the calling party;
[0196] It should be noted that the recipient takes out the master key of the encrypted session key material N1 through netID and keyid_enc1 to decrypt the n first session key ciphertexts to obtain n session key materials N1.
[0197] S204, obtaining n hardware random numbers as session key materials N2 from its own integrated secure storage medium, wherein the n session key materials N2 respectively correspond to each call time period divided by the current clock of the called party;
[0198] It should be noted that the party to be handed over reads n K bytes of hardware random numbers generated in real time from its own integrated secure storage medium as the session key material N2.
[0199] S205: Generate an INVITE response message based on the n session key materials N1 and the n session key materials N2.
[0200] This embodiment uses multiple session keys bound to the call period sequence to achieve non-interrupted call key replacement during a long call. As the call time increases, it can ensure that different session keys are used for each call period of the same call, avoiding the risk of cracking caused by the long use of a single session key, and achieving security protection of multiple keys for one call. The method based on a large number of pre-shared master keys pre-filled solves the problem of end-to-end transparent encryption calls in VoIP, reducing the complexity of commonly used VoIP encryption calls based on digital certificates and asymmetric cryptographic systems.
[0201] In one embodiment, the step S205: generating an INVITE response message based on the n session key materials N1 and the n session key materials N2, comprises the following steps:
[0202] S251, generating n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2;
[0203] S252. Generate the INVITE response message based on the n session keys, the n initialization vectors and the n session key materials N2.
[0204] In one embodiment, the step S251: generating n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2, is specifically:
[0205] SKEY_k=HMAC(HASH(N1_k|N2_k), call_id_xxx|sessionid_xxx)
[0206] SKEY_key_k=HMAC(SKEY_k,call_id_xxx|sessionid_xxx|0)
[0207] SKEY_iv_k=HMAC(SKEY_key_k, call_id_xxx|sessionid_xxx|1)
[0208] Wherein: SKEY_k is the intermediate result; N1_k is the kth session key material N1; N2_k is the kth session key material N2; call_id_xxx is the call ID of SIP; sessionid_xxx is the task ID of SIP; HASH(N1_k|N2_k) is the hash value calculated after splicing N1_k and N2_k; SKEY_key_k is the kth session key; SKEY_iv_k is the kth initialization vector.
[0209] It should be noted that HMAC(x,y) means using x as the key to calculate the keyed hash value of y. If the number of parameter bits is insufficient, it is repeated from the first bit of the parameter until the required length of the algorithm is reached.
[0210] In one embodiment, the step S252: generating the INVITE response message based on the n session keys, the n initialization vectors and the n session key materials N2, comprises the following steps:
[0211] S2521, according to the netID of the private network to which the calling and called parties belong, obtain two corresponding master key IDs and corresponding master keys from the integrated secure storage medium;
[0212] S2522, using one of the master keys to encrypt the n session key materials N2 to obtain n second session key ciphertexts, and using another of the master keys to calculate a second cryptographic hash value for the INVITE response message;
[0213] S2523, using the n session keys and the n initialization vectors to encrypt the verification random number to obtain a verification random number ciphertext, where the verification random number is generated in real time by the called party;
[0214] It should be noted that the called party reads K bytes (K is related to the encryption algorithm) of hardware random numbers generated in real time from its own integrated secure storage medium as the session key verification random number.
[0215] S2524. Generate the INVITE response message, which includes a SIP message header and an SDP message body. The SDP message body includes the netID, a secret network identifier to which both the caller and the called party belong, a master key ID for encrypting n session key materials N2 generated by the called party and the n encrypted second session key ciphertexts, a master key ID for encrypting the entire response message of the called party and the encrypted second cryptographic hash value, session key materials N2 corresponding to each call time period divided by the current clock of the called party, the session key, the initialization vector, the verification random number and the verification random number ciphertext.
[0216] Specifically, in this embodiment, the called party randomly selects two master key ID numbers and corresponding master keys from the master key storage space corresponding to the netID, one of which is used to encrypt the session key material N2, and the other master key is used to calculate the integrity check value of the content of the entire INVITE instruction response message (including the SIP message header and the SDP message body) using the keyed cryptographic hash algorithm HMAC. After the SIP session ends, the master key used is marked as invalid and cleared. The entire SIP INVITE message response message is shown in the following example:
[0217] SIP / 2.0 200OK
[0218] Via:SIP / 2.0 / UDP ip_user1:port_user1
[0219] Max-Forwards:XXX
[0220] Contact:<sip:user2@ip_user2:port_user2>
[0221] To:“user2”<sip:user2@ip_user2>
[0222] From:“user1”<sip:user1@ip_user1>
[0223] Call-ID:call_id_xxx
[0224] Cseq:1INVITE
[0225] Content-Type:application / SDP
[0226] Content-Length:***
[0227] / / SDP message body content
[0228] v=0
[0229] o=user2 sessionid_xxx timestamp2_xxx IN IP4 ip_user2
[0230] s=talk
[0231] t=0 0
[0232] a=duration:minutes timestamp2_1timestamp2_2…timestamp2_n
[0233] a=network:netID
[0234] a=nonce:keyid_enc2 nonce2_encrypted_1nonce2_encrypted_2…nonce2_encrypted_n
[0235] a=hmac:keyid_hmac2 hmac2_xxx
[0236] a=verify nonce3 nonce3_encrypted_1nonce3_encrypted_2…nonce3_encrypted_n
[0237] m=audio 45000RTP / AVP 0
[0238] In the above example: timestamp2_1 to timestamp2_n are the call time periods divided with reference to the current clock of the called party; keyid_enc2 is the master key ID used to encrypt the called party's session key material; keyid_hmac2 is the master key ID used to calculate the HMAC of the entire called party's response message; nonce2_encrypted_k (k=1...n) is the base64 encoding of the encrypted called party's session key material; hmac2_xxx is the base64 encoding of the called party's response message HMAC; nonce3 is the session key verification random number generated by the called party; nonce3_encrypted_k (k=1...n) is the verification random number ciphertext encrypted by the called party using the session key SKEY_key_k and the initialization vector SKEY_iv_k.
[0239] It should be noted that the caller receives the SIP INVITE response message, and retrieves the master key used for the HMAC of this SIP message through netID and keyid_hmac2, verifies the second cryptographic hash value, and terminates the session if the verification fails. After the verification is correct, the master key of the encrypted session key material is retrieved through netID and keyid_enc2, and the session key material N2 is decrypted. The caller uses the same method as the called party to obtain the session key SKEY_key_k (k=1...n) and the initialization vector SKEY_iv_k, decrypts the nonce3 ciphertext and compares it with the plaintext for verification. After the verification is correct, the caller replies to the called party with an ACK message, completing the encrypted SIP three-way handshake.
[0240] It should be noted that the called party retains the values of the timestamp sequence (timestamp1_k / timestamp2_k (k=1...n)) of the SDP message sent by the called party and the calling party during the SIP handshake phase and the corresponding session key and initialization vector (SKEY_key_k / SKEY_iv_k (k=1...n)).
[0241] In one embodiment, after receiving the ACK message sent by the calling party, when RTP is used to transmit the audio and video stream, the method further includes:
[0242] Sending an RTP stream, the call period sampling field in the RTP message sent by the called party determines the lower edge of the corresponding call period sequence interval of the called party, and uses the session key and initialization vector corresponding to the lower edge of the call period sequence interval of the called party as the session key and initialization vector used for actual encryption;
[0243] Receive the RTP stream sent by the caller, determine the lower edge of the call period sequence interval corresponding to the caller by the call period sampling field of the RTP message sent by the caller, and use the session key and initialization vector corresponding to the lower edge of the caller's call period sequence interval as the session key and initialization vector used for actual decryption.
[0244] In one embodiment, the storage space of the secure storage medium is divided into a plurality of mutually isolated subspaces, each of the subspaces stores a master key belonging to the same secret talk private network, and the master keys with the same key ID identifier are stored in the same secret talk private network; the master keys are charged by a quantum key distribution network or by a key agent.
[0245] This embodiment establishes a simple, efficient and sufficiently secure VoIP (SIP protocol) audio and video data encryption and decryption session key distribution and negotiation mechanism by pre-filling the VoIP terminal and using the large-capacity master key generated by the quantum key distribution network QKD. Different from the technology of VOIP session key distribution or negotiation based on public key cryptography, this embodiment constructs a VOIP encrypted call solution based on the quantum key distribution network pre-filled key and symmetric cryptographic system for end-to-end key negotiation. The pre-filled key and end-to-end key negotiation solve the huge burden on the central key management or key distribution platform during real-time voice encrypted calls. It can also realize seamless replacement of session keys without affecting call continuity during long-term encrypted calls, thereby realizing one-call multi-key high-intensity encrypted calls between VoIP terminals.
[0246] Example 3
[0247] like Figure 3 As shown, the third embodiment of the present invention provides a VoIP terminal, the VoIP terminal integrates a first secure storage medium 11, the first secure storage medium 11 stores master keys belonging to different secret speech private networks, when the VoIP terminal acts as a calling party, the VoIP terminal includes:
[0248] The first data transceiver module 12 is used to initiate a SIP session request to the called party that belongs to the same private network as the called party, wherein the INVITE message instruction of the SIP session request includes a SIP message header and an SDP message body;
[0249] The first key management module 13 is used to randomly select two master key ID numbers and corresponding master keys belonging to the secret speech private network to which the called party belongs from the secure storage medium integrated therein;
[0250] The first data encryption and decryption module 14 is used to use one of the master keys to encrypt the n session key materials N1 in the SDP message body to obtain n first session key ciphertexts, and use another of the master keys to calculate the first cryptographic hash value for the INVITE message instruction to obtain the INVITE ciphertext of this SIP session, wherein the SDP message body of the INVITE ciphertext is provided with an extended parameter a field to carry key negotiation information and call period information, and the n session key materials N1 are hardware random numbers generated in real time by the calling party, and correspond to the call periods divided by the current clock of the calling party respectively;
[0251] The first data transceiver module 12 is used to send the INVITE ciphertext of this SIP session to the called party, so that the called party generates an INVITE response message based on the INVITE ciphertext;
[0252] The first data transceiver module 12 is used to receive the INVITE response message, and call the first data encryption and decryption module 14 to decrypt and obtain n session key materials N2, and generate n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2, where the n session key materials N2 are hardware random numbers generated in real time by the called party, and correspond to each call time period divided by the current clock of the called party;
[0253] The first encrypted conversation module 15 is used to perform an encrypted conversation with the called party based on the n session keys and the n initialization vectors.
[0254] The embodiment of the present invention uses multiple session keys bound to the call period sequence to achieve uninterrupted call key replacement during a long call. As the call time increases, it can ensure that different session keys are used for each call period of the same call, avoiding the risk of cracking caused by the long use of a single session key, and achieving security protection of multiple keys for one call. The method based on a large number of pre-shared master keys pre-filled solves the problem of end-to-end transparent encryption calls in VoIP, reducing the complexity of commonly used VoIP encryption calls based on digital certificates and asymmetric cryptographic systems.
[0255] In one embodiment, the first data encryption and decryption module 14 is specifically used to:
[0256] The n session key materials N1 are encrypted respectively using one of the master keys to obtain base64 codes corresponding to the n session key materials N1; wherein each call period corresponding to the n session key materials N1 starts at the current local timestamp of the caller and increases in sequence with the duration of each session key usage in minutes as the interval value;
[0257] Setting an extended parameter a field in the SDP message body of the INVITE message instruction to carry key negotiation information and talk time period information;
[0258] The INVITE message instruction is instructed to calculate a cryptographic hash value by using another master key and a cryptographic hash algorithm with a key, so as to obtain the INVITE ciphertext of this SIP session.
[0259] In one embodiment, the SDP message body content of the INVITE response message includes the netID of the private network to which the calling and called parties belong, the master key ID used to encrypt the n session key materials N2 generated by the called party and the n second session key ciphertexts obtained by encryption, the master key ID used to encrypt the entire response message of the called party and the encrypted second cryptographic hash value, the session key materials N2 corresponding to each call time period divided by the current clock of the called party, the session key, the initialization vector, the verification random number and the verification random number ciphertext, wherein the n session key materials N2 are hardware random numbers generated in real time by the called party;
[0260] The first data encryption and decryption module 14 is further used for:
[0261] For the INVITE response message received by the first data transceiver module 12, the corresponding master key is taken out to verify the second cryptographic hash value through the private network identifier netID and the master key ID used to encrypt the entire response message of the called party;
[0262] When the verification is passed, the corresponding master key is taken out to decrypt the second session key ciphertext through the private network identifier netID and the master key ID used to encrypt the n session key materials N2 generated by the called party, so as to obtain the n session key materials N2;
[0263] Based on the n session key materials N1 and the n session key materials N2, n session keys and n initialization vectors are generated, specifically:
[0264] SKEY_k=HMAC(HASH(N1_k|N2_k), call_id_xxx|sessionid_xxx)
[0265] SKEY_key_k=HMAC(SKEY_k,call_id_xxx|sessionid_xxx|0)
[0266] SKEY_iv_k=HMAC(SKEY_key_k, call_id_xxx|sessionid_xxx|1)
[0267] Wherein: SKEY_k is the intermediate result; N1_k is the kth session key material N1; N2_k is the kth session key material N2; call_id_xxx is the call ID of SIP; sessionid_xxx is the task ID of SIP; HASH(N1_k|N2_k) is the hash value calculated after splicing N1_k and N2_k; SKEY_key_k is the kth session key; SKEY_iv_k is the kth initialization vector.
[0268] In one embodiment, the first cipher module 15 is specifically used for:
[0269] Decrypting the verification random number ciphertext based on the n session keys and the n initialization vectors to obtain a verification random number;
[0270] Compare and verify the verification random number obtained by decryption with the verification random number in plain text;
[0271] When the verification is successful, the called party is replied with an ACK message to complete the encrypted SIP three-way handshake communication;
[0272] Based on the n session keys and the n initialization vectors, an encrypted conversation is performed with the called party, wherein the encryption mode adopts the CBC algorithm combined with the CFB algorithm.
[0273] It should be noted that the encryption mode is CBC (integer multiple of algorithm grouping) + CFB (remainder other than integer multiple of algorithm grouping), which is transparent to voice messages and does not increase any additional length overhead.
[0274] In one embodiment, the first encrypted call module 15 uses RTP to transmit audio and video streams when conducting an encrypted call, including the following steps:
[0275] Sending the RTP stream, the caller determines the lower edge of the call period sequence interval corresponding to the caller's call period by the call period sampling field in the RTP message sent by the caller, and uses the session key and initialization vector corresponding to the lower edge of the caller's call period sequence interval as the session key and initialization vector used for actual encryption;
[0276] Receive the RTP stream sent by the called party, determine the lower edge of the corresponding called party's call period sequence interval from the call period sampling field of the RTP message sent by the called party, and use the session key and initialization vector corresponding to the lower edge of the called party's call period sequence interval as the session key and initialization vector used for actual decryption.
[0277] In one embodiment, the storage space of the first secure storage medium is divided into a plurality of mutually isolated subspaces, each of the subspaces stores a master key belonging to the same secret talk private network and is distinguished by a 4-byte secret talk private network ID, and the master keys identified by the same key ID are stored in the same secret talk private network; the master keys are filled by a quantum key distribution network or by a key agent.
[0278] It should be noted that other embodiments or implementation methods of the VoIP terminal of the present invention can refer to the above-mentioned method embodiment 1, which will not be repeated here.
[0279] Example 4
[0280] like Figure 4 As shown, the fourth embodiment of the present invention provides a VoIP terminal, the VoIP terminal integrates a second secure storage medium 21, the second secure storage medium 21 stores master keys belonging to different secret call private networks, when the VoIP terminal is used as a called party, the VoIP terminal includes:
[0281] The second data transceiver module 22 is used to receive the INVITE ciphertext sent by the calling party;
[0282] The second data encryption and decryption module 23 is used to call the second key management module 24 to retrieve the corresponding master key from the secure storage medium according to the netID of the private network to which the calling and called parties belong and the master key ID used to encrypt the INVITE message of the calling party, so as to verify the first cryptographic hash value;
[0283] and for, when the verification is passed, calling the key management module to retrieve the corresponding master key from the secure storage medium to decrypt the first session key ciphertext according to the netID of the private network to which the calling and called parties belong and the master key ID used to encrypt the n session key materials N1 generated by the calling party, thereby obtaining n session key materials N1, wherein the session key materials N1 are hardware data generated by the calling party at any time, and correspond to the various call time periods divided by the current clock of the calling party;
[0284] The second key management module 24 is used to obtain n hardware random numbers as session key materials N2 from its own integrated secure storage medium, and the n session key materials N2 respectively correspond to each call time period divided by the current clock of the called party;
[0285] The second data encryption and decryption module 23 is further configured to generate an INVITE response message based on the n session key materials N1 and the n session key materials N2.
[0286] This embodiment uses multiple session keys bound to the call period sequence to achieve non-interrupted call key replacement during a long call. As the call time increases, it can ensure that different session keys are used for each call period of the same call, avoiding the risk of cracking caused by the long use of a single session key, and achieving security protection of multiple keys for one call. The method based on a large number of pre-shared master keys pre-filled solves the problem of end-to-end transparent encryption calls in VoIP, reducing the complexity of commonly used VoIP encryption calls based on digital certificates and asymmetric cryptographic systems.
[0287] In one embodiment, the second data encryption and decryption module 23 is specifically used to:
[0288] (1) generating n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2;
[0289] Specifically:
[0290] SKEY_k=HMAC(HASH(N1_k|N2_k), call_id_xxx|sessionid_xxx)
[0291] SKEY_key_k=HMAC(SKEY_k,call_id_xxx|sessionid_xxx|0)
[0292] SKEY_iv_k=HMAC(SKEY_key_k, call_id_xxx|sessionid_xxx|1)
[0293] Wherein: SKEY_k is the intermediate result; N1_k is the kth session key material N1; N2_k is the kth session key material N2; call_id_xxx is the call ID of SIP; sessionid_xxx is the task ID of SIP; HASH(N1_k|N2_k) is the hash value calculated after splicing N1_k and N2_k; SKEY_key_k is the kth session key; SKEY_iv_k is the kth initialization vector.
[0294] (2) Based on the n session keys, the n initialization vectors and the n session key materials N2, the INVITE response message is generated.
[0295] The specific steps include:
[0296] According to the netID of the private network to which the calling and called parties belong, two corresponding master key IDs and corresponding master keys are obtained from the integrated secure storage medium;
[0297] Encrypting n session key materials N2 using one of the master keys to obtain n second session key ciphertexts, and calculating a second cryptographic hash value for an INVITE response message using another of the master keys;
[0298] Encrypting the verification random number using the n session keys and the n initialization vectors to obtain a verification random number ciphertext, wherein the verification random number is generated in real time by the called party;
[0299] Generate the INVITE response message, the INVITE response message includes a SIP message header and an SDP message body, the SDP message body content includes the netID of the secret call private network to which the calling and called parties belong, the master key ID used to encrypt n session key materials N2 generated by the called party and the n second session key ciphertexts obtained by encryption, the master key ID used to encrypt the entire response message of the called party and the encrypted second cryptographic hash value, the session key material N2 corresponding to each call time period divided by the current clock of the called party, the session key, the initialization vector, the verification random number and the verification random number ciphertext.
[0300] In one embodiment, the VoIP terminal further includes a second encrypted speech module 25, which is specifically used to:
[0301] Sending an RTP stream, the call period sampling field in the RTP message sent by the called party determines the lower edge of the corresponding call period sequence interval of the called party, and uses the session key and initialization vector corresponding to the lower edge of the call period sequence interval of the called party as the session key and initialization vector used for actual encryption;
[0302] Receive the RTP stream sent by the caller, determine the lower edge of the call period sequence interval corresponding to the caller by the call period sampling field of the RTP message sent by the caller, and use the session key and initialization vector corresponding to the lower edge of the caller's call period sequence interval as the session key and initialization vector used for actual decryption.
[0303] In one embodiment, the storage space of the second secure storage medium 21 is divided into a plurality of mutually isolated subspaces, each of the subspaces stores a master key belonging to the same secret talk private network, and the master keys with the same key ID are stored in the same secret talk private network; the master keys are filled by a quantum key distribution network or by a key agent.
[0304] It should be noted that other embodiments or implementation methods of the VoIP terminal of the present invention may refer to the above-mentioned method embodiment 2, which will not be repeated here.
[0305] Example 5
[0306] like Figure 5 As shown, the third embodiment of the present invention proposes a method for implementing an end-to-end VoIP multi-encrypted encrypted call, the method comprising the following steps:
[0307] S301, the calling party initiates a SIP session request to the called party belonging to the same private network, and randomly selects two master keys from the first secure storage medium integrated therein, encrypts n session key materials N1 to obtain the first session key ciphertext and calculates the first cryptographic hash value of the entire INVITE message instruction, and generates the INVITE ciphertext of this SIP session. The extended parameter a field in the SDP message body of the INVITE ciphertext carries the session key material N1 and the call period sequence information;
[0308] S302, the called party receives the INVITE ciphertext, verifies the first cryptographic hash value and decrypts the first session key ciphertext to obtain n session key materials N1;
[0309] S303, the called party generates a verification random number and n session key materials N2, and generates n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2, wherein the n session key materials N2 respectively correspond to the call time periods divided by the called party according to the current clock;
[0310] S304, the called party obtains two master keys from its integrated second secure storage medium, encrypts n session key materials N2 respectively to obtain a second session key ciphertext and calculates a second cryptographic hash value of the entire INVITE response message;
[0311] S305. The called party generates an INVITE response message based on the verification random number, n session keys, n initialization vectors, the second session key ciphertext and the second cryptographic hash value;
[0312] S306. The calling party receives the INVITE response message, decrypts it to obtain n session key materials N2, and generates n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2;
[0313] S307: The calling party conducts an encrypted conversation with the called party based on the n session keys and the n initialization vectors.
[0314] In one embodiment, the specific implementation process of the calling party generating the INVITE ciphertext of the entire SIP cipher session is as follows:
[0315] The caller checks the address book to confirm that the called party and himself belong to the same private network for secret talk, and then initiates a secret talk SIP call. In the INVITE instruction of SIP (Session Initiation Protocol), the extended parameter a field in SDP (Session Description Protocol) is used to carry the key negotiation related information. The caller calls the key management module to read n K bytes (K is related to the encryption algorithm, and n can be set and associated with the same number of time segment sequences) from the secure SIM card or secure U shield. The hardware random number generated in real time is used as the session key material N1, and two master key ID numbers and corresponding master keys are randomly selected from the master key storage space corresponding to the private network ID of the called party. One of the master keys is used to encrypt the session key material N1, and the other master key is used to calculate the integrity check value of the entire INVITE instruction content (including the SIP message header and SDP message body) using the keyed cryptographic hash algorithm HMAC. After the SIP session ends, the master key used is marked as invalid and cleared. The entire secret talk SIP INVITE message is shown in the following example:
[0316] INVITE sip:user2@ip_user2 SIP / 2.0
[0317] Via:SIP / 2.0 / UDP ip_user1:port_user1
[0318] Max-Forwards:XXX
[0319] Contact:<sip:user1@ip_user1:port_user1>
[0320] To: "user2"<sip:user2@ip_user2>
[0321] From: "user1"<sip:user1@ip_user1>
[0322] Call-ID:call_id_xxx
[0323] Cseq:1INVITE
[0324] Allow:INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,NOTIFY,MESSAGE,SUBSCRIBE,INFO
[0325] Content-Type:application / SDP
[0326] Content-Length:***
[0327] / / SDP message body content
[0328] v=0
[0329] o=user1 sessionid_xxx timestamp1_xxx IN IP4 ip_user1
[0330] s=talk
[0331] t=0 0
[0332] a=duration:minutes timestamp1_1timestamp1_2…timestamp1_n
[0333] a=network:netID
[0334] a=nonce:keyid_enc1 nonce1_encrypted_1nonce1_encrypted_2…nonce1_encrypted_n
[0335] a=hmac:keyid_hmac1 hmac1_xxx
[0336] m=audio 29000RTP / AVP 0
[0337] In the above example: minutes is the duration of each session key usage, in minutes; timestamp1_1 to timestamp1_n are call time periods divided with reference to the caller's current clock, increasing in minutes, and timestamp1_1 is equal to the caller's local current timestamp; netID is the ID of the encrypted private network to which the caller and the called party belong; keyid_enc1 is the master key ID used by the caller to encrypt the caller's session key material; keyid_hmac1 is the master key ID used by the caller to calculate HMAC for the entire message; nonce1_encrypted_k (k=1…n) is the base64 encoding of the encrypted caller's session key material, corresponding to n timestamps timestamp1_n, that is, there are n caller's session key materials; hmac1_xxx is the base64 encoding of the caller's message HMAC.
[0338] In one embodiment, the implementation process of the called party generating the INVITE response message is as follows:
[0339] The called party checks the address book to confirm that the called party and himself belong to the same private network for secret calls, and then processes the SIP and SDP messages. The master key used for the HMAC of this SIP message is taken out through netID and keyid_hmac1, and the cryptographic hash value is verified. If the verification fails, the session is terminated. After the verification is correct, the master key of the encrypted session key material is taken out through netID and keyid_enc1 to decrypt and obtain n session key materials. The called party calls the key management module to read n K bytes of hardware random numbers generated in real time from the secure SIM card or secure U shield as the session key material N2, and randomly selects two master key ID numbers and corresponding master keys from the master key storage space corresponding to the netID. One of the master keys is used to encrypt the session key material N2, and the other master key is used to calculate the integrity check value of the entire INVITE command response message (including the SIP message header and SDP message body) using the keyed cryptographic hash algorithm HMAC. After the SIP session ends, the master key used is marked as invalid and cleared.
[0340] The called party generates n session keys and initialization vectors based on N1 and N2 (in the following formula, HMAC(x,y) means using x as the key to calculate the keyed hash value for y. If the number of parameter bits is insufficient, it is repeated from the first bit of the parameter until the required length of the algorithm is reached):
[0341] SKEY_k=HMAC(HASH(N1_k|N2_k),call_id_xxx|sessionid_xxx)
[0342] SKEY_key_k=HMAC(SKEY_k,call_id_xxx|sessionid_xxx|0)
[0343] SKEY_iv_k=HMAC(SKEY_key_k, call_id_xxx|sessionid_xxx|1)
[0344] In the above formula, N1_k is the kth (k=1…n) caller session key material, N2_k is the kth called party session key material, SKEY_key_k is the kth session key, SKEY_iv_k is the kth initialization vector, and the called party calls the key management module to read K bytes (K is related to the encryption algorithm) from the secure SIM card or secure U shield to generate a real-time hardware random number as the session key verification random number, and uses the session key and initialization vector to encrypt the verification random number.
[0345] The entire SIP INVITE message response message is shown in the following example:
[0346] SIP / 2.0 200OK
[0347] Via: SIP / 2.0 / UDP ip_user1:port_user1
[0348] Max-Forwards: XXX
[0349] Contact: <sip:user2@ip_user2:port_user2>
[0350] To: “user2” <sip:user2@ip_user2>
[0351] From: “user1” <sip:user1@ip_user1>
[0352] Call-ID: call_id_xxx
[0353] Cseq: 1 INVITE
[0354] Content-Type: application / SDP
[0355] Content-Length: ***
[0356] / / SDP message body content
[0357] v = 0
[0358] o = user2 sessionid_xxx timestamp2_xxx IN IP4 ip_user2
[0359] s = talk
[0360] t = 0 0
[0361] a = duration: minutes timestamp2_1timestamp2_2…timestamp2_n
[0362] a = network: netID
[0363] a = nonce: keyid_enc2 nonce2_encrypted_1nonce2_encrypted_2…nonce2_encrypted_n
[0364] a = hmac: keyid_hmac2 hmac2_xxx
[0365] a=verify nonce3 nonce3_encrypted_1nonce3_encrypted_2…nonce3_encrypted_n
[0366] m=audio 45000RTP / AVP 0
[0367] In the above example: timestamp2_1 to timestamp2_n are the call time periods divided with reference to the current clock of the called party; keyid_enc2 is the master key ID used to encrypt the called party's session key material; keyid_hmac2 is the master key ID used to calculate the HMAC of the entire called party's response message; nonce2_encrypted_k (k=1...n) is the base64 encoding of the encrypted called party's session key material; hmac2_xxx is the base64 encoding of the called party's response message HMAC; nonce3 is the session key verification random number generated by the called party; nonce3_encrypted_k (k=1...n) is the verification random number ciphertext encrypted by the called party using the session key SKEY_key_k and the initialization vector SKEY_iv_k.
[0368] In one embodiment, the specific process of the calling party decrypting the received SIP INVITE response message is as follows:
[0369] The master key used for HMAC of this SIP message is retrieved through netID and keyid_hmac2, and the hash value of the password is verified. If the verification fails, the session is terminated. After the verification is correct, the master key of the encrypted session key material is retrieved through netID and keyid_enc2, and the session key material N2 is decrypted. The caller obtains the session key SKEY_key_k (k=1…n) and the initialization vector SKEY_iv_k in the same way as the called party in S4, decrypts the nonce3 ciphertext and compares it with the plaintext for verification. After the verification is correct, the caller replies to the called party with an ACK message, completing the encrypted SIP three-way handshake.
[0370] In one embodiment, the calling party and the called party use the session key and initialization vector obtained in the above steps to conduct an encrypted call, and the encryption mode is CBC (integer multiples of the algorithm grouping) + CFB (the remainder part other than the integer multiples of the algorithm grouping), which is transparent to the voice message and does not add any additional length overhead.
[0371] In one embodiment, both the calling party and the called party use RTP to transmit audio and video streams, and determine the actual session key and initialization vector to be used based on the value of the timestamp sampling field of the RTP protocol message: if the RTP stream is sent by the party, the session key corresponding to the lower edge of the timestamp sequence interval of the party corresponding to the timestamp of the RTP message is the session key and initialization vector actually used for encryption; if the RTP stream is received from the other party, the session key corresponding to the lower edge of the timestamp sequence interval of the other party corresponding to the timestamp of the RTP message is the session key and initialization vector actually used for decryption. For example:
[0372] timestamp_k1 <timestamp_rtp<timestamp_k2
[0373] Then use SKEY_key_k1 and SKEY_iv_k1 (k1 = 1...n). When k1 exceeds n, the encrypted call is terminated. As the call time increases, different session keys can be used for each minute period to achieve the security of multiple keys for one call.
[0374] In one embodiment, if Figure 6 As shown, before step S301, this embodiment further includes:
[0375] The business acceptance platform demarcates a private network for encrypted calls, and VoIP terminals within the private network can make encrypted VoIP calls to each other, while accepting registrations from VoIP terminals.
[0376] It should be noted that different VoIP terminals can be registered to different private networks for secret calls. Each VoIP terminal in the private network for secret calls is equipped with a dedicated secure SIM card (for smart phones) or secure U shield (for personal computers) and other large-capacity secure storage media. A large number of master keys are pre-filled into the secure SIM card or secure U shield through the quantum key distribution network QKD. The key format is 4-byte key ID + K-byte key and K-byte initialization vector (K is related to the encryption algorithm). Each terminal in the same private network for secret calls shares the same master key identified by the same key ID. The secure SIM card or secure U shield used in this embodiment can be divided into mutually isolated subspaces in its protected internal storage space, which are used to store master keys belonging to different private networks for secret calls and distinguish them using 4-byte private network IDs.
[0377] In one embodiment, before step S301, the present embodiment further includes:
[0378] Insert the secure storage medium into the VoIP terminal, run the initialization program to check the integrity of the secure storage medium, and obtain authorization to use the master key stored in the secure storage medium through PIN code verification, etc., to ensure that the secure storage medium is available before making an encrypted VoIP call
[0379] Example 6
[0380] like Figure 7 As shown, the sixth embodiment of the present invention further proposes an encrypted call system for realizing end-to-end VoIP one-call multiple-secrets, the system comprising a first VoIP terminal 10, a second VoIP terminal 20, a service acceptance platform 30 and a quantum key distribution network 40, wherein the first VoIP terminal 10 and the second VoIP terminal 20 are respectively integrated with a first secure storage medium and a second secure storage medium, the first secure storage medium and the second secure storage medium store master keys belonging to different secret call private networks, the first VoIP terminal 10, the second VoIP terminal 20 and the service acceptance platform 30 are respectively connected to the quantum key distribution network 40, the first VoIP terminal 10 and the second VoIP terminal 20 are respectively connected to the service acceptance platform 30, and the first VoIP terminal 10 and the second VoIP terminal 20 are connected;
[0381] The service acceptance platform 30 is used to provide the corresponding relationship between the first VoIP terminal 10, the second VoIP terminal 20 and the quantum key distribution network 40, and to divide the private network for encrypted calls;
[0382] The quantum key distribution network 40 is used to pre-fill the first secure storage medium and the second secure storage medium with a master key;
[0383] The first VoIP terminal 10 comprises:
[0384] A data transceiver module is used to initiate a SIP session request to a called party that belongs to the same private network as the called party, wherein the INVITE message instruction of the SIP session request includes a SIP message header and an SDP message body;
[0385] A key management module, used for randomly selecting two master key ID numbers and corresponding master keys belonging to the secret call private network to which the called party belongs from the secure storage medium integrated therein;
[0386] A data encryption and decryption module, used to use one of the master keys to encrypt the n session key materials N1 in the SDP message body to obtain n first session key ciphertexts, and use another of the master keys to calculate a first cryptographic hash value for the INVITE message instruction to obtain the INVITE ciphertext of this SIP session, wherein the SDP message body of the INVITE ciphertext is provided with an extended parameter a field to carry key negotiation information and talk time period information, and the n session key materials N1 are hardware random numbers generated in real time by the calling party, and correspond to the talk time periods divided by the current clock of the calling party respectively;
[0387] The data transceiver module is used to send the INVITE ciphertext of this SIP session to the second VoIP terminal, so that the second VoIP terminal generates an INVITE response message based on the INVITE ciphertext;
[0388] The data transceiver module is used to receive the INVITE response message, decrypt it to obtain n session key materials N2, and generate n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2, where the n session key materials N2 are hardware random numbers generated in real time by the called party, and correspond to each call time period divided by the current clock of the called party;
[0389] The encrypted conversation module is used to conduct an encrypted conversation with the called party based on the n session keys and the n initialization vectors.
[0390] It should be noted that VoIP terminals include terminal devices such as smart phones and personal computers, which are the carriers of VoIP audio and video calls. The terminals directly negotiate session keys and encrypt and decrypt VoIP audio and video data. The internal components of the terminals include key management modules, data processing modules, secure SIM cards or secure U-shields and other secure storage media.
[0391] Business acceptance platform: used to divide the private network for confidential calls and provide registration and identity binding services for VoIP terminals.
[0392] Key agent: Provides key injection agent function when the VoIP terminal cannot directly inject keys into the nodes of the quantum key distribution network.
[0393] Quantum key distribution network: includes quantum network nodes and quantum network link control center, realizing quantum key generation, quantum key relay, quantum key provision and other services;
[0394] Quantum network node: used to store the generated quantum key, receive key applications from key agents, provide keys to key agents or directly provide key filling services;
[0395] Quantum network link control center: can establish quantum key distribution and relay links between nodes according to quantum network node ID.
[0396] In one embodiment, the second VoIP terminal 20 includes:
[0397] Data transceiver module, used for receiving the INVITE ciphertext sent by the calling party;
[0398] A data encryption and decryption module, used to call the key management module to retrieve the corresponding master key from the secure storage medium according to the netID of the private network to which the calling and called parties belong and the master key ID used to encrypt the INVITE message of the calling party, so as to verify the first cryptographic hash value;
[0399] and for, when the verification is passed, calling the key management module to retrieve the corresponding master key from the secure storage medium to decrypt the first session key ciphertext according to the netID of the private network to which the calling and called parties belong and the master key ID used to encrypt the n session key materials N1 generated by the calling party, thereby obtaining n session key materials N1, wherein the session key materials N1 are hardware data generated by the calling party at any time, and correspond to the various call time periods divided by the current clock of the calling party;
[0400] The password management module is used to obtain n hardware random numbers as session key materials N2 from its own integrated secure storage medium, and the n session key materials N2 respectively correspond to each call time period divided by the current clock of the called party;
[0401] The data encryption and decryption module is further used to generate an INVITE response message based on the n session key materials N1 and the n session key materials N2.
[0402] It should be noted that other embodiments or implementation methods of the end-to-end VoIP multi-encrypted call system of the present invention can refer to the above-mentioned VoIP terminal embodiments 3 and 4, which are not repeated here.
[0403] It should be noted that the logic and / or steps represented in the flowchart or otherwise described herein, for example, can be considered as a sequenced list of executable instructions for implementing logical functions, and can be specifically implemented in any computer-readable medium for use by an instruction execution system, device or apparatus (such as a computer-based system, a system including a processor, or other system that can fetch instructions from an instruction execution system, device or apparatus and execute instructions), or in combination with these instruction execution systems, devices or apparatuses. For the purposes of this specification, "computer-readable medium" can be any device that can contain, store, communicate, propagate or transmit a program for use by an instruction execution system, device or apparatus, or in combination with these instruction execution systems, devices or apparatuses. More specific examples of computer-readable media (a non-exhaustive list) include the following: an electrical connection portion with one or more wirings (electronic device), a portable computer disk box (magnetic device), a random access memory (RAM), a read-only memory (ROM), an erasable and programmable read-only memory (EPROM or flash memory), an optical fiber device, and a portable compact disk read-only memory (CDROM). In addition, the computer-readable medium may even be paper or other suitable medium on which the program is printed, since the program may be obtained electronically, for example, by optically scanning the paper or other medium and then editing, interpreting or processing in other suitable ways if necessary, and then stored in a computer memory.
[0404] It should be understood that the various parts of the present invention can be implemented by hardware, software, firmware or a combination thereof. In the above-mentioned embodiments, a plurality of steps or methods can be implemented by software or firmware stored in a memory and executed by a suitable instruction execution system. For example, if implemented by hardware, as in another embodiment, it can be implemented by any one of the following technologies known in the art or their combination: a discrete logic circuit having a logic gate circuit for implementing a logic function for a data signal, a dedicated integrated circuit having a suitable combination of logic gate circuits, a programmable gate array (PGA), a field programmable gate array (FPGA), etc.
[0405] In the description of this specification, the description with reference to the terms "one embodiment", "some embodiments", "examples", "specific examples", or "some examples" means that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present invention. In this specification, the schematic representation of the above terms does not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials or characteristics described may be combined in any one or more embodiments or examples in a suitable manner.
[0406] In addition, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Therefore, the features defined as "first" and "second" may explicitly or implicitly include at least one of the features. In the description of the present invention, the meaning of "plurality" is at least two, such as two, three, etc., unless otherwise clearly and specifically defined.
[0407] Although the embodiments of the present invention have been shown and described above, it is to be understood that the above embodiments are exemplary and are not to be construed as limitations of the present invention. A person skilled in the art may change, modify, replace and vary the above embodiments within the scope of the present invention.
Claims
1. A method for implementing end-to-end VoIP multi-encrypted encrypted conversation, characterized in that: The method is applied to a VoIP terminal, the VoIP terminal is integrated with a secure storage medium, the secure storage medium stores master keys belonging to different private networks for encrypted conversations, and when the VoIP terminal is used as a calling party, comprises the following steps: Initiate a SIP session request to the called party that belongs to the same private network as the called party, wherein the INVITE message instruction of the SIP session request includes a SIP message header and an SDP message body; Randomly select two master key ID numbers and corresponding master keys belonging to the secret call private network to which the called party belongs from the integrated secure storage medium; Using one of the master keys to encrypt the n session key materials N1 in the SDP message body to obtain n first session key ciphertexts, using another of the master keys to calculate a first cryptographic hash value for the INVITE message instruction to obtain the INVITE ciphertext of this SIP session, wherein an extended parameter a field is set in the SDP message body of the INVITE ciphertext to carry key negotiation information and talk time period information, and the n session key materials N1 are hardware random numbers generated in real time by the caller, and correspond to the talk time periods divided by the current clock of the caller respectively; Sending the INVITE ciphertext of this SIP session to the called party, so that the called party generates an INVITE response message based on the INVITE ciphertext; Receive the INVITE response message, decrypt to obtain n session key materials N2, and generate n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2, where the n session key materials N2 are hardware random numbers generated in real time by the called party, and correspond to the call time periods divided by the current clock of the called party respectively; Based on the n session keys and the n initialization vectors, an encrypted conversation is performed with the called party.
2. The method for realizing end-to-end VoIP multi-encrypted encrypted conversation as claimed in claim 1, characterized in that: The method of using one of the master keys to encrypt the n session key materials N1 respectively and using another of the master keys to calculate a cryptographic hash value for the INVITE message instruction to obtain the INVITE ciphertext of the current SIP session includes: The n session key materials N1 are encrypted respectively using one of the master keys to obtain base64 codes corresponding to the n session key materials N1; wherein each call period corresponding to the n session key materials N1 starts at the current local timestamp of the caller and increases in sequence with the duration of each session key usage in minutes as the interval value; Setting an extended parameter a field in the SDP message body of the INVITE message instruction to carry key negotiation information and talk time period information; The INVITE message instruction is instructed to calculate a cryptographic hash value by using another master key and a cryptographic hash algorithm with a key, so as to obtain the INVITE ciphertext of this SIP session.
3. The method for realizing end-to-end VoIP multi-encrypted encrypted conversation as claimed in claim 1, characterized in that: The SDP message body content of the INVITE response message includes the netID of the private network to which the calling and called parties belong, the master key ID used to encrypt the n session key materials N2 generated by the called party and the n second session key ciphertexts obtained by encryption, the master key ID used to encrypt the entire response message of the called party and the encrypted second cryptographic hash value, the session key materials N2 corresponding to each call time period divided by the current clock of the called party, the session key, the initialization vector, the verification random number and the verification random number ciphertext, wherein the n session key materials N2 are hardware random numbers generated in real time by the called party; The receiving the INVITE response message, decrypting to obtain n session key materials N2, and generating n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2, includes: Receive the INVITE response message, and use the private network identifier netID and the master key ID used to encrypt the entire response message of the called party to retrieve the corresponding master key to verify the second cryptographic hash value; When the verification is passed, the corresponding master key is taken out to decrypt the second session key ciphertext through the private network identifier netID and the master key ID used to encrypt the n session key materials N2 generated by the called party, so as to obtain the n session key materials N2; Based on the n session key materials N1 and the n session key materials N2, n session keys and n initialization vectors are generated.
4. The method for realizing end-to-end VoIP multi-encrypted encrypted conversation as claimed in claim 3, characterized in that: The step of generating n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2 comprises: SKEY_k=HMAC(HASH(N1_k|N2_k), call_id_xxx|sessionid_xxx) SKEY_key_k=HMAC(SKEY_k,call_id_xxx|sessionid_xxx|0) SKEY_iv_k=HMAC(SKEY_key_k, call_id_xxx|sessionid_xxx|1) Wherein: SKEY_k is the intermediate result; N1_k is the kth session key material N1; N2_k is the kth session key material N2; call_id_xxx is the call ID of SIP; sessionid_xxx is the task ID of SIP; HASH(N1_k|N2_k) is the hash value calculated after splicing N1_k and N2_k; SKEY_key_k is the kth session key; SKEY_iv_k is the kth initialization vector.
5. The method for realizing end-to-end VoIP multi-encrypted encrypted conversation as claimed in claim 3, characterized in that: The method of performing an encrypted conversation with the called party based on the n session keys and the n initialization vectors comprises: Decrypting the verification random number ciphertext based on the n session keys and the n initialization vectors to obtain a verification random number; Compare and verify the verification random number obtained by decryption with the verification random number in plain text; When the verification is successful, the called party is replied with an ACK message to complete the encrypted SIP three-way handshake communication; Based on the n session keys and the n initialization vectors, an encrypted conversation is performed with the called party, wherein the encryption mode adopts the CBC algorithm combined with the CFB algorithm.
6. The method for realizing end-to-end VoIP multi-encrypted encrypted conversation as claimed in claim 1, characterized in that: When making an encrypted call with the called party, RTP is used to transmit audio and video streams, including: Sending the RTP stream, the caller determines the lower edge of the call period sequence interval corresponding to the caller's call period by the call period sampling field in the RTP message sent by the caller, and uses the session key and initialization vector corresponding to the lower edge of the caller's call period sequence interval as the session key and initialization vector used for actual encryption; Receive the RTP stream sent by the called party, determine the lower edge of the corresponding called party's call period sequence interval from the call period sampling field of the RTP message sent by the called party, and use the session key and initialization vector corresponding to the lower edge of the called party's call period sequence interval as the session key and initialization vector used for actual decryption.
7. The method for realizing end-to-end VoIP multi-encrypted encrypted conversation as claimed in claim 1, characterized in that: The storage space of the secure storage medium is divided into a plurality of mutually isolated subspaces, each of the subspaces storing a master key belonging to the same secret talk private network, and the same secret talk private network stores the master key with the same key ID identifier; the master key is filled by a quantum key distribution network or by a key agent.
8. The method for realizing end-to-end VoIP multi-encrypted encrypted conversation as claimed in claim 7, characterized in that: Before initiating a SIP session request to the called party that belongs to the same private network as the called party, the method further includes: An initialization program is run to perform an integrity check on the secure storage medium, and obtain authorization to use the master key stored in the secure storage medium.
9. A method for implementing end-to-end VoIP multi-encrypted encrypted conversation, characterized in that: The method is applied to a VoIP terminal, wherein a secure storage medium is integrated in the VoIP terminal, and the secure storage medium stores master keys belonging to different private networks for encrypted calls. When the VoIP terminal is used as a called party, the method comprises the following steps: Receive the INVITE ciphertext sent by the calling party; The first cryptographic hash value is verified by taking out the corresponding master key through the netID of the private network to which the calling and called parties belong and the master key ID used to encrypt the INVITE message of the calling party; When the verification is passed, the corresponding master key is taken out to decrypt the first session key ciphertext through the netID of the private network to which the calling party and the called party belong and the master key ID used to encrypt the n session key materials N1 generated by the calling party, and the n session key materials N1 are the hardware time data generated by the calling party, which respectively correspond to the various call time periods divided by the current clock of the calling party; Obtain n hardware random numbers from its own integrated secure storage medium as session key materials N2, wherein the n session key materials N2 correspond to the call time periods divided by the current clock of the called party; An INVITE response message is generated based on the n session key materials N1 and the n session key materials N2.
10. The method for realizing end-to-end VoIP multi-encrypted encrypted conversation as claimed in claim 9, characterized in that: The generating an INVITE response message based on the n session key materials N1 and the n session key materials N2 includes: Based on the n session key materials N1 and the n session key materials N2, generating n session keys and n initialization vectors; The INVITE response message is generated based on the n session keys, the n initialization vectors and the n session key materials N2.
11. The method for realizing end-to-end VoIP multi-encrypted encrypted conversation as claimed in claim 10, characterized in that: The step of generating n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2 includes: SKEY_k=HMAC(HASH(N1_k|N2_k), call_id_xxx|sessionid_xxx) SKEY_key_k=HMAC(SKEY_k,call_id_xxx|sessionid_xxx|0) SKEY_iv_k=HMAC(SKEY_key_k, call_id_xxx|sessionid_xxx|1) Wherein: SKEY_k is the intermediate result; N1_k is the kth session key material N1; N2_k is the kth session key material N2; call_id_xxx is the call ID of SIP; sessionid_xxx is the task ID of SIP; HASH(N1_k|N2_k) is the hash value calculated after splicing N1_k and N2_k; SKEY_key_k is the kth session key; SKEY_iv_k is the kth initialization vector.
12. The method for realizing end-to-end VoIP multi-encrypted encrypted conversation as claimed in claim 10, characterized in that: The generating the INVITE response message based on the n session keys, the n initialization vectors and the n session key materials N2 includes: According to the netID of the private network to which the calling and called parties belong, two corresponding master key IDs and corresponding master keys are obtained from the integrated secure storage medium; Encrypting n session key materials N2 using one of the master keys to obtain n second session key ciphertexts, and calculating a second cryptographic hash value for an INVITE response message using another of the master keys; Encrypting the verification random number using the n session keys and the n initialization vectors to obtain a verification random number ciphertext, wherein the verification random number is generated in real time by the called party; Generate the INVITE response message, the INVITE response message includes a SIP message header and an SDP message body, the SDP message body content includes the netID of the secret call private network to which the calling and called parties belong, the master key ID used to encrypt n session key materials N2 generated by the called party and the n second session key ciphertexts obtained by encryption, the master key ID used to encrypt the entire response message of the called party and the encrypted second cryptographic hash value, the session key material N2 corresponding to each call time period divided by the current clock of the called party, the session key, the initialization vector, the verification random number and the verification random number ciphertext.
13. The method for realizing end-to-end VoIP multi-encrypted encrypted conversation as claimed in claim 9, characterized in that: After receiving the ACK message sent by the calling party, when using RTP to transmit the audio and video streams, the method further includes: Sending an RTP stream, the call period sampling field in the RTP message sent by the called party determines the lower edge of the corresponding call period sequence interval of the called party, and uses the session key and initialization vector corresponding to the lower edge of the call period sequence interval of the called party as the session key and initialization vector used for actual encryption; Receive the RTP stream sent by the caller, determine the lower edge of the call period sequence interval corresponding to the caller by the call period sampling field of the RTP message sent by the caller, and use the session key and initialization vector corresponding to the lower edge of the caller's call period sequence interval as the session key and initialization vector used for actual decryption.
14. The method for realizing end-to-end VoIP multi-encrypted encrypted conversation as claimed in claim 9, characterized in that: The storage space of the secure storage medium is divided into a plurality of mutually isolated subspaces, each of the subspaces storing a master key belonging to the same secret talk private network, and the same secret talk private network stores the master key with the same key ID identifier; the master key is filled by a quantum key distribution network or by a key agent.
15. A VoIP terminal, characterized in that: The VoIP terminal integrates a first secure storage medium, wherein the first secure storage medium stores master keys belonging to different private networks for encrypted conversations. When the VoIP terminal is used as a calling party, the VoIP terminal includes: The first data transceiver module is used to initiate a SIP session request to a called party that belongs to the same private network as the called party, wherein the INVITE message instruction of the SIP session request includes a SIP message header and an SDP message body; A first key management module, used for randomly selecting two master key ID numbers and corresponding master keys belonging to the secret call private network to which the called party belongs from the first secure storage medium integrated therein; A first data encryption and decryption module is used to use one of the master keys to encrypt the n session key materials N1 in the SDP message body to obtain n first session key ciphertexts, and use another of the master keys to calculate a first cryptographic hash value for the INVITE message instruction to obtain the INVITE ciphertext of this SIP session, wherein the SDP message body of the INVITE ciphertext is provided with an extended parameter a field to carry key negotiation information and talk time period information, and the n session key materials N1 are hardware random numbers generated in real time by the calling party, and correspond to the talk time periods divided by the current clock of the calling party respectively; The first data transceiver module is used to send the INVITE ciphertext of this SIP session to the called party, so that the called party generates an INVITE response message based on the INVITE ciphertext; The first data transceiver module is used to receive the INVITE response message, decrypt it to obtain n session key materials N2, and generate n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2, where the n session key materials N2 are hardware random numbers generated in real time by the called party, and correspond to each call time period divided by the current clock of the called party; The first encrypted conversation module is used to conduct an encrypted conversation with the called party based on the n session keys and the n initialization vectors.
16. A VoIP terminal, characterized in that: The VoIP terminal integrates a second secure storage medium, wherein the second secure storage medium stores master keys belonging to different private networks for encrypted conversations. When the VoIP terminal is used as a called party, the VoIP terminal includes: The second data transceiver module is used to receive the INVITE ciphertext sent by the calling party; The second data encryption and decryption module is used to call the second key management module to retrieve the corresponding master key from the second secure storage medium according to the netID of the private network to which the calling and called parties belong and the master key ID used to encrypt the INVITE message of the calling party, so as to verify the first cryptographic hash value; and for, when the verification is passed, calling the second key management module to retrieve the corresponding master key from the second secure storage medium to decrypt the first session key ciphertext according to the netID of the private network to which the calling and called parties belong and the master key ID used to encrypt the n session key materials N1 generated by the calling party, thereby obtaining n session key materials N1, wherein the session key materials N1 are hardware data generated by the calling party at any time, and respectively correspond to the various call time periods divided by the current clock of the calling party; The second key management module is used to obtain n hardware random numbers as session key materials N2 from the second secure storage medium integrated in the module, wherein the n session key materials N2 respectively correspond to the call time periods divided by the current clock of the called party; The second data encryption and decryption module is further used to generate an INVITE response message based on the n session key materials N1 and the n session key materials N2.
17. A method for implementing end-to-end VoIP multi-encrypted encrypted conversation, characterized in that: The method comprises: The calling party initiates a SIP session request to the called party who belongs to the same private network as the calling party, and randomly selects two master keys from the first secure storage medium integrated therein, encrypts n session key materials N1 to obtain the first session key ciphertext and calculates the first cryptographic hash value of the entire INVITE message instruction, and generates the INVITE ciphertext of this SIP session. The extended parameter a field in the SDP message body of the INVITE ciphertext carries the session key material N1 and the call period sequence information; The called party receives the INVITE ciphertext, verifies the first cryptographic hash value and decrypts the first session key ciphertext to obtain n session key materials N1; The called party generates a verification random number and n session key materials N2, and generates n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2, wherein the n session key materials N2 correspond to the call time periods divided by the called party according to the current clock. The called party obtains two master keys from its integrated second secure storage medium, encrypts n session key materials N2 respectively to obtain the second session key ciphertext and calculates the second cryptographic hash value of the entire INVITE response message; The called party generates an INVITE response message based on the verification random number, n session keys, n initialization vectors, the second session key ciphertext and the second cryptographic hash value; The calling party receives the INVITE response message, decrypts it to obtain n session key materials N2, and generates n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2; The calling party carries out an encrypted conversation with the called party based on the n session keys and the n initialization vectors.
18. An end-to-end VoIP multi-encrypted encrypted call system, characterized in that: The system includes a first VoIP terminal, a second VoIP terminal, a service acceptance platform and a quantum key distribution network, wherein the first VoIP terminal and the second VoIP terminal are respectively integrated with a first secure storage medium and a second secure storage medium, the first secure storage medium and the second secure storage medium store master keys belonging to different secret call private networks, the first VoIP terminal, the second VoIP terminal and the service acceptance platform are respectively connected to the quantum key distribution network, the first VoIP terminal and the second VoIP terminal are respectively connected to the service acceptance platform, and the first VoIP terminal and the second VoIP terminal are connected; The service acceptance platform is used to provide the corresponding relationship between the first VoIP terminal, the second VoIP terminal and the quantum key distribution network, and divide the encrypted call private network; The quantum key distribution network is used to pre-fill the first secure storage medium and the second secure storage medium with a master key; The first VoIP terminal includes: A data transceiver module is used to initiate a SIP session request to a called party that belongs to the same private network as the called party, wherein the INVITE message instruction of the SIP session request includes a SIP message header and an SDP message body; A key management module, used for randomly selecting two master key ID numbers and corresponding master keys belonging to the secret call private network to which the called party belongs from the secure storage medium integrated therein; A data encryption and decryption module, used to use one of the master keys to encrypt the n session key materials N1 in the SDP message body to obtain n first session key ciphertexts, and use another of the master keys to calculate a first cryptographic hash value for the INVITE message instruction to obtain the INVITE ciphertext of this SIP session, wherein the SDP message body of the INVITE ciphertext is provided with an extended parameter a field to carry key negotiation information and talk time period information, and the n session key materials N1 are hardware random numbers generated in real time by the calling party, and correspond to the talk time periods divided by the current clock of the calling party respectively; The data transceiver module is used to send the INVITE ciphertext of this SIP session to the second VoIP terminal, so that the second VoIP terminal generates an INVITE response message based on the INVITE ciphertext; The data transceiver module is used to receive the INVITE response message, decrypt it to obtain n session key materials N2, and generate n session keys and n initialization vectors based on the n session key materials N1 and the n session key materials N2, where the n session key materials N2 are hardware random numbers generated in real time by the called party, and correspond to each call time period divided by the current clock of the called party; The encrypted conversation module is used to conduct an encrypted conversation with the called party based on the n session keys and the n initialization vectors.
Citation Information
Patent Citations
Data authentication method based on HMAC-SM3 algorithm and quantum key distribution system
CN109274480A
Real time data encryption transmission method for voice over internet protocol (VoIP)
CN102111416A
IMS system based session key negotiating method
CN104683291A