Expand the \defgroup a5 block in the public header to explicitly describe the A5/x variant family used by GMR-1:
* A5/0: no ciphering (keystream = zero), useful for test and for indicating no-cipher mode * A5/1: GMR-1 keystream generator, implemented by gmr1_a5_1(), algorithm as described in B. Driessen, R. Hund, C. Willems, C. Paar, T. Holz, 'Don't Trust Satellite Phones', IEEE S&P 2012 * n=2..7: reserved by the dispatcher, not defined in GMR-1
Add a HYPOTHESIS paragraph noting that gmr1_a5_1() is conjectured to be structurally equivalent to ETSI TETRA's TEA1 (EN 300 392-7), so that TEA1 reference implementations can be used as a cross-validation source for gmr1_a5_1() output on matching (key, fn) inputs. If confirmed, this is a practical interop lever for builders working across GMR-1 and TETRA.
The hypothesis is noted with explicit uncertainty. No algorithmic change.
Signed-off-by: Dominik Bay eimann@etherkiller.de --- include/osmocom/gmr1/l1/a5.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+)
diff --git a/include/osmocom/gmr1/l1/a5.h b/include/osmocom/gmr1/l1/a5.h index f0ea06b..d15efd5 100644 --- a/include/osmocom/gmr1/l1/a5.h +++ b/include/osmocom/gmr1/l1/a5.h @@ -22,6 +22,29 @@
/*! \defgroup a5 A5 ciphering algorithm * \ingroup l1 + * + * The GMR-1 standard uses an A5/x-family stream cipher analogous to + * GSM A5. Variants defined for GMR-1 are: + * + * - A5/0: no ciphering; keystream is all zeros. Used for test and + * for indicating no-cipher mode. + * - A5/1: stream cipher implemented by gmr1_a5_1(). The algorithm + * is described by B. Driessen, R. Hund, C. Willems, C. Paar, + * T. Holz, "Don't Trust Satellite Phones: A Security Analysis of + * Two Satphone Standards", IEEE Symposium on Security and + * Privacy, 2012. + * + * Variants n=2..7 are reserved by the dispatcher and are not + * defined by the GMR-1 standard. + * + * \par Cross-standard equivalence (HYPOTHESIS) + * gmr1_a5_1() is conjectured to be structurally equivalent to ETSI + * TETRA's TEA1 cipher (ETSI EN 300 392-7), in the sense that a TEA1 + * reference implementation should produce matching keystream output + * for identical (key, frame-number) inputs. If confirmed, this + * enables cross-validation of gmr1_a5_1() against an + * independently-sourced TEA1 implementation. + * * @{ */