CRT (Chinese Remainder Theorem) Aussage: Gegeben k teilerfremde Zahlen n1 , . . . , nk ∈ Abbildung ein Ring-Isomorphismus: φ: Zñ → Zn 1 Z und ñ := Qk i=1 ni , so ist die folgende ×. . .× Znk , x 7→ (x mod n1 , . . . , x mod nk ) Insbesondere existiert für jedes Tupel (a1 , . . . , ak ) ∈ Zn1 ×. . .×Znk ein eindeutiges x ∈ Zñ , sodass x = ai mod ni für i = 1, . . . , k. Berechnung: Gegeben seien die folgenden Kongruenzen mit unbekanntem x und paarweise teilerfremden ni : x = a1 mod n1 x = a2 .. . mod n2 x = ak mod nk Mittels des erweiterten euklidischen Algorithmus berechnen wir (z1 , . . . , zk ) ∈ sodass gilt: zi = (n1 · . . . · ni−1 · ni+1 · . . . · nk )−1 mod ni Das gesuchte x berechnet sich daraus dann folgendermaßen: Y Y Y x = a1 · z1 · ni + a2 · z2 · ni + . . . + ak · zk · i6=1 i6=2 i6=k ni Zn 1 × . . . × Z nk , mod ñ Alternative Berechnung (iterativ): Wir berechnen y1 , . . . , yk , sodass yj = ai mod ni für 1 ≤ i ≤ j and damit yk = x. Der Iterationsbeginn ist trivial; wir setzen einfach y1 := a1 . Danach können wir yj folgendermaßen aus yj−1 und aj berechnen: yj = rj · (n1 · . . . · nj−1 ) + yj oder yj = sj · nj + aj mit mit rj = (aj − yj ) · (n1 · . . . · nj−1 )−1 sj = (yj − aj ) · n−1 j mod nj mod n1 · . . . · nj−1 Anwendung: Der chinesische Restsatz kann u. A. verwendet werden, um RSA-Verschlüsselungen zu brechen, wenn hinreichend viele Empfänger derselben Nachricht m (z. B. bei einem Broadcast) denselben öffentlichen Verschlüsselungsschlüssel e verwenden und dieser nicht zu groß ist. Gegeben seien e öffentliche Schlüssel (e, n1 ), . . . , (e, ne ) und e entsprechende RSA-Chiffrate derselben Nachricht m, also ci = me mod ni . Nach dem chinesischen Restsatz finden wir ein eindeutiges x ∈ Z mit 0 ≤ x < n1 · . . . · ne , sodass gilt: x = c1 mod n1 x = c2 .. . x = ce mod n2 mod ne Aufgrund der Eindeutigkeit von x muss gelten: x = me mod n1 · . . . · ne Wegen m ≤ min{n1 , . . . , ne } haben wir außerdem me ≤ n1 ·. . .·ne und können m = berechnen. √ e x analytisch