FAQ

Frequently Asked Questions about VoLTE End-to-End Encryption

General 8 Questions
Business & Trade 4 Questions
Technical 54 Questions

General

8 Questions
01 What are the advantages of this solution compared to other VoLTE encryption solutions?

1. Strong adaptability — no need to modify existing IMS network configuration; works in any VoLTE network.
2. Short encrypted call setup time with high success rate — compared to other user-plane key exchange solutions, this solution uses the IBE algorithm suite, reducing public key interaction steps, shortening interaction latency, and improving success rate.
3. Lightweight — no need to deploy an online KMS platform.
4. Root key controlled by the end user — the root key, especially the signature root key, is in the hands of the end user, avoiding the security risk in other decentralized solutions where the trust root is controlled by the vendor.

02 Why use the Unisoc platform?

Unisoc is a Chinese domestic mobile chipset platform that can provide us with more open customization interfaces.

03 Can video encryption be supported?

Currently only voice and SMS encryption are supported; video encryption is not supported. The technical principle of video encryption is the same as voice, and it can be added in the future.

04 Can encryption be supported for value-added services such as three-way calling, call forwarding, etc.?

Not supported. These services involve transcoding, audio mixing, and callee number changes, making implementation very difficult.

05 Are hardware encryption cards supported?

Not currently supported. NM card encryption has been planned and is expected to be available in 2027.

06 How to interoperate with non-VoLTE systems, such as an organization's IP-PBX system?

Not currently supported. A wireless encryption gateway (containing 4-16 VoLTE modules with SIM cards) has been planned. VoLTE encrypted phones and the gateway support E2E encryption, and the gateway can connect to IP phones, IP-PBX gateways, and other wired communication networks via SIP. Expected to be available in 2027.

07 I want to learn more about the solution principles. Can technical exchanges be arranged?

Yes, free online technical exchanges are supported but require an appointment. For on-site technical exchanges, a paid POC contract must be signed.

08 I want to verify the product's code and implementation. Can CIV (Code Implementation Verification) and CWT (Code Walk Through) be supported?

Yes, but additional contracts and fees are required.

Business & Trade

4 Questions
01 What equipment needs to be purchased for a standard configuration?

One KMS and several phones. Bulk phone purchases qualify for discounts. For general use, the F70 is recommended. For outdoor scenarios requiring PTT services or explosion-proof environments, choose the D51.

02 Can F70 and D51 be mixed?

Yes, they use the same technology and algorithms and are interoperable.

03 What is the trade process for test samples?

The deposit for test samples is calculated in accordance with the official website listed price. The buyer is responsible for all round-trip courier charges. The return shipping cost will be deducted from the deposit when we refund the deposit after receiving intact returned test units. All payments shall be completed via PayPal.

04 Who is the contract manufacturer and what is the trade process for bulk purchases?

Contract Manufacturer: Qingdao Hisense Mobile Communication Technology Co., Ltd.
Cooperation Mode: Entrusted ODM by Cunmeng, core encryption IP belongs to Cunmeng
Delivery Term: FOB Qingdao | Payment: SWIFT T/T

Technical

54 Questions
01 Given the widespread adoption of various tools using Certificate-Base methods, what is the advantage of using technique certificate in this product?

The system enables VoLTE terminals to provide E2EE encryption in any IMS network without modifying the signaling layer. Key exchange occurs at the user plane (RTP payload). Traditional certificate-based methods are unsuitable: (1) certificates are too large, causing excessive packet splitting and affecting latency/success rate; (2) certificate exchange requires bidirectional confirmation, impossible in RTP protocol stack. MIKEY-SAKKE is the only optimal choice — it enables unidirectional key exchange. IMessage is split into 9-19 RTP packets (depending on AMR rate), sent in loops with 10s timeout, achieving ~200 packets across 10-20 rounds for high success rate.

02 List the algorithms ECC, Hash, Encryption, Random-Generator and pairing function used in the product and provide the corresponding test vectors for each algorithm.

Asymmetric Signatures: ECCSI (RFC 6507); Asymmetric Encryption: SAKKE (RFC 6508); Symmetric Encryption: AES 256 CTR (FIPS 197); Pairing for SAKKE: Tate-Lichtenbaum Pairing (RFC 6508, see Sakai et al. SCIS 2001); Random Generator: RAND_priv_bytes (from OpenSSL, secure random number generator). Test vectors: see respective RFC/FIPS standards.

03 How is random key generated on the KMS server? Is its randomness quality checked in KMS simultaneously during generation?

Keys are generated using secure random numbers meeting SAKKE and ECCSI key order lengths. The function uses RAND_priv_bytes from OpenSSL-1.1.1u. In Android, OpenSSL's RAND_priv_bytes uses getrandom() to obtain entropy from kernel space via internal DRBG framework. The code generates 128-byte random data, converts to BIGNUM, and ensures the result is within [2, MIKEY_SAKKE_q - 1].

04 What is the key length generated for KMS and user? Also, what is the sign length bits generated?

SAKKE keys: Z_T(S) root private encryption key = 1024 bit; Z_T(P) root public encryption key = 2048 bit; RSK user private encryption key = 2048 bit. ECCSI keys: KSAK root private signature key = 256 bit; KPAK root public signature key = 512 bit; SSK user private signature key = 256 bit. Session keys: PCK private call key = 128 bit; AES 256 key (derived from PCK) = 256 bit. IMessage signature length = 129 bytes (see RFC 6507).

05 What is hardware used on the KMS server side? (Rack-mount or Portable). What is the security process, and hardening? Is KMS implemented as a Hardware Security Module (HSM)?

KMS is a customized three-proof PAD (waterproof, dustproof, anti-fall) with a U-key. Security hardening: (1) Customized OS — all data ports (WiFi, USB, Bluetooth) closed; (2) MDM Kiosk mode — KMS APK always occupies screen; (3) Root key protected with U-Key — storage key encrypts root key, encrypted root key stored in U-Key. Not currently HSM, but can be customized as server version with PCIE encryption cards. Plans to support hard encryption cards on mobile devices (Nano/TF card form factor) next year.

06 What technique is used to prevent Single Point of Failure in the context of KMS?

KMS does not participate in encrypted sessions, so it does not need to be online. KMS supports backup by backing up encrypted root keys and storage keys to another blank U-KEY, then using that U-KEY to build a KMS backup on another PAD.

07 What protocol is used for generating and delivering user keys from KMS? Are the keys transmitted in encrypted form?

QR code scanning is used. KMS structures keys in binary format, encrypts them (using a fixed key defined in KMS and KMC source code), converts to QR codes. KMC scans the QR code, decrypts it, and extracts key information.

08 How is storage handled for KMS and U-KEY? What is U-KEY?

See Q5. KMS must insert the corresponding U-KEY to work. The U-KEY stores the encrypted root keys (Z_T(S) and KSAK), while the storage key (which decrypts them) is stored on KMS's disk.

09 How is the risk of Key Escrow on KMS mitigated in this tool?

See Q5. The KMS root key is encrypted and stored in U-KEY. The storage key is on KMS disk. Both KMS and U-KEY must be stolen to compromise root keys. KMS is offline and cannot be attacked online.

10 It appears that a separate KMS is used for each users' network. Is it True? If we want to establish communication between two separate networks, what is the proposed solution?

It supports using the same KMS for two VoLTE networks, provided both use the same parameters (e.g., AMR rate) to ensure no RTP-AMR transcoding occurs. Transcoding causes IMessage transmission failure.

11 Explain how a user's identity is converted into an integer. Is this integer used directly as a public key? Does this tool use a different padding process?

User identity (VoLTE number) is a string, not an integer, unique within a KMS domain. VoLTE Client strips country codes (+xxx or 00xxx) and the first '0' from numbers to avoid interference. When entering numbers on KMS, country code and leading '0' should be omitted.

12 In communications between users on the network, are user identities hidden during the encryption process?

No. We do not modify the signaling plane of VoLTE. Hiding numbers is a function of the VoLTE system, not the encryption layer.

13 What is the method or mechanism used for storing user's keys securely on their mobile devices?

Trusted Execution Environment (TEE) is used to encrypt user's private keys before saving. TEE generates and saves the storage key (managed by TEE, KMC cannot obtain it). The TEE interface is used for encryption and decryption of user private keys.

14 How to Defense user's keys on Mobile phone from Hardware Attacker?

See Q13. User private keys are encrypted via TEE. An attacker who steals the phone can only obtain encrypted private keys. To crack them, the attacker must breach the TEE.

15 If a user's keys are deleted from their device and need to be retrieved again from KMS, what mechanism exists for this?

Enter the user's ID in KMS and use KMC to scan the QR code again. The private key and global public key are exactly the same as before.

16 Is there an expiration time for session keys used on the client side? (Especially for long-duration calls)

Currently not supported. The same key is used for the entire session.

17 Why was AES-CTR mode chosen for encryption? How is data integrity handled? Why wasn't AES-GCM used instead?

GCM causes RTP payload to become longer, affecting compatibility with VoLTE networks (Packet loss may occur due to conflict with GBR — Guaranteed Bit Rate). AES-CTR preserves payload size.

18 What is the meaning of rand and signature values in the network packet structure? How are they generated and what are their purposes?

Rand: random number generated by caller KMC, used for AES 256 key derivation (see Q19). Signature: ECCSI signature of the entire IMessage using signature keys (see Q4).

19 In the network packet structure, the PCK key size is 16 bytes (128 bits) while AES encryption uses 256 bits. Why this discrepancy?

The AES 256 key is derived from a hash result with input Rand, PCK, and CSB ID from the IMessage. PCK is 128 bits; the derived AES key is 256 bits.

20 Is there any mechanism to prevent duplicate/identical message transmission?

IMessage contains timestamp information. The receiver rejects encrypted calls where the IMessage timestamp differs from current time by more than 1 minute. Even if replay succeeds within the time gap, the attacker cannot decrypt PCK without the receiver's SAKKE private key, so they cannot encrypt/decrypt voice data.

21 What user management scenario (final client) particularly for client removal from the network has been implemented?

KMS cannot revoke already-issued private keys; they can only be deleted on the KMC side. If terminal is lost: try MDM for remote erasure. Safest approach: abandon the VoLTE number and issue a new VoLTE number with new QR code.

22 How does multi-user (more than two) simultaneous communication function? (Conference communication)

Multiple parties may generate server-side mixing, causing IMessage to be undeliverable. Technically unfeasible.

23 Is operational data (including request timestamps, destination identities, and logs) recorded and stored?

KMC saves the latest 10 IMessage application and verification information, including the above content. Viewable directly in KMC's UI. More records can be customized if needed.

24 Has the product and its algorithms been secured against quantum computing attacks?

Not supporting PQC yet. Based on current quantum computer capabilities, MIKEY-SAKKE is temporarily secure but cannot guarantee resistance to future quantum attacks. Will follow PQC progress and upgrade after IBE algorithm (based on lattice for PQC) is released.

25 Are there any evaluation certificates from accredited laboratories verifying the system's implementation claims?

Yes, will show you.

26 What is the process for updating/changing cryptographic schemes, algorithms, and parameters?

Asymmetric encryption: algorithm replacement not supported. Symmetric encryption: will support an algorithm replacement framework where customers can replace their own S-BOX or the entire encryption algorithm.

27 If the phone is stolen, which Critical Information can export from Phone by Attacker?

Attacker can obtain the encrypted private key and global public key. Cracking the private key requires breaching TEE. If TEE is cracked, attacker can eavesdrop on all calls and impersonate the user (if VoLTE layer is also compromised). Solution: abandon the VoLTE number and issue a new one.

28 How we can change the security Parameters on SOC (Spreadtrum) and set custom parameters?

Through the SOC interface, the modem can modify some SOC parameters including VoLTE parameters. Which parameters can be modified depends on customer needs analysis.

29 Parameters and test vectors in appiran tools generated based RFC 6508 but this parameter have 128 security levels and also RFC 6507 but this parameter have 128 security levels for sign. Prove that appiran achieves a 256-bit security level?

The security level of SAKKE and ECCSI algorithms is 128. The security level is not 256. It was stated that the security level is basically equivalent to ECC256 (with about 128 security level).

30 In response to question 19, It was stated that the AES key is generated from a hash RAND, PCK and CSB ID. However, all these values are transmitted. How is the security of the AES key ensured?

See 3GPP TS 33.180 or RFC 3830. Step 1: Get SRTP Master key and Master Salt from IMessage (PCK is encrypted, Rand and CSB-ID are clear text; last parameter is fixed). Step 2: Get SRTP Session key and IV using AES_CM PRF function (RFC 3711), with output length 256 for SRTP Session key, replacing AEAD_AES_128_GCM with AES_256_CTR.

31 What are the sizes of the IMessage and the payload RTP?

a) IMessage size is 488 Bytes. b) RTP payload size depends on AMR rate: full rate = 60 bytes, low rate = 30 bytes. 6 bytes of payload used as indicator (distinguishing IMessage vs AMR). Available bytes per packet reduced by 6. AMR sampling frequency = 50ms (20 packets/sec). At high AMR rate, 9 RTP packets (488/54=9) needed for one complete IMessage cycle.

32 Given that the IMessage is divided into RTP loads, how is the IMessage recovered if one of the loads is lost?

Sender sends in cycles of up to 10 seconds (timeout timer). At high-speed AMR, can send 10*20/9 = 22 cycles maximum. As long as receiver gets at least one complete cycle, encrypted call is successfully established.

33 What is the size of each RTP payload packet? What is the available AMR RAT in the mobile phones used in this project?

See Q31. AMR rate depends on network's IMS configuration. The phone supports mainstream AMR rates.

34 Is only the RAND_priv_bytes function used to generate random numbers for key production in the KMS? Or is the same function used to generate random number for signature and session key generation in the KMC?

All random numbers are generated by RAND_priv_bytes, including root keys (encryption and signature) for KMS, and PCK and Rand for IMessage. Can also provide KMS/KMC based on HSM with physical random numbers (requires additional customization fees and hardware costs).

35 Is the RAND_priv_bytes function implemented together with OPENSSL, or alone implemented?

RAND_priv_bytes is provided by the OpenSSL library.

36 Based on the key lengths specified in the table in the answer to question 4, what is the overall security level (in bits)?

The security level is 128, basically the same as ECC256.

37 In the table provided in response to question 4, what is the PCK (private call key), how is it generated, what is its purpose, and why is its length 128 bits?

PCK is generated by RAND_priv_bytes. Used to derive SRTP master key and salt (see Q30). PCK is 128 bits as defined in TS 33.180 and RFC 6508 (named as SSV).

38 What is U-key? If it refers to a security chip, what procedure is considered for storing encryption keys ROOT KEY? How many bits are the stored values? And this key is different with key HARD coded in KMC users?

AES256 encrypts KMS root keys. The storage key encrypts root keys, is created randomly by KMS on first start, and is encrypted by a hardcoding key for storage in KMS. Encrypted KMS root keys stored in U-KEY. Storage key: 256-bit AES. Hardcoding key: different from KMC hardcoded key (used for QR code encryption).

39 In reply to question 37, what is meant by KMS Domain? and is it same with 19 byte Domain in IMessage?

Domain distinguishes a KMS business space. Example: KMS for Shanghai Public Security → domain 'ps.sh.cn'. One KMS can serve different communication systems (e.g., volte.ps.sh.cn and im.ps.sh.cn). KMS generates root keys per domain. One KMS can provide E2EE for different systems of different sectors. Current system only supports volte.xxx.xxx domain.

40 In the IMessage structure, the size of PCK is stated as 128 bits, but if PCK refers to the ciphertext output of algorithm SAKKE, its size contradicts the Test Vector values in RFC 6508 (~64 bytes). Explain this discrepancy.

SSV (see RFC 6508) is the PCK, length 128 bits. Encrypted PCK(R,S) is 273 bytes in IMessage. SAKKE encryption: input M(PCK) = 16 bytes; output R (elliptic curve point, 256 bytes: 128 for x, 128 for y) and S (16 bytes). Total PCK(R,S) = 256 + 16 + 1 (delimiter) = 273 bytes (see RFC 6508 Chapter 4).

41 In the IMessage structure, the signature length is given as 12 bit, but at the end of Q4 it is stated as 129 bytes. Please describe the signature structure in IMessage with details and sizes.

Signature is 129 bytes. IMessage fields: version(1B), Kdf version(1B), Symmetric encryption version(1B), Root key version(1B), domain(16B), CSB ID(8B), CallerID(16B), CalleeID(16B), Timestamp(8B), Rand(16B), (R,S_PCK)(273B), signature(129B), reserved(2B). Total = 488 bytes. Signature uses ECCSI (r, s, PVT) per RFC 6507, covering entire IMessage excluding signature.

42 In the process of generating user keys, is the VOLTE number used directly or its hash? If hash is used, what is the output size and what hash function is used?

VoLTE number is used directly. A 'Hashing to an Integer' function (RFC 6509, Section 5.1) is applied, output is an integer within 1024-bit length. Hash function controls output between 0 and n-1, where n is the order of the SAKKE elliptic curve (RFC 6509).

43 In the IMessage structure, the VOLTE number is used for userIDs. Is the hash of these values used here as well? Which hash and length?

In IMessage, the VoLTE number is the original number, not the hash. The number is compared with the communication layer number to prevent IMessage replay attacks.

44 In the IMessage structure, what values does Domain include, and what are their sizes?

A unique domain needs to be entered by KMS admin when initializing KMS. Maximum domain length is 16 bytes.

45 In the IMessage structure, what does Reserved (which is 20 bytes) include, and what are their sizes?

Reserved is just for byte alignment, the value is all 0.

46 In the IMessage structure, what is CSB ID and how is it generated?

See TS 33.180. CSB ID is a random number used to identify a call session.

47 In the IMessage structure, what are metric Encryption Version root key version?

Root key version identifies the KMS domain root key. Each time KMS resets the domain root key, version number increases by 1. KMC must find matching private key certificate and KMS public key based on root key version in IMessage.

48 In the IMessage structure, which KDF algorithm is used? In which parts of the session key deployment process is it used? How is SD used in this context generated?

See Q30 in this document. KDF follows RFC 3830 (MIKEY) and RFC 3711 (SRTP) for key derivation from PCK, Rand, and CSB-ID.

49 In the IMessage structure, the signature is performed over which parameters?

The signature covers the entire IMessage, using ECCSI algorithm with private key SSK and PVT (see RFC 6507).

50 What measures have been taken to prevent user identity spoofing?

First: compare whether the calling VoLTE number in IMessage is consistent with VoLTE communication layer. Second: check IMessage signature using ECCSI algorithm with input (caller_volte_number, KPAK).

51 What measures have been taken to ensure non-repudiation of messages generated by users?

IMessage signature using ECCSI provides non-repudiation.

52 How is the counter used in AES-CTR shared between the communication parties?

IV (Counter) follows RFC 3711: Salt (SRTP Master Salt, 128 bit) + SSRC (32 bit) + ROC (32 bit rollover counter) + RTP SN (16 bit sequence number). First 108 bits calculated as shown, last 16 bits counter = 0. CTR auto-increments counter by 1 after every 16 bytes.

53 What are the potential identity spoofing threats in the protocol, and what measures have been implemented to prevent them?

Currently free from identity spoofing threats: (1) IMessage number compared with VoLTE communication layer number for consistency; (2) Sender signs IMessage with signature private key, receiver verifies; (3) Timestamp added to prevent replay attacks even when VoLTE communication layer is compromised (e.g., operator issues fake SIM with same number).

54 What measures are implemented to ensure non-repudiation in the context of identity spoofing challenge in appiran?

The signature of IMessage ensures non-repudiation.

b82f6; No matching questions found. Try different keywords.