2.4 KiB
Algorithm data sheet: kex_lwe_frodo
Algorithm
Name: Frodo
Description: Key exchange protocol proposed by Bos et al. [BCDMNNRS16] based on the ring learning with errors problem. Instantiation of the Lindner–Peikert approximate LWE key agreement scheme [LP10], which was an adaptation of the LWE public key encryption scheme of in public key encryption scheme of Regev [Reg05], using reconciliation mechanism of Peikert [Pei14].
Supporting research:
- [BCDMNNRS16] Joppe Bos, Craig Costello, Léo Ducas, Ilya Mironov, Michael Naehrig, Valeria Nikolaenko, Ananth Raghunathan, Douglas Stebila. Frodo: Take off the ring! Practical, quantum-secure key exchange from LWE. In Proc. 23rd ACM Conference on Computer and Communications Security (CCS) 2016, pp. 1006-1018. ACM, October 2016. https://eprint.iacr.org/2016/659
- [Pei14] Chris Peikert. Lattice cryptography for the Internet. In PQCrypto 2014, volume 8772 of LNCS, pages 197–219. Springer, 2014. https://eprint.iacr.org/2014/070
- [LP10] Richard Lindner and Chris Peikert. Better key sizes (and attacks) for LWE-based encryption. In Proc. CT-RSA 2011, LNCS, vol. 6558, pp. 319–339. Springer, February 2011. https://eprint.iacr.org/2010/613
- [Reg05] Oded Regev. On lattices, learning with errors, random linear codes, and cryptography. In Proc. 37th ACM STOC, pp. 84–93. ACM Press, May 2005.
Security
Security model: Unauthenticated key exchange / passive (IND-CPA) key encapsulation mechanism
Underlying hard problem(s): Decision learning with errors problem
Parameter set 1
"Recommended" parameter set from [BCDMNNRS16]
Claimed classical security:
- 2^144 (original paper)
Claimed quantum security:
- 2^130 (original paper)
Communication size:
- Alice → Bob: 11,377 bytes
- Bob → Alice: 11,296 bytes
- total: 22,673 bytes
Implementation
Source of implementation: Original research paper (https://github.com/lwe-frodo/lwe-frodo)
License: MIT License
Language: C
Constant-time: Yes
Testing:
- Correctness: covered by test harness
test_kex
- Statistics of shared secrets: covered by test harness
test_kex
- Static analysis:
scan_build