GSMK CryptoPhone technology is based on published and well researched algorithms for both encryption and voice processing. All GSMK CryptoPhones use the same encryption engine with very long keys, resulting in products that provide peace of mind today and in the future.
All calls are encrypted with 256-bit keys using AES and Twofish running as counter mode stream ciphers. For SMS the algorithms are used in CCM-mode. Using both AES and Twofish provides a much stronger design than using only one algorithm. For the highly unlikely case that a weakness is discovered in one of the algorithms, the use of the second algorithm provides an additional “safety net” and results in a higher security margin. The use of these two very strong algorithms is a unique feature of GSMK CryptoPhones that provide a “fall back” inside the crypto-system design. The design goal was to provide not only “tactical security” that lasts for a few months or years, but to design for security against future developments in cryptanalysis in the next decades.
The key used for each call is generated using a 4096-bit Diffie-Hellman shared secret exchange, hashing the resulting 4096 bits to the 256 bit session key by means of SHA256. To prevent man-in-the-middle attacks, a six-letter hash is generated from the Diffie-Hellman result and displayed to the user. The user then reads three letters over the encrypted line to the communication partner and verifies the three letters the communication partner reads to him. Verification of the hash ensures that both parties use the same key and that no man-in-the-middle attack was carried out.
The random material required for the Diffie-Hellman exchange is generated by using the least significant bit from the microphone signal (not during calls of course), clock skew, and additional sources of entropy, and enhancing this entropy with the Fortuna algorithm. This scheme ensures that each key exchange is performed with a completely new and truly random key. For CryptoPhone calls a new key exchange is run for every call. For SMS the result of an initial key exchange is stored in the secure storage on the phone and used by means of a hash-chain.