[go: up one dir, main page]

CN103974241A - Voice end-to-end encryption method aiming at mobile terminal with Android system - Google Patents

Voice end-to-end encryption method aiming at mobile terminal with Android system Download PDF

Info

Publication number
CN103974241A
CN103974241A CN201310046868.0A CN201310046868A CN103974241A CN 103974241 A CN103974241 A CN 103974241A CN 201310046868 A CN201310046868 A CN 201310046868A CN 103974241 A CN103974241 A CN 103974241A
Authority
CN
China
Prior art keywords
rtp
encryption
session
terminal
call
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310046868.0A
Other languages
Chinese (zh)
Other versions
CN103974241B (en
Inventor
蒋睿
许蓓蓓
邓成军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CHANGZHOU RESEARCH INSTITUTE SOUTHEAST UNIVERSITY
Third Research Institute of the Ministry of Public Security
Original Assignee
CHANGZHOU RESEARCH INSTITUTE SOUTHEAST UNIVERSITY
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CHANGZHOU RESEARCH INSTITUTE SOUTHEAST UNIVERSITY filed Critical CHANGZHOU RESEARCH INSTITUTE SOUTHEAST UNIVERSITY
Priority to CN201310046868.0A priority Critical patent/CN103974241B/en
Publication of CN103974241A publication Critical patent/CN103974241A/en
Application granted granted Critical
Publication of CN103974241B publication Critical patent/CN103974241B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Telephone Function (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明提供了一种面向Android系统的语音端到端加密方法,命名为ERTP。当用户选择加密模式进行通信时,双方在会话初始阶段完成身份认证和密钥协商。当通话建立后,会话双方使用自己的私钥以及协商好的会话密钥,对发送的载有语音的RTP包进行DSA签名,然后用AES算法进行加密,最后发送。对于接收到的RTP包,先用AES解密,再进行DSA签名验证,验证通过后再对RTP包进行处理。此时若有第三方监听会话,则无法听到加密后的内容,有效的防止了第三方攻击。本发明通过采用一次一密的语音端到端加密方法,保证端到端的语音通信安全。

The invention provides an Android system-oriented voice end-to-end encryption method named ERTP. When the user selects the encryption mode for communication, the two parties complete identity authentication and key negotiation at the initial stage of the session. When the call is established, both parties use their own private key and the negotiated session key to perform DSA signature on the sent RTP packet carrying voice, then encrypt it with AES algorithm, and finally send it. For the received RTP packet, first use AES to decrypt it, then perform DSA signature verification, and then process the RTP packet after the verification is passed. At this time, if a third party monitors the session, the encrypted content cannot be heard, which effectively prevents third party attacks. The invention ensures end-to-end voice communication security by adopting a one-time pad voice end-to-end encryption method.

Description

一种面向Android系统移动终端的语音端到端加密方法A voice end-to-end encryption method for Android system mobile terminals

技术领域 technical field

本发明是一种基于加密RTP(Real-time Transport Protocol,实时传输协议)传输的移动终端语音端到端加密方法,命名为ERTP(Encrypted Real-time Transport Protocol,加密的实时传输协议)。本发明属于信息安全领域。The present invention is an end-to-end encryption method for mobile terminal voice based on encrypted RTP (Real-time Transport Protocol, real-time transport protocol), named as ERTP (Encrypted Real-time Transport Protocol, encrypted real-time transport protocol). The invention belongs to the field of information security.

背景技术 Background technique

随着Android操作系统的移动终端受到越来越多人们的青睐,它的安全性也引起了人们的关注。尤其在VoIP(Voice over Internet Protocol,网络电话)电话通信方面,一些不法分子利用安全漏洞,通过非法手段窃听甚至篡改他人通话内容,侵害他人隐私及利益,扰乱社会秩序。美国专利商标局公开的一份文件显示,微软2009年12月曾申请一项VoIP窃听技术专利,能够暗中记录双方或多方之间的语音和视频通话。微软在申请中称,这种技术能够满足政府和司法部门的窃听互联网语音通话的需求。它不仅适用于封闭网络,更适用于包括“Skype及类似应用”在内的服务。专利申请显示,这种技术的“录音客户端”可被植入各种设备,包括路由器等。此外,它还可以被“事件”或“事件序列”触发,如在特定通话者加入后开始窃听。As the mobile terminal of the Android operating system is favored by more and more people, its security has also attracted people's attention. Especially in VoIP (Voice over Internet Protocol, Internet telephony) telephone communication, some lawbreakers take advantage of security loopholes to eavesdrop or even tamper with other people's call content through illegal means, infringe on other people's privacy and interests, and disrupt social order. A document released by the United States Patent and Trademark Office shows that Microsoft applied for a VoIP interception technology patent in December 2009, which can secretly record voice and video calls between two or more parties. Microsoft said in the application that this technology can meet the needs of government and judicial departments to eavesdrop on Internet voice calls. It applies not only to closed networks, but also to services including "Skype and similar applications." The patent application shows that the "recording client" of this technology can be embedded in various devices, including routers and so on. In addition, it can be triggered by "events" or "sequences of events", such as eavesdropping after a specific caller joins.

目前,进行语音数据加密的方法主要有以下两种:一种是利用硬件设备进行加密,一种是软件实现加密。At present, there are mainly two methods for encrypting voice data: one is to use hardware equipment for encryption, and the other is to implement encryption by software.

利用硬件设备加密的技术申请号为200710136782.1的发明,提供一种客户/服务器型分布式系统,服务器装置的SIP接口从客户装置接收SIP呼叫连接消息,当识别出客户装置之间采用加密方式,并能够确定密钥格式时,在通信客户装置之间使用端到端密码进行加密。该发明的加密方法因密钥空间有限,因而容易受到暴力破解。此外,该方法在服务器、通信用户端、控制台都需部署,所需成本高昂。The invention using hardware device encryption technology application number 200710136782.1 provides a client/server type distributed system. The SIP interface of the server device receives the SIP call connection message from the client device. When it is recognized that the client device adopts an encryption method, and When the key format can be determined, encryption is performed between communication client devices using end-to-end encryption. The encryption method of the invention is vulnerable to brute force cracking due to the limited key space. In addition, the method needs to be deployed on the server, the communication client, and the console, and the required cost is high.

利用硬件实现加密的技术申请号为200710195390.2的发明,实时提供一种RTP报文的密钥协商方法,利用RTCP报文,协商用于加密RTP报文的密钥。该方法在通话开始后协商密钥,所以密钥协商完成是在通话开始2.5秒之后,安全性不强,且容易受到监听。而其协商方法是不经身份认证的D-H交换,极易受到中间人攻击。Using hardware to implement encryption The invention with application number 200710195390.2 provides a key negotiation method for RTP messages in real time, using RTCP messages to negotiate keys for encrypting RTP messages. This method negotiates the key after the call starts, so the key negotiation is completed 2.5 seconds after the start of the call, the security is not strong, and it is easy to be monitored. The negotiation method is D-H exchange without identity authentication, which is extremely vulnerable to man-in-the-middle attacks.

利用软件实现加密的技术申请号为200810068567.7的发明,将得到待发送的语音数据帧周期性地向加密模块传输,加密模块对接收到的语音数据帧进行加密后,发送加密的语音数据,通过解密模块对接收的语音数据进行解密后播放。该发明针对CDMA网络提出加解密方法,只对语音数据帧进行加密而没有进行身份验证,容易受到第三方攻击。且该发明并未说明具体加密方法,也没有进行密钥协商,也即密钥是固定的。这样的加密极易遭受暴力破解,是不安全的。Utilize software to implement encryption technology application number is 200810068567.7 invention, the voice data frame to be sent will be periodically transmitted to the encryption module, and the encryption module will encrypt the received voice data frame, send the encrypted voice data, and decrypt it The module decrypts the received voice data and plays it. The invention proposes an encryption and decryption method for the CDMA network, which only encrypts voice data frames without identity verification, and is vulnerable to third-party attacks. Moreover, the invention does not specify a specific encryption method, and does not carry out key agreement, that is, the key is fixed. Such encryption is extremely vulnerable to brute force cracking and is not safe.

论文《椭圆曲线密码与SHA-1算法在VOIP语音加密中的研究与应用》阐述了一种方法,声音数据根据公式D0=d*k*P计算得到D0,经过不断地SHA-l运算生成哈希验证数据,然后与声音数据进行合成,再经UDP协议将数据发送出去。在接收端接收到数据后,要先根据事先约定的椭圆曲线参数计算出D0值,然后根据数据的信息头进行相应的SHA-1计算,最后将数据进行分解得到压缩后的声音数据。然而,该方法并未提出密钥协商的具体实现方法及过程,且未形成专利。The paper "Research and Application of Elliptic Curve Cryptography and SHA-1 Algorithm in VOIP Voice Encryption" expounds a method. The sound data is calculated according to the formula D0=d*k*P to obtain D0, and the hash is generated through continuous SHA-1 operation. Xi verifies the data, then synthesizes it with the sound data, and then sends the data through the UDP protocol. After the receiving end receives the data, it must first calculate the D0 value according to the pre-agreed elliptic curve parameters, then perform the corresponding SHA-1 calculation according to the information header of the data, and finally decompose the data to obtain the compressed sound data. However, this method does not propose a specific implementation method and process of key agreement, and has not been patented.

发明内容 Contents of the invention

本发明的目的是解决现有技术的安全问题,通过基于Android系统的移动终端进行安全VoIP(Voice over Internet Protocol)会话,使得在RTP通路建立之前,即SIP(Session Initiation Protocol,会话初始协议)会话协商部分进行通话双方的密钥协商和身份认证,并且基于ERTP协议,实现通话语音数据的端到端加密功能,达到通信保密的目的。The purpose of the present invention is to solve the security problem of prior art, carry out safe VoIP (Voice over Internet Protocol) session through the mobile terminal based on Android system, make before RTP path is established, promptly SIP (Session Initiation Protocol, session initial protocol) session The negotiation part conducts key negotiation and identity authentication between the two parties in the call, and based on the ERTP protocol, realizes the end-to-end encryption function of the call voice data to achieve the purpose of communication confidentiality.

本发明的原理为:通过对SIP媒体栈进行改进,并结合SIP协议来完成包含DSA数字签名的D-H(Diffie-Hellman)密钥交换协议,协商会话密钥并对会话双方进行身份认证,做到一次一密且抗中间人攻击。会话部分使用128位密钥的AES(Advanced Encryption Standard)算法对语音数据进行加密。当主叫用户使用加密会话模式呼叫被叫时,提示被叫采用加密模式通信。如果被叫同样采用加密模式,则进行密钥协商;如果被叫方拒绝加密会话模式,则通过弹出对话框的方式向主叫方提示会话未被加密,并挂断电话。The principle of the present invention is: by improving the SIP media stack, and combining the SIP protocol to complete the D-H (Diffie-Hellman) key exchange protocol including the DSA digital signature, negotiate the session key and perform identity authentication on both parties of the session, so that One pad at a time and resistant to man-in-the-middle attacks. The conversation part uses the AES (Advanced Encryption Standard) algorithm with a 128-bit key to encrypt the voice data. When the calling user uses the encrypted session mode to call the called party, the called party is prompted to communicate in the encrypted mode. If the called party also adopts the encrypted mode, key negotiation will be performed; if the called party refuses the encrypted session mode, a dialog box will pop up to prompt the calling party that the session is not encrypted, and hang up the phone.

当被叫接受会话邀请后,通话建立,双方的语音数据经过DSA(DigitalSignature Algorithm) 数字签名后,使用协商好的密钥进行加密后传送给对方。当对方收到数据后先进行解密,然后进行DSA签名验证操作。After the called party accepts the session invitation, the call is established, and the voice data of both parties is digitally signed by DSA (DigitalSignature Algorithm), encrypted with the negotiated key, and then transmitted to the other party. When the other party receives the data, it first decrypts it, and then performs the DSA signature verification operation.

本发明的功能实现基于动态链接库完成,界面操作及人机交互部分在Android系统中的Java程序框架层完成,两者依靠JNI(Java NativeInterface,Java本地调用)模块进行通信。The function realization of the present invention is completed based on the dynamic link library, and the interface operation and human-computer interaction are completed in the Java program framework layer in the Android system, and the two rely on the JNI (Java Native Interface, Java local call) module to communicate.

本发明提出的面向Android系统移动终端语音端到端加密方法包括以下步骤:The Android system mobile terminal voice end-to-end encryption method proposed by the present invention comprises the following steps:

1)用户注册:主叫和被叫用户在服务器注册,包括注册请求和服务器认证两个步骤。注册完成后,用户可以用注册账号完成SIP电话的通信。1) User registration: The calling and called users register on the server, including two steps of registration request and server authentication. After the registration is completed, the user can use the registered account to complete the communication of the SIP phone.

2)发起呼叫:主叫用户使用加密会话模式发起呼叫,向服务器发起会话邀请。服务器确认用户已通过认证后,检查Via头域,若没有问题插入自身地址,并向Invite消息的To域所指示的被叫终端代理转送Invite请求。该部分内容通过Java程序框架层与动态链接库间的通信来实现。2) Initiate a call: The calling user initiates a call using the encrypted session mode, and initiates a session invitation to the server. After confirming that the user has passed the authentication, the server checks the Via header field, inserts its own address if there is no problem, and forwards the Invite request to the called terminal agent indicated by the To field of the Invite message. This part of the content is realized through the communication between the Java program framework layer and the dynamic link library.

3)密钥协商:主叫方与被叫方通过SIP协议进行会话协商。在会话协商的同时双方进行D-H交换,协商会话密钥并对会话双方进行身份认证。密钥协商过程依靠动态链接库实现。3) Key negotiation: The calling party and the called party conduct session negotiation through the SIP protocol. During the session negotiation, the two parties perform D-H exchange, negotiate the session key and authenticate the two parties in the session. The key agreement process relies on the dynamic link library to realize.

4)会话建立:被叫接受呼叫,密钥协商完成,则通话建立。4) Session establishment: The called party accepts the call, and the key negotiation is completed, then the call is established.

5)加密通信:使用协商好的公钥进行签名,然后利用会话密钥加密发送给对端。通话双方使用协商好的会话密钥,利用AES算法对会话内容进行端到端的加解密, 以达到防止篡改的目的。加密语音通信过程由动态链接库进行功能实现。5) Encrypted communication: use the negotiated public key to sign, and then use the session key to encrypt and send to the peer. Both parties use the negotiated session key and use the AES algorithm to encrypt and decrypt the session content end-to-end to prevent tampering. The encrypted voice communication process is realized by the dynamic link library.

6)会话结束:通信双方结束会话,本次会话密钥清零。6) Session end: The communication parties end the session, and the session key is cleared.

密钥协商包含身份认证和会话密钥协商两个部分。通过密钥协商,达到安全协商并计算本次通话会话密钥的目的。其实现的方法:Key negotiation includes two parts: identity authentication and session key negotiation. Through key negotiation, the purpose of secure negotiation and calculation of the session key of this call is achieved. The method of its realization:

1)身份认证:采用双向认证,会话双方使用各自的ID进行认证,保证消息来源于本人且未被篡改。当用户作为主叫用户发起会话时,服务器会将被叫用户的公钥发送给主叫用户,并向被叫用户发送主叫用户的公钥。主叫用户与被叫用户在通话时利用自己的私钥,对所发送的信息进行DSA签名。1) Identity authentication: Two-way authentication is adopted, and the two parties in the session use their respective IDs for authentication to ensure that the message comes from the person and has not been tampered with. When the user initiates a session as the calling user, the server will send the public key of the called user to the calling user, and send the public key of the calling user to the called user. The calling user and the called user use their own private keys to sign the information sent by DSA during the conversation.

2)会话密钥协商:使用D-H交换,在利用对方的公钥对发送的内容进行加密的情况下,通过两次交互完成会话密钥的协商,并在公钥后附上一个随机数。两次交互后,主叫方回复被叫发送的随机数,表示密钥协商完成。2) Session key negotiation: Using D-H exchange, in the case of using the other party's public key to encrypt the sent content, the session key negotiation is completed through two interactions, and a random number is attached after the public key. After two interactions, the calling party replies with the random number sent by the called party, indicating that the key negotiation is completed.

所述加密通信包括DSA数字签名、语音加密、语音解密和DSA签名验证四个方法,具体实现为:The encrypted communication includes four methods of DSA digital signature, voice encryption, voice decryption and DSA signature verification, specifically implemented as:

1)DSA数字签名:对于生成的语音数据,用协商好的自身私钥对语音数据进行签名,然后将语音帧连同签名一起封装到RTP包中。对于收到的语音帧,验证其签名,若符合则继续进行解码,若不符合则丢弃。1) DSA digital signature: For the generated voice data, use the negotiated private key to sign the voice data, and then encapsulate the voice frame together with the signature into the RTP packet. For the received speech frame, verify its signature, continue to decode if it matches, and discard it if it does not match.

2)语音加密:包括RTP包的提取、RTP包加密、封装成UDP包三个步骤。语音经过采样编码后以语音帧的格式封装到RTP包中。语音加密时,将RTP包提取出来,然后对RTP包进行加密。加密后的包则封装到UDP包内,进行网络传输。2) Voice encryption: including three steps of RTP packet extraction, RTP packet encryption, and encapsulation into UDP packets. After the voice is sampled and encoded, it is encapsulated into the RTP packet in the form of a voice frame. When encrypting the voice, extract the RTP packet, and then encrypt the RTP packet. The encrypted packet is encapsulated into a UDP packet for network transmission.

3)语音解密:包括UDP包解封装、RTP包解密、DSA签名验证三个步骤。接收端对UDP包解封后,取出载有语音数据的RTP包,对其解密后再进行DSA签名的验证。3) Voice decryption: including three steps of UDP packet decapsulation, RTP packet decryption, and DSA signature verification. After the receiving end decapsulates the UDP packet, it takes out the RTP packet carrying voice data, decrypts it, and then performs DSA signature verification.

4)DSA签名验证:对接收到的解密后的数据,用户使用对方公钥进行DSA签名验证。若验证结果相符,则继续对RTP包操作;若不符,则丢弃该包。4) DSA signature verification: For the received decrypted data, the user uses the other party's public key to perform DSA signature verification. If the verification results match, continue to operate on the RTP packet; if not, discard the packet.

采用了上述技术方案后,本发明提供了一种面向Android系统移动终端的语音端到端加密方法,该方法通过软件实现了移动终端VoIP电话的语音加密功能。在用户完成SIP注册之后,发起呼叫,在被叫接听之前完成双方密钥协商和身份认证。会话建立后,载有通信语音的RTP包首先经过自身私钥DSA签名,再使用协商好的密钥进行AES加密后传递。在接收端接收到语音包后,解密恢复出语音包,使用对方公钥验证DSA签名的有效性后再送回缓冲区。本发明提供的基于ERTP包的加密方式,与现有的加密方式相比,语音加密算法是基于RTP包的,不需要额外引入协议支持,具有开销小,可移植性高,易于实现的特点。其中密钥协商过程可以在信令部分进行会话协商的同时完成。本发明无需额外硬件支持,也不需要对服务器进行调整。此外用户界面友好,易于操作。After adopting the above technical solution, the present invention provides a voice end-to-end encryption method for Android system mobile terminals, the method realizes the voice encryption function of the mobile terminal VoIP phone through software. After the user completes SIP registration, initiates a call, and completes key negotiation and identity authentication between the two parties before the called party answers. After the session is established, the RTP packet carrying the communication voice is first signed by its own private key DSA, and then encrypted with the negotiated key by AES before delivery. After the receiving end receives the voice packet, it decrypts and recovers the voice packet, uses the other party's public key to verify the validity of the DSA signature, and then sends it back to the buffer. Compared with the existing encryption methods, the encryption method based on ERTP packets provided by the present invention, the voice encryption algorithm is based on RTP packets, does not need to introduce additional protocol support, has the characteristics of low overhead, high portability and easy implementation. The key negotiation process can be completed while the session negotiation is performed in the signaling part. The invention does not need additional hardware support, nor does it need to adjust the server. In addition, the user interface is friendly and easy to operate.

附图说明: Description of drawings:

图1是本发明的应用场景;Fig. 1 is the application scene of the present invention;

图2是本发明的软件结构框图;Fig. 2 is a software structural block diagram of the present invention;

图3是本发明的端到端语音加解密流程图;Fig. 3 is the flow chart of end-to-end voice encryption and decryption of the present invention;

图4是本发明的使用加密模式发起呼叫的流程图;Fig. 4 is the flow chart of using encryption mode to initiate a call of the present invention;

图5是本发明的密钥协商流程图;Fig. 5 is a key agreement flow chart of the present invention;

图6是本发明的密钥协商的具体实现交互图;Fig. 6 is the specific implementation interaction diagram of the key agreement of the present invention;

图7是本发明的会话建立的流程图;Fig. 7 is the flowchart of session establishment of the present invention;

图8是本发明的语音通信的流程图;Fig. 8 is the flow chart of voice communication of the present invention;

图9是本发明的DSA签名的计算图;Fig. 9 is a calculation diagram of the DSA signature of the present invention;

图10是本发明的AES加密的计算图;Fig. 10 is the calculation diagram of AES encryption of the present invention;

图11是本发明的AES解密的计算图;Fig. 11 is the calculation diagram of AES decryption of the present invention;

图12是本发明的DSA签名验证的计算图;Fig. 12 is the computing diagram of the DSA signature verification of the present invention;

图13是本发明的通话结束的流程图。Fig. 13 is a flow chart of call termination in the present invention.

具体实现方式Specific implementation

图1所示为本发明的应用场景,本发明主要用于可以进行SIP通话的Android系统手机。首先,用户完成服务器注册。当服务器注册完成后,若用户需要进行加密通话,则摘机拨号,并选择使用加密模式发起呼叫102。在会话初始阶段,双方使用SIP进行会话初始协商,并同时完成身份认证301及会话密钥协商302过程。身份认证301过程使用用户ID进行双向认证:若身份认证301成功,则进行会话密钥协商302;若不成功,则返回身份认证301失败错误。在会话密钥协商302过程中,若协商不成功,则通话结束并返回错误;若协商成功,则用户保存各自的私钥X、对方的公钥Y以及本次会话密钥KS。在协商完成后,会话建立,首先进行初始化,然后通信双方进行加密的语音通信。对于发送的载有语音数据的RTP包,首先使用本人的私钥X进行DSA数字签名,然后使用协商好的会话密钥KS进行AES加密,再封装成UDP包传输;对于收到的UDP包,先解封装,使用会话密钥KS解密后,再进行签名验证。若验证成功,则取出该RTP包;若不成功,则丢弃该包。当会话结束后,本次会话密钥清零604。Fig. 1 shows the application scene of the present invention, and the present invention is mainly used for Android system mobile phones that can carry out SIP calls. First, the user completes server registration. After the server registration is completed, if the user needs to make an encrypted call, then go off-hook and dial, and choose to use the encrypted mode to initiate a call 102 . In the initial stage of the session, the two parties use SIP to carry out session initial negotiation, and complete the process of identity authentication 301 and session key negotiation 302 at the same time. The identity authentication 301 process uses the user ID for two-way authentication: if the identity authentication 301 is successful, the session key negotiation 302 is performed; if not successful, the identity authentication 301 failed error is returned. During session key negotiation 302, if the negotiation is unsuccessful, the call ends and an error is returned; if the negotiation is successful, the user saves their own private key X, the other party's public key Y and the current session key K S . After the negotiation is completed, the session is established, first initialized, and then the communication parties conduct encrypted voice communication. For the sent RTP packet carrying voice data, first use my private key X to perform DSA digital signature, then use the negotiated session key K S to perform AES encryption, and then encapsulate it into a UDP packet for transmission; for the received UDP packet , first decapsulate, use the session key K S to decrypt, and then perform signature verification. If the verification is successful, the RTP packet is taken out; if not successful, the packet is discarded. After the session ends, the current session key is cleared 604 .

图2所示为本发明的软件结构框图。本发明的软件结构主要由三个部分组成:Java程序框架、JNI模块及动态链接库。Fig. 2 shows the software structural block diagram of the present invention. The software structure of the present invention is mainly composed of three parts: a Java program framework, a JNI module and a dynamic link library.

1)Java程序框架是针对Android操作系统开发的程序架构,包括UI界面、Utility设备、API接口、Service服务、DB数据库、SIP协议栈、Widget外观、Model模型及Wizard向导九个部分。UI界面是本发明软件在终端操作系统的操作界面设计;Utility设备针对拨号键盘、手机听筒等设备进行调用;API接口用来进行媒体层的状态描述及配置管理等内容,Service服务管理后台运行和跨进程访问;DB数据库用来存储联系人、手机信息等内容;SIP协议栈在Java程序框架内实现动态链接库;Widget外观为程序提供皮肤管理;Model模型对数据库进行操作;Wizard向导是软件提供给用户的操作提示。1) The Java program framework is a program framework developed for the Android operating system, including nine parts: UI interface, Utility device, API interface, Service service, DB database, SIP protocol stack, Widget appearance, Model model and Wizard. The UI interface is the operation interface design of the software of the present invention in the terminal operating system; the Utility device is used to call devices such as the dial keyboard and the handset; the API interface is used to describe the state of the media layer and configure management, etc., and the Service service management background operation and Cross-process access; DB database is used to store contacts, mobile phone information, etc.; SIP protocol stack implements dynamic link library within the Java program framework; Widget appearance provides skin management for the program; Model model operates on the database; Wizard guide is provided by the software Operation tips for users.

2)JNI模块定义了一套接口,当标准的Java程序框架不支持程序所需的特性时,供Java程序框架和动态链接库之间进行相互调用。2) The JNI module defines a set of interfaces for mutual calls between the Java program framework and the dynamic link library when the standard Java program framework does not support the features required by the program.

3)动态链接库是对Java程序框架的功能支持,对程序的基本功能进行实现,包括声音器件库、SIP协议栈JNI库和音频编码库。声音器件库用来实现对硬件设备的调用;SIP协议栈JNI库用来实现协议栈的功能及与Java程序框架的相互调用和通信;音频编码库用来实现VoIP软件电话的宽带音频编解码。3) The dynamic link library is the functional support for the Java program framework, and realizes the basic functions of the program, including the sound device library, the SIP protocol stack JNI library and the audio coding library. The sound device library is used to implement calls to hardware devices; the SIP protocol stack JNI library is used to implement the functions of the protocol stack and the mutual call and communication with the Java program framework; the audio encoding library is used to implement broadband audio encoding and decoding of VoIP softphones.

图3所示为本发明的端到端语音加解密流程图。主要包括用户注册101、使用加密模式发起呼叫102、密钥协商103、会话建立104、加密通话105、通话结束106六个步骤:Fig. 3 shows the flow chart of the end-to-end voice encryption and decryption of the present invention. It mainly includes six steps of user registration 101, call initiation using encrypted mode 102, key negotiation 103, session establishment 104, encrypted call 105, and call end 106:

1)用户注册101:用户向服务器发送注册请求。若数据库中未包含用户信息,则返回质询信息。终端提示用户输入其标识和密码后,向服务器发送该消息。服务器验证其合法性后,将用户信息写入数据库中。1) User registration 101: the user sends a registration request to the server. If the user information is not contained in the database, the query information is returned. After prompting the user to enter his ID and password, the terminal sends this message to the server. After verifying its legitimacy, the server writes the user information into the database.

2)使用加密模式发起呼叫102:主叫用户完成注册后,选择使用加密模式对被叫用户发起呼叫;否则使用正常模式发起呼叫。在Android系统的Java程序框架层完成人机交互,随后将得到的结果通过JNI模块传到动态链接库。2) Initiate a call using encryption mode 102: After the calling user completes the registration, choose to use the encryption mode to initiate a call to the called user; otherwise, use the normal mode to initiate a call. The human-computer interaction is completed in the Java program framework layer of the Android system, and then the obtained results are transferred to the dynamic link library through the JNI module.

3)密钥协商103:双方使用SIP协议进行会话初始协商的同时进行身份认证301及会话密钥协商302。若身份认证301成功,则进行会话密钥协商302;若不成功,则返回身份认证301失败错误。若会话密钥协商302不成功,则通话结束并返回错误。若会话密钥协商302成功,则会话建立104。该部分在动态链接库中进行功能实现。3) Key negotiation 103: the two parties use the SIP protocol to perform session initial negotiation and at the same time perform identity authentication 301 and session key negotiation 302. If the identity authentication 301 is successful, the session key negotiation 302 is performed; if not successful, the identity authentication 301 failure error is returned. If the session key negotiation 302 is unsuccessful, the call ends and an error is returned. If the session key negotiation 302 is successful, the session is established 104 . This part is implemented in the dynamic link library.

4)会话建立104:终端收到确认会话的消息后,存储本次会话密钥401。在对缓冲区初始化402、参数及定时器初始化403和启动声音器件404后,会话建立104完成。4) Session establishment 104: After receiving the session confirmation message, the terminal stores the current session key 401 . After initializing 402 the buffer, initializing 403 parameters and timers, and starting the sound device 404, session establishment 104 is completed.

5)加密通话105:呼叫连接建立后,通信双方使用自己的私钥对载有语音数据的RTP包进行签名,之后用协商好的会话密钥对RTP包及签名进行加密。对方收到数据包后,首先对加密好的数据包进行解密,然后比对发送的RTP包和签名是否一致。若一致,则取出RTP包,进行进一步操作。该步骤在动态链接库中进行功能实现。5) Encrypted call 105: After the call connection is established, both communicating parties use their own private keys to sign the RTP packet carrying voice data, and then use the negotiated session key to encrypt the RTP packet and the signature. After receiving the data packet, the other party first decrypts the encrypted data packet, and then compares whether the sent RTP packet is consistent with the signature. If consistent, the RTP packet is taken out for further operation. This step implements the function in the dynamic link library.

6)通话结束106:通信双方当中一方挂断电话,呼叫释放603,本次会话密钥清零604。6) The call ends 106: one of the communication parties hangs up the phone, the call is released 603, and the current session key is cleared 604.

图4所示为使用加密模式发起呼叫的流程图,其主要步骤如下:Figure 4 shows the flow chart of initiating a call using encryption mode, and its main steps are as follows:

1)用户拨号201:用户作为主叫发起通话。1) The user dials 201: the user initiates a call as the calling party.

2)选择通话模式202:当发起呼叫时,用户首先进行模式选择:加密模式或非加密模式,在Android系统的应用框架层完成用户与终端的交互。随后将得到的结果通过JNI模块传到动态链接库。2) Select call mode 202: When initiating a call, the user first selects the mode: encryption mode or non-encryption mode, and completes the interaction between the user and the terminal at the application framework layer of the Android system. Then the obtained result is passed to the dynamic link library through the JNI module.

3)加密模式初始化203:终端调用动态链接库,判断是否使用加密模式。若为加密模式,则进行加密模式初始化,加密状态置1,并提示被叫采用加密模式通信204;若选择普通模式,加密状态置0,则进行普通模式初始化,用户进行正常的语音通话。3) Encryption mode initialization 203: the terminal invokes the dynamic link library to determine whether to use the encryption mode. If it is the encryption mode, then carry out the encryption mode initialization, set the encryption state to 1, and prompt the called party to adopt the encryption mode communication 204; if the normal mode is selected, the encryption state is set to 0, then carry out the normal mode initialization, and the user performs normal voice calls.

4)提示被叫采用加密模式通信204:被叫若同意使用加密模式,则双方进行密钥协商;若不同意使用加密模式,则通过弹出对话框的方式向主叫方提示会话未被加密,则本次通话挂断。被叫用户的加密模式判断在Java程序框架层完成,之后把结果同样通过JNI模块传到动态链接库,进行配置及调用;主叫用户提示:本次通话未加密,则是由动态链接库将状态上传到JNI模块,然后在界面给出提示的。4) Prompt the called party to communicate in encrypted mode 204: If the called party agrees to use the encrypted mode, the two parties will negotiate a key; if they do not agree to use the encrypted mode, a dialog box will pop up to remind the calling party that the session is not encrypted. Then the call is hung up. The encryption mode judgment of the called user is completed in the Java program framework layer, and then the result is also passed to the dynamic link library through the JNI module for configuration and calling; the calling user prompts: this call is not encrypted, and the dynamic link library will The status is uploaded to the JNI module, and then a prompt is given on the interface.

图5所示为密钥协商103的流程图。首先,会话双方进行双向的身份认证301,若身份认证301不成功,则呼叫结束并返回错误:身份认证301失败。若身份认证301成功,则会话双方进行密钥协商302。若协商不成功,则呼叫结束并返回错误:会话密钥协商302失败;若会话密钥协商302成功,则会话建立104。该步骤的内容在动态链接库进行功能实现。FIG. 5 shows a flowchart of the key agreement 103 . First, both parties in the session perform two-way identity authentication 301. If the identity authentication 301 is unsuccessful, the call ends and an error is returned: identity authentication 301 failed. If the identity authentication 301 is successful, both parties in the session perform key negotiation 302 . If the negotiation is unsuccessful, the call ends and an error is returned: the session key negotiation 302 fails; if the session key negotiation 302 succeeds, the session is established 104 . The content of this step is implemented in the dynamic link library.

图6所示为密钥协商的具体实现交互图,包含以下步骤:Figure 6 shows the specific implementation interaction diagram of key agreement, including the following steps:

1)用户A发起呼叫,取随机数XA作为自己的私钥,计算公钥,其中p为公开的长度在512到1024之间的素数,α为其本原根。A向被叫B发送Invite请求,同时在SDP(Session Description Protocol,会话描述协议)部分向对方发送用固定密钥Kfixed 进行AES加密的公钥YA、身份信息IDA和随机数N1,即发送Invite||E(Kfixed,YA||IDA||N1)。服务器收到后确认用户认证301已通过后,检查请求中的Via头域中是否已包含其地址:若已包含,说明发生环回,则返回错误应答;若不包含,则服务器在请求的Via头域插入自身地址,修改Invite请求为Invite',并转发该消息,即向B用户发送Invite'||E(Kfixed,YA||IDA||N1)。然后服务器向终端A发送呼叫处理中的应答消息:100Trying。1) User A initiates a call, takes random number X A as his private key, and calculates the public key , where p is a public prime number with length between 512 and 1024, and α is its primitive root. A sends an Invite request to the called party B, and at the same time sends the AES-encrypted public key Y A , identity information ID A and random number N 1 with the fixed key K fixed to the other party in the SDP (Session Description Protocol) part, That is, send Invite||E(K fixed , Y A ||ID A ||N 1 ). After receiving the confirmation that the user authentication 301 has passed, the server checks whether its address is included in the Via header field in the request: if it is included, it means that a loopback occurs, and an error response is returned; if it is not included, the server is in the requested Via The header field inserts its own address, modifies the Invite request to Invite', and forwards the message, that is, sends Invite'||E(K fixed , Y A ||ID A ||N 1 ) to user B. Then the server sends to terminal A a response message: 100Trying in call processing.

2)终端B在收到转发消息Invite'||E(Kfixed,YA||IDA||N1)后,验证终端A的身份信息IDA与From头域的是否吻合,并保存公钥YA和随机数N1,然后向服务器发送呼叫处理中的应答消息:100Trying。2) After receiving the forwarded message Invite'||E(K fixed , Y A ||ID A ||N 1 ), terminal B verifies whether the identity information ID A of terminal A matches the From header field, and saves the public Key Y A and random number N 1 , and then send a response message in call processing to the server: 100Trying.

3)终端B指示被叫用户振铃,振铃后,终端B向服务器发送振铃消息:180Ringing。服务器向终端A转发该振铃消息:180Ringing。3) Terminal B instructs the called user to ring. After ringing, Terminal B sends a ringing message to the server: 180Ringing. The server forwards the ringing message to terminal A: 180Ringing.

4)被叫用户摘机,终端B取随机数XB作为自己的私钥,计算公钥和本次会话密钥。终端B向服务器返回表示连接成功的应答200OK,并在SDP中包含固定密钥Kfixed加密的公钥YB、身份信息IDB、终端A发送的随机数N1及自己产生的随机数N2,即发送200OK||E(Kfixed,YB||IDB||N1||N2)。服务器向终端A转发该成功指示。4) The called user picks up the phone, terminal B takes the random number X B as its own private key, and calculates the public key and this session key . Terminal B returns to the server a response of 200 OK indicating that the connection is successful, and includes in the SDP the public key Y B encrypted by the fixed key K fixed , the identity information ID B , the random number N 1 sent by Terminal A, and the random number N 2 generated by itself , namely send 200OK||E(K fixed ,Y B ||ID B ||N 1 ||N 2 ). The server forwards the success indication to terminal A.

5)终端A收到消息后,检验终端B的身份信息IDB与From头域的是否吻合,并检查N1是否正确。若条件都满足,则保存随机数N2,计算本次会话密钥;否则返回错误:会话密钥协商302失败。由于KS=KS',所以双方得到的会话密钥相同。5) After terminal A receives the message, it checks whether the identity information ID B of terminal B matches the From header field, and checks whether N 1 is correct. If the conditions are met, save the random number N 2 and calculate the session key ; Otherwise return Error: Session Key Negotiation 302 Failed. Since K S =K S ', the session keys obtained by both parties are the same.

6)终端A向服务器发送确认消息ACK和用固定密钥Kfixed加密的随机数N2,即发送ACK||E(Kfixed,N2)。代理服务器将该确认消息转发给终端B。终端B检查随机数N2的正确性:若正确,则主被叫用户之间建立通信连接,开始通话;若不正确,则返回错误:会话密钥协商302失败。6) Terminal A sends the confirmation message ACK and the random number N 2 encrypted with the fixed key K fixed to the server, that is, sends ACK||E(K fixed , N 2 ). The proxy server forwards the confirmation message to terminal B. Terminal B checks the correctness of the random number N2 : if it is correct, a communication connection is established between the calling and called users, and the call starts; if it is not correct, an error is returned: session key negotiation 302 failed.

图7所示为会话建立104的流程图。当被叫收到会话确认信息ACK后,会话建立,会话双方存储本次会话密钥401,然后对缓冲区初始化402、参数及定时器初始化403、启动声音器件404。FIG. 7 shows a flowchart of session establishment 104 . When the called party receives the session acknowledgment message ACK, the session is established, and both parties in the session store the current session key 401 , then initialize 402 the buffer, initialize 403 parameters and timers, and start the audio device 404 .

图8所示为语音通信105的流程图。声音首先经过声音器件后采样为语音数据(声音器件处理501),然后对数据进行PCM编码(编码/解码502),将语音数据封装成RTP包(RTP包封装/解封503)后,用自己的私钥对RTP包生成DSA数字签名(DSA数字签名/签名验证504)。之后使用协商好的会话密钥,对整个包进行AES加密(RTP包加密/解密505)后,再嵌到UDP包中(UDP包封装/解封506),最后进行发送。接收UDP包后的流程则反过来。在终端收到UDP包后,先对UDP包解封(UDP包封装/解封506),使用会话密钥对加密过的RTP包进行AES解密(RTP包加密/解密505),之后DSA签名验证(DSA数字签名/签名验证504):比对用明文及公钥生成的DSA数字签名与发送来的DSA数字签名:若不相同则证明包内容受到篡改,丢弃该RTP包;若匹配,则对RTP包进行解封(RTP包封装/解封503),将语音数据解码(编码/解码502)后送到声音器件,最后用扬声器播放(声音器件处理501)出来。该部分内容在动态链接库中进行功能实现。FIG. 8 shows a flowchart of voice communication 105 . The sound is first sampled into voice data after being passed through the sound device (sound device processing 501), then the data is subjected to PCM encoding (encoding/decoding 502), and the voice data is encapsulated into RTP packets (RTP packet encapsulation/decapsulation 503), and then used The private key generates a DSA digital signature for the RTP packet (DSA digital signature/signature verification 504). Afterwards, use the negotiated session key to perform AES encryption on the entire packet (RTP packet encryption/decryption 505), and then embed it into a UDP packet (UDP packet encapsulation/decapsulation 506), and finally send it. The process after receiving the UDP packet is reversed. After receiving the UDP packet, the terminal first decapsulates the UDP packet (UDP packet encapsulation/decapsulation 506), uses the session key to perform AES decryption on the encrypted RTP packet (RTP packet encryption/decryption 505), and then DSA signature verification (DSA digital signature/signature verification 504): compare the DSA digital signature generated with the plaintext and public key with the sent DSA digital signature: if they are not the same, it proves that the contents of the packet have been tampered with, and the RTP packet is discarded; The RTP packet is decapsulated (RTP packet encapsulation/decapsulation 503), the voice data is decoded (encoding/decoding 502) and then sent to the sound device, and finally played by the speaker (sound device processing 501). This part of the content is implemented in the dynamic link library.

图9所示为DSA数字签名的计算图。在终端获取到RTP包rtp_pkt后,选择一个长度160位的素数q,且满足q能够整除(p-1);选择g满足g=h(p-1)/qmodq,其中h是1到p-1之间的整数使得g大于1;产生随机数k,计算,其中,函数H(rtp_pkt)生成了RTP包rtp_pkt的消息散列码。最后,将得到的DSA签名(r,s)附在RTP包rtp_pkt后,即生成签名后的RTP包rtp_pkt||(r,s)。Figure 9 shows the calculation diagram of DSA digital signature. After the terminal obtains the RTP packet rtp_pkt, select a prime number q with a length of 160 bits, and satisfy that q can be divisible by (p-1); select g to satisfy g=h (p-1)/q modq, where h is 1 to p An integer between -1 makes g greater than 1; generate a random number k, calculate and , wherein, the function H(rtp_pkt) generates the message hash code of the RTP packet rtp_pkt. Finally, attach the obtained DSA signature (r, s) to the RTP packet rtp_pkt, that is, generate the signed RTP packet rtp_pkt||(r, s).

图10所示为RTP包加密的具体实现方法。使用协商好的128bit会话密钥KS,对封装好的RTP包rtp_pkt与其生成的签名(r,s)进行AES算法加密,即得到E{KS,rtp_pkt||(r,s)}。然后将加密后的密文输出E{KS,rtp_pkt||(r,s)}嵌入UDP包,进行传输。Figure 10 shows the specific implementation method of RTP packet encryption. Use the negotiated 128bit session key K S to encrypt the encapsulated RTP packet rtp_pkt and the signature (r, s) generated by the AES algorithm to obtain E{K S ,rtp_pkt||(r,s)}. Then the encrypted ciphertext output E{K S ,rtp_pkt||(r,s)} is embedded in the UDP packet for transmission.

图11所示为RTP包解密的计算图。使用协商好的128bit的会话密钥KS,对收到的加密的RTP包rtp_pkt'与(r',s')进行AES算法解密,即对E{KS,rtp_pkt'||(r',s')}解密。然后对解密后的明文输出rtp_pkt'||(r',s')进行DSA数字签名验证。Figure 11 shows the calculation diagram of RTP packet decryption. Use the negotiated 128bit session key K S to decrypt the received encrypted RTP packets rtp_pkt' and (r', s') with the AES algorithm, that is, to E{K S ,rtp_pkt'||(r', s')} to decrypt. Then, DSA digital signature verification is performed on the decrypted plaintext output rtp_pkt'||(r', s').

图12所示为DSA签名验证的计算图。解密后,取出收到的附DSA数字签名的RTP包,进行DSA签名验证。计算。检验v是否等于r':若等于,则DSA签名验证成功,取出rtp_pkt';若不等于,则丢弃该包。Figure 12 shows the computation graph of DSA signature verification. After decryption, take out the received RTP packet with DSA digital signature, and perform DSA signature verification. calculate , , , . test Whether v is equal to r': if it is equal, the DSA signature verification is successful, and rtp_pkt' is taken out; if not, the packet is discarded.

图13所示为通话结束106的流程图。当会话双方通话结束时,一方挂断,发送挂断请求Bye601。对端请求回复200OK602后,呼叫释放603,本次会话密钥清零604。FIG. 13 shows a flowchart of call end 106. When the conversation between the two parties ends, one party hangs up and sends a hangup request Bye601. After the opposite end requests to reply 200 OK602, the call is released 603, and the current session key is cleared 604.

Claims (10)

1. the sound end-to-end encryption method towards Android system and mobile terminal, it is characterized in that: wrap in: comprise that user registers (101), uses that encryption mode makes a call (102), key agreement (103), session establishment (104), speech scrambling (105) and (106) six steps of end of conversation: user's registration (101) is that terminal to server is verified after its legitimacy, by user profile write into Databasce; Use encryption mode make a call (102) comprise subscriber dialing (201), select call mode (202), encryption mode initialization (203), point out called employing encryption mode communication (204) four steps, realize calling subscriber and called subscriber and carry out the selection of call mode; Key agreement (103) comprises authentication (301) and (302) two parts of session key agreement, the information that authentication (301) acknowledges receipt of is from communicating pair, and session key agreement (302) exchanges both sides' PKI and negotiates this session key; Session establishment (104) is for the initialization of the initialization of this session key and other parameters, device; Speech scrambling (105) comprises that acoustic device processing (501), coding/decoding (502), RTP seal dress/deblocking (503), digital signature/signature verification (504), RTP packet encryption/deciphering (505), UDP and seal dress/deblocking (506), ciphering process is for sent RTP bag, the method that adopts the rear AES of first DSA signature to encrypt, decrypting process, for the RTP bag receiving, adopts the method for the rear signature verification of first AES deciphering; End of conversation (106), by sending hang-up request Bye(601), 200OK(602 is replied in opposite end) after, call out and discharge (603), this session key zero clearing (604).
2. the sound end-to-end encryption method towards Android system and mobile terminal according to claim 1, it is characterized in that: use encryption mode to make a call (102) for the java applet ccf layer based on Android system, communicate by JNI module and dynamic link library, realize parameter transmission and setting, comprise the following steps:
1) subscriber dialing (201): calling subscriber completes after registration, starts to dial;
2) select call mode (202): in the time making a call, first user carries out model selection, encryption mode or non-encrypted pattern, and whether terminal judges uses encryption mode: if encryption mode, be encrypted pattern initialization, and point out called employing encryption mode communication (204); If selection general mode, carries out general mode initialization, user carries out normal voice call; The step of model selection is mutual the java applet ccf layer completing user of Android system and terminal, subsequently the result obtaining is passed to dynamic link library by JNI module;
3) encryption mode initialization (203): terminal is called dynamic link library, judges whether to use encryption mode: if encryption mode is encrypted pattern initialization, encrypted state puts 1, and points out called employing encryption mode communication (204); If selection general mode, encrypted state sets to 0, and carries out general mode initialization, and user carries out normal voice call;
4) point out called employing encryption mode communication (204): if called agreement is used encryption mode, both sides carry out key agreement; If disagree with use encryption mode, point out session not encrypted by the mode that ejects dialog box to calling party, this call is hung up; The process of called subscriber's encryption mode judgement completes at java applet ccf layer, afterwards result is passed to dynamic link library by JNI module, is configured and calls; Calling subscriber's prompting: this call unencrypted process is to receive after the message of called refusal encryption as calling subscriber, by dynamic link library, state is uploaded to JNI module, then provides prompting at interface.
3. the sound end-to-end encryption method towards Android system and mobile terminal according to claim 1, it is characterized in that: key agreement (103), use Session Initiation Protocol to carry out conversation initial negotiation and key agreement simultaneously, this process is carried out function realization in dynamic link library, comprises (302) two steps of authentication (301) and session key agreement:
1) in the process that conversation initial is consulted, if authentication (301) is unsuccessful, the unsuccessful mistake of end of calling return authentication; If authentication (301) success, session both sides carry out session key agreement (302); If caller is used encryption mode and called use general mode, the session key that PKI of caller is this;
2), if session key agreement (302) is unsuccessful, end of calling returns and consults failed mistake; If session key agreement (302) success, session establishment.
4. the sound end-to-end encryption method towards Android system and mobile terminal according to claim 3, is characterized in that: authentication (301) can realize the bidirectional identity authentication between session both sides, comprises following steps:
1), when terminal A sends Invite request to terminal B, enclose and adopt fixed key K fixedcarry out the identity message IDA of AES encryption, i.e. Invite||E (K fixed, Y a|| ID a|| N 1);
2) terminal B receives the Invite request Invite ' that contains identity message || E (K fixed, Y a|| ID a|| N 1) after, first with fixed key deciphering, then compare ID and whether conform to transmission header field: if conform to, continue; If be not inconsistent, return to mistake: authentication (301) failure;
3), when terminal B sends 200 OK message to terminal A, enclose and adopt fixed key K fixedcarry out the identity message ID of AES encryption b, i.e. 200OK||E (K fixed, Y b|| ID b|| N 1|| N 2);
4) terminal A receives this message 200OK||E (K fixed, Y b|| ID b|| N 1|| N 2) after, first, with fixed key deciphering, then compare ID bwhether conform to the From header field of receiving Session Initiation Protocol: if conform to, continue; If be not inconsistent, return to mistake: authentication (301) failure.
5. according to the sound end-to-end encryption method towards Android system and mobile terminal described in claim 3 or 4, it is characterized in that: session key agreement (302) comprises following steps:
1) terminal A gets random number X aas the private key of oneself, calculate PKI ; When terminal A sends Invite request to terminal B, enclose and adopt fixed key K fixedcarry out the PKI Y of AES encryption aand random number N 1, i.e. Invite||E (K fixed, Y a|| ID a|| N 1);
2) terminal B is receiving forwarding messages Invite ' || E (K fixed, Y a|| ID a|| N 1), and by after authentication (301), preserve the PKI Y of terminal A band random number N 1;
3) called subscriber's off-hook, terminal B gets random number X bas the private key of oneself, calculate PKI with this session key ; Terminal B returns to the 200OK that replys that represents successful connection to server, enclose and adopt fixed key K in SDP fixedcarry out the PKI Y of AES encryption b, terminal A send random number N 1and the random number N oneself producing 2, send 200OK||E (K fixed, Y b|| ID b|| N 1|| N 2);
4) terminal A receives message, checks N 1whether correct, if condition all meets, preserve random number N 2, calculate this session key , K s=K s'; Otherwise return to mistake: session key agreement (302) failure;
5) terminal B checks random number N 2correctness, if correct session establishment (104) between calling and called user starts speech scrambling; Otherwise return to mistake: session key agreement (302) failure.
6. the sound end-to-end encryption method towards Android system and mobile terminal according to claim 5, it is characterized in that: speech scrambling (105) concrete steps are: first call voice is speech data through the processing post-sampling of acoustic device, then data are carried out to pcm encoder, speech data is packaged into RTP bag, then adopts the private key of oneself to generate DSA digital signature to RTP bag; Then use the session key consulting, whole bag is carried out after AES encryption, then be embedded in UDP bag, finally send; Flow process after reception UDP bag conversely, receive after UDP bag at receiving terminal, first use session key to carry out AES deciphering to the RTP bag of encrypting, DSA digital signature and the DSA digital signature of receiving that comparison afterwards generates with plaintext and PKI: if not identical, prove that bag content is distorted, abandon this RTP and wrap and return mistake: DSA authentication failure; If identical, carry out RTP and seal the RTP bag deblocking of dress/deblocking (503), after the decoding by voice by coding/decoding (502), deliver to acoustic device, finally by playing back with loud speaker after acoustic device processing (501).
7. the sound end-to-end encryption method towards Android system and mobile terminal according to claim 6, is characterized in that, the DSA digital signature of DSA digital signature/signature verification (504) has following step:
1) getting after RTP bag rtp_pkt, select the prime number q of 160 of length, and meet q and can divide exactly (p-1); Select g to meet g= (p-1)/qmodp, produces random number k, calculates with , function H (rtp_pkt) has generated the SHA-1 message hash code of RTP bag rtp_pkt;
2) the DSA signature (r, s) step 1) being calculated is attached to after RTP bag rtp_pkt, generates the RTP bag rtp_pkt|| (r, s) after signature;
3) the RTP bag rtp_pkt|| (r, s) after signature is carried out to RTP packet encryption (RTP packet encryption/deciphering 505).
8. the sound end-to-end encryption method towards Android system and mobile terminal according to claim 7, is characterized in that: the RTP packet encryption of RTP packet encryption/deciphering (505) uses the session key K of the 128bit consulting s, packaged RTP bag rtp_pkt and the signature (r, s) of its generation are carried out to aes algorithm encryption; Then by the ciphertext output E{K after encrypting s, rtp_pkt|| (r, s) } and embed UDP bag, transmit.
9. the sound end-to-end encryption method towards Android system and mobile terminal according to claim 8, is characterized in that: the RTP bag deciphering of RTP packet encryption/deciphering (505), the session key K of the 128bit that use consults s, the encryption RTP bag rtp_pkt ' receiving is carried out to aes algorithm deciphering with (r ', s '), to E{K s, rtp_pkt|| (r ', s ') } and deciphering; Then to the plaintext output rtp_pkt ' after deciphering || (r ', s ') carries out the DSA digital signature authentication of DSA digital signature/signature verification (504).
10. the sound end-to-end encryption method towards Android system and mobile terminal according to claim 9, is characterized in that: the DSA signature verification of DSA digital signature/signature verification (504) has following steps:
1) carrying out after the deciphering of RTP bag, taking out the RTP bag rtp_pkt ' of the attached DSA digital signature of receiving || (r ', s '); Calculate , , , ;
2) whether inspection v equals r ': if equal, show DSA signature verification success, take out RTP bag rtp_pkt '; If not etc., show DSA signature verification failure, abandon this RTP bag rtp_pkt ', and return to mistake: DSA signature verification failure.
CN201310046868.0A 2013-02-05 2013-02-05 A kind of sound end-to-end encryption method towards android system mobile terminal Expired - Fee Related CN103974241B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310046868.0A CN103974241B (en) 2013-02-05 2013-02-05 A kind of sound end-to-end encryption method towards android system mobile terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310046868.0A CN103974241B (en) 2013-02-05 2013-02-05 A kind of sound end-to-end encryption method towards android system mobile terminal

Publications (2)

Publication Number Publication Date
CN103974241A true CN103974241A (en) 2014-08-06
CN103974241B CN103974241B (en) 2018-01-16

Family

ID=51243182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310046868.0A Expired - Fee Related CN103974241B (en) 2013-02-05 2013-02-05 A kind of sound end-to-end encryption method towards android system mobile terminal

Country Status (1)

Country Link
CN (1) CN103974241B (en)

Cited By (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104202736A (en) * 2014-08-26 2014-12-10 东南大学常州研究院 Mobile terminal short message end-to-end encryption method oriented to Android system
CN104539433A (en) * 2014-10-30 2015-04-22 马洁韵 Voice communication encryption system and encryption method thereof
CN104640108A (en) * 2015-01-28 2015-05-20 深圳市比维视创科技有限公司 Terminal communication voice encryption method and system
CN105025475A (en) * 2015-07-28 2015-11-04 东南大学常州研究院 Andriod system-oriented implement method of mobile secure terminal
CN105592451A (en) * 2014-10-22 2016-05-18 北京元心科技有限公司 Voice call method, voice response method, and mobile terminal
WO2016082401A1 (en) * 2014-11-25 2016-06-02 中兴通讯股份有限公司 Conversation method and apparatus, user terminal and computer storage medium
CN105792193A (en) * 2016-02-26 2016-07-20 东南大学常州研究院 End-to-end encryption method for mobile terminal voice based on iOS operating system
CN105790942A (en) * 2014-12-17 2016-07-20 中兴通讯股份有限公司 Method and system for secure call and terminals
CN105992203A (en) * 2015-01-29 2016-10-05 成都三零瑞通移动通信有限公司 Speech communication encryption key negotiation method and system based on same
CN105992199A (en) * 2015-01-29 2016-10-05 成都三零瑞通移动通信有限公司 Speech communication decrypted conversation and encrypted conversation identification method and system
CN106027819A (en) * 2016-05-31 2016-10-12 北京小米移动软件有限公司 Data transmission method and device in voice over internet protocol
CN106101081A (en) * 2016-05-31 2016-11-09 宇龙计算机通信科技(深圳)有限公司 Speech ciphering method, device, terminal, key management platform and system
CN106303085A (en) * 2016-09-27 2017-01-04 北京奇虎科技有限公司 Mobile terminal and the method and apparatus of secret telephony
CN106341225A (en) * 2016-09-19 2017-01-18 杭州字节信息技术有限公司 UMTS mobile terminal circuit domain voice encryption communication technology realization method
CN106357940A (en) * 2016-09-27 2017-01-25 北京奇虎科技有限公司 Method and device for confidential communication
CN106506450A (en) * 2016-09-27 2017-03-15 北京奇虎科技有限公司 Method and system for confidential calls
CN107104888A (en) * 2017-06-09 2017-08-29 成都轻车快马网络科技有限公司 A kind of safe instant communicating method
CN107295506A (en) * 2016-03-31 2017-10-24 宇龙计算机通信科技(深圳)有限公司 A kind of method of speech processes, device and terminal
CN107426521A (en) * 2016-05-24 2017-12-01 中兴通讯股份有限公司 A kind of video call method and terminal
CN107819725A (en) * 2016-09-12 2018-03-20 山东量子科学技术研究院有限公司 Method and mobile terminal based on VoIP calls
CN108040269A (en) * 2017-12-18 2018-05-15 西安邮电大学 A kind of method and system of video monitoring system key agreement, computer
CN108307023A (en) * 2018-01-19 2018-07-20 厦门盈趣科技股份有限公司 Encryption communication method based on DTMF technologies and system
CN108449346A (en) * 2018-03-22 2018-08-24 北京可信华泰科技有限公司 A kind of key generation client
CN108966213A (en) * 2018-07-18 2018-12-07 中国联合网络通信集团有限公司 Encryption call method, call encryption terminal, speech scrambling platform and system
CN109286634A (en) * 2018-11-08 2019-01-29 成都卫士通信息产业股份有限公司 A kind of data transmission method, device, electronic equipment and readable storage medium storing program for executing
CN109698834A (en) * 2019-01-11 2019-04-30 深圳市元征科技股份有限公司 A kind of encrypted transmission method and system
CN110213139A (en) * 2019-05-09 2019-09-06 四川通信科研规划设计有限责任公司 A kind of audio communication method and system
WO2019174404A1 (en) * 2018-03-14 2019-09-19 西安西电捷通无线网络通信股份有限公司 Digital group signature method, device and apparatus, and verification method, device and apparatus
CN110740129A (en) * 2019-09-29 2020-01-31 武汉大学深圳研究院 telephone network communication protection method based on end-to-end authentication
CN111192474A (en) * 2019-11-14 2020-05-22 晏子俊 Garage-based private parking space sharing method
CN111478774A (en) * 2020-04-09 2020-07-31 山东确信信息产业股份有限公司 Secret key authorization method and system based on voice authentication
CN111510291A (en) * 2020-04-20 2020-08-07 重庆邮电大学 Efficient identity authentication key agreement protocol based on bilinear pairings
CN111756726A (en) * 2020-06-23 2020-10-09 上海缔安科技股份有限公司 SIP security authentication method supporting State cipher algorithm
CN112953898A (en) * 2021-01-26 2021-06-11 四川天翼网络服务有限公司 Audio and video encryption and decryption transmission control method
CN113360891A (en) * 2021-05-25 2021-09-07 深圳市蘑菇财富技术有限公司 Anti-cheating method based on exercise system and related equipment
CN114448955A (en) * 2021-12-31 2022-05-06 赛因芯微(北京)电子科技有限公司 Digital audio network transmission method, device, equipment and storage medium
CN114630290A (en) * 2022-04-08 2022-06-14 中国电信股份有限公司 Key agreement method, device, equipment and storage medium for voice encryption communication
CN114726958A (en) * 2021-01-05 2022-07-08 中国移动通信有限公司研究院 Identity authentication method and device, electronic equipment and readable storage medium
CN115052056A (en) * 2022-04-26 2022-09-13 深圳市云伽智能技术有限公司 Industrial control communication method, device, equipment and storage medium
CN115243206A (en) * 2022-09-21 2022-10-25 荣耀终端有限公司 Voice call establishment method and electronic device
CN115278667A (en) * 2022-07-29 2022-11-01 浙江海高思通信科技有限公司 Public network walkie-talkie encryption communication method
CN115567209A (en) * 2022-09-29 2023-01-03 中电信量子科技有限公司 Method for realizing VoIP encryption and decryption by adopting transparent proxy and quantum key pre-charging
CN118118276A (en) * 2024-04-26 2024-05-31 广东安创信息科技开发有限公司 Speech encryption near-end device, far-end device, system and encryption and decryption method based on coprocessor

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020129236A1 (en) * 2000-12-29 2002-09-12 Mikko Nuutinen VoIP terminal security module, SIP stack with security manager, system and security methods
CN1658552A (en) * 2004-02-17 2005-08-24 华为技术有限公司 Realization method of secure transmission of media stream
CN101325484A (en) * 2007-06-11 2008-12-17 达声科技股份有限公司 Method and device for hiding information in communication signaling
CN101488957A (en) * 2009-02-17 2009-07-22 华为技术有限公司 Authentication method, apparatus and system for network appliance and terminal based on SIP

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020129236A1 (en) * 2000-12-29 2002-09-12 Mikko Nuutinen VoIP terminal security module, SIP stack with security manager, system and security methods
CN1658552A (en) * 2004-02-17 2005-08-24 华为技术有限公司 Realization method of secure transmission of media stream
CN101325484A (en) * 2007-06-11 2008-12-17 达声科技股份有限公司 Method and device for hiding information in communication signaling
CN101488957A (en) * 2009-02-17 2009-07-22 华为技术有限公司 Authentication method, apparatus and system for network appliance and terminal based on SIP

Cited By (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104202736A (en) * 2014-08-26 2014-12-10 东南大学常州研究院 Mobile terminal short message end-to-end encryption method oriented to Android system
CN105592451A (en) * 2014-10-22 2016-05-18 北京元心科技有限公司 Voice call method, voice response method, and mobile terminal
CN104539433A (en) * 2014-10-30 2015-04-22 马洁韵 Voice communication encryption system and encryption method thereof
WO2016082401A1 (en) * 2014-11-25 2016-06-02 中兴通讯股份有限公司 Conversation method and apparatus, user terminal and computer storage medium
CN105704711A (en) * 2014-11-25 2016-06-22 中兴通讯股份有限公司 Method for ensuring call communication security, device and user terminal
CN105790942A (en) * 2014-12-17 2016-07-20 中兴通讯股份有限公司 Method and system for secure call and terminals
CN104640108A (en) * 2015-01-28 2015-05-20 深圳市比维视创科技有限公司 Terminal communication voice encryption method and system
CN105992199A (en) * 2015-01-29 2016-10-05 成都三零瑞通移动通信有限公司 Speech communication decrypted conversation and encrypted conversation identification method and system
CN105992203A (en) * 2015-01-29 2016-10-05 成都三零瑞通移动通信有限公司 Speech communication encryption key negotiation method and system based on same
CN105025475A (en) * 2015-07-28 2015-11-04 东南大学常州研究院 Andriod system-oriented implement method of mobile secure terminal
CN105792193A (en) * 2016-02-26 2016-07-20 东南大学常州研究院 End-to-end encryption method for mobile terminal voice based on iOS operating system
CN105792193B (en) * 2016-02-26 2019-02-26 东南大学常州研究院 End-to-end encryption method for mobile terminal voice based on iOS operating system
CN107295506A (en) * 2016-03-31 2017-10-24 宇龙计算机通信科技(深圳)有限公司 A kind of method of speech processes, device and terminal
CN107426521A (en) * 2016-05-24 2017-12-01 中兴通讯股份有限公司 A kind of video call method and terminal
CN106027819A (en) * 2016-05-31 2016-10-12 北京小米移动软件有限公司 Data transmission method and device in voice over internet protocol
CN106101081A (en) * 2016-05-31 2016-11-09 宇龙计算机通信科技(深圳)有限公司 Speech ciphering method, device, terminal, key management platform and system
CN106101081B (en) * 2016-05-31 2020-02-21 宇龙计算机通信科技(深圳)有限公司 Voice encryption method, device, terminal, key management platform and system
CN107819725A (en) * 2016-09-12 2018-03-20 山东量子科学技术研究院有限公司 Method and mobile terminal based on VoIP calls
CN106341225A (en) * 2016-09-19 2017-01-18 杭州字节信息技术有限公司 UMTS mobile terminal circuit domain voice encryption communication technology realization method
CN106341225B (en) * 2016-09-19 2019-07-23 杭州字节信息技术有限公司 A kind of UMTS mobile terminal circuit domain voice encryption communication technology implementation method
CN106506450A (en) * 2016-09-27 2017-03-15 北京奇虎科技有限公司 Method and system for confidential calls
CN106303085A (en) * 2016-09-27 2017-01-04 北京奇虎科技有限公司 Mobile terminal and the method and apparatus of secret telephony
CN106506450B (en) * 2016-09-27 2020-01-21 北京安云世纪科技有限公司 Method and system for secure call
CN106357940A (en) * 2016-09-27 2017-01-25 北京奇虎科技有限公司 Method and device for confidential communication
CN106303085B (en) * 2016-09-27 2020-01-14 北京安云世纪科技有限公司 Mobile terminal and method and device for secure call
CN107104888B (en) * 2017-06-09 2020-10-16 四川楠水农牧科技有限公司 A Secure Instant Messaging Method
CN107104888A (en) * 2017-06-09 2017-08-29 成都轻车快马网络科技有限公司 A kind of safe instant communicating method
CN108040269A (en) * 2017-12-18 2018-05-15 西安邮电大学 A kind of method and system of video monitoring system key agreement, computer
CN108307023A (en) * 2018-01-19 2018-07-20 厦门盈趣科技股份有限公司 Encryption communication method based on DTMF technologies and system
CN108307023B (en) * 2018-01-19 2020-05-05 厦门盈趣科技股份有限公司 Encrypted communication method and system based on DTMF technology
WO2019174404A1 (en) * 2018-03-14 2019-09-19 西安西电捷通无线网络通信股份有限公司 Digital group signature method, device and apparatus, and verification method, device and apparatus
CN108449346B (en) * 2018-03-22 2021-07-27 北京可信华泰科技有限公司 Key generation client
CN108449346A (en) * 2018-03-22 2018-08-24 北京可信华泰科技有限公司 A kind of key generation client
CN108966213A (en) * 2018-07-18 2018-12-07 中国联合网络通信集团有限公司 Encryption call method, call encryption terminal, speech scrambling platform and system
CN109286634A (en) * 2018-11-08 2019-01-29 成都卫士通信息产业股份有限公司 A kind of data transmission method, device, electronic equipment and readable storage medium storing program for executing
CN109698834A (en) * 2019-01-11 2019-04-30 深圳市元征科技股份有限公司 A kind of encrypted transmission method and system
CN110213139B (en) * 2019-05-09 2021-04-06 四川通信科研规划设计有限责任公司 Voice communication method and system
CN110213139A (en) * 2019-05-09 2019-09-06 四川通信科研规划设计有限责任公司 A kind of audio communication method and system
CN110740129A (en) * 2019-09-29 2020-01-31 武汉大学深圳研究院 telephone network communication protection method based on end-to-end authentication
CN111192474A (en) * 2019-11-14 2020-05-22 晏子俊 Garage-based private parking space sharing method
CN111478774A (en) * 2020-04-09 2020-07-31 山东确信信息产业股份有限公司 Secret key authorization method and system based on voice authentication
CN111510291A (en) * 2020-04-20 2020-08-07 重庆邮电大学 Efficient identity authentication key agreement protocol based on bilinear pairings
CN111756726A (en) * 2020-06-23 2020-10-09 上海缔安科技股份有限公司 SIP security authentication method supporting State cipher algorithm
CN114726958A (en) * 2021-01-05 2022-07-08 中国移动通信有限公司研究院 Identity authentication method and device, electronic equipment and readable storage medium
CN112953898A (en) * 2021-01-26 2021-06-11 四川天翼网络服务有限公司 Audio and video encryption and decryption transmission control method
CN113360891A (en) * 2021-05-25 2021-09-07 深圳市蘑菇财富技术有限公司 Anti-cheating method based on exercise system and related equipment
CN113360891B (en) * 2021-05-25 2023-12-15 深圳市蘑菇财富技术有限公司 Anti-cheating method based on exercise system and related equipment
CN114448955A (en) * 2021-12-31 2022-05-06 赛因芯微(北京)电子科技有限公司 Digital audio network transmission method, device, equipment and storage medium
CN114448955B (en) * 2021-12-31 2024-02-02 赛因芯微(北京)电子科技有限公司 Digital audio network transmission method, device, equipment and storage medium
CN114630290A (en) * 2022-04-08 2022-06-14 中国电信股份有限公司 Key agreement method, device, equipment and storage medium for voice encryption communication
CN114630290B (en) * 2022-04-08 2024-08-06 中国电信股份有限公司 Key negotiation method, device, equipment and storage medium for voice encryption call
CN115052056A (en) * 2022-04-26 2022-09-13 深圳市云伽智能技术有限公司 Industrial control communication method, device, equipment and storage medium
CN115052056B (en) * 2022-04-26 2024-06-07 深圳市云伽智能技术有限公司 Industrial control communication method, device, equipment and storage medium
CN115278667A (en) * 2022-07-29 2022-11-01 浙江海高思通信科技有限公司 Public network walkie-talkie encryption communication method
CN115243206A (en) * 2022-09-21 2022-10-25 荣耀终端有限公司 Voice call establishment method and electronic device
CN115567209A (en) * 2022-09-29 2023-01-03 中电信量子科技有限公司 Method for realizing VoIP encryption and decryption by adopting transparent proxy and quantum key pre-charging
CN115567209B (en) * 2022-09-29 2023-09-22 中电信量子科技有限公司 VoIP encryption and decryption method by adopting transparent proxy and quantum key pre-filling
CN118118276A (en) * 2024-04-26 2024-05-31 广东安创信息科技开发有限公司 Speech encryption near-end device, far-end device, system and encryption and decryption method based on coprocessor
CN118118276B (en) * 2024-04-26 2024-08-06 广东安创信息科技开发有限公司 Speech encryption near-end device, far-end device, system and encryption and decryption method based on coprocessor

Also Published As

Publication number Publication date
CN103974241B (en) 2018-01-16

Similar Documents

Publication Publication Date Title
CN103974241B (en) A kind of sound end-to-end encryption method towards android system mobile terminal
Zimmermann et al. ZRTP: Media path key agreement for unicast secure RTP
CN104486077B (en) A kind of end-to-end cryptographic key negotiation method of VoIP real time datas safe transmission
US7464267B2 (en) System and method for secure transmission of RTP packets
CN106936788B (en) A key distribution method suitable for VOIP voice encryption
US20150089220A1 (en) Technique For Bypassing an IP PBX
CN104683304B (en) A kind of processing method of secure traffic, equipment and system
US9258303B1 (en) Method of providing real-time secure communication between end points in a network
Reaves et al. {AuthLoop}:{End-to-End} cryptographic authentication for telephony over voice channels
WO2015180654A1 (en) Method and apparatus for achieving secret communications
CN105025475B (en) Mobile secrecy terminal realizing method towards android system
Wang et al. A dependable privacy protection for end-to-end VoIP via Elliptic-Curve Diffie-Hellman and dynamic key changes
CN105792193A (en) End-to-end encryption method for mobile terminal voice based on iOS operating system
CN106899969A (en) Specific secrecy terminal system implementation method based on iOS system
WO2012024903A1 (en) Method for encrypting voice calls in mobile communication network, and system, terminal, and network side thereof
WO2016082401A1 (en) Conversation method and apparatus, user terminal and computer storage medium
CN111756726A (en) SIP security authentication method supporting State cipher algorithm
WO2017197968A1 (en) Data transmission method and device
WO2017215443A1 (en) Message transmission method, apparatus and system
CN115589292B (en) Method and system for realizing end-to-end VoIP multi-encrypted encrypted call
Sadiwala Analysis of security threats of VoIP systems
CN115589288B (en) End-to-end VoIP encryption communication method based on quantum key pre-filling
Subashri et al. Real time implementation of Elliptic Curve Cryptography over a open source VoIP server
KR101210938B1 (en) Encrypted Communication Method and Encrypted Communication System Using the Same
Callas et al. ZRTP: Media path key agreement for unicast secure RTP

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: THE THIRD RESEARCH INSTITUTE OF MINISTRY OF PUBLIC

Effective date: 20140804

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20140804

Address after: 213164 Changzhou Research Institute, Southeast University, North building, science and technology building, No. 801, Chang Wu Road, Changzhou, Jiangsu, China

Applicant after: Changzhou Research Institute, Southeast University

Applicant after: The Third Research Institute of Ministry of Public Security

Address before: 213164 Changzhou Research Institute, Southeast University, North building, science and technology building, No. 801, Chang Wu Road, Changzhou, Jiangsu, China

Applicant before: Changzhou Research Institute, Southeast University

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180116

Termination date: 20190205