Teilen von Geheimnissen Ziel Eine Nachricht M soll auf n Personen so aufgeteilt werden, so dass beliebige k der n Personen können die Nachricht rekonstruieren, weniger als k der n Personen können die Nachricht nicht rekonstruieren. k-aus-n-Geheimnisteilung Stärker Weniger als k Personen sollen nichts oder wenig über das Geheimnis erfahren können. Geheimnisteilung – Illustration Geheimnisteilung – Illustration Geheimnisteilung – Illustration Geheimnisteilung – Illustration Anwendungen 1. Geheimzahl eines Safes soll auf Kommission aus n Personen verteilt werden, so dass je k der n Personen gemeinsam den Safe öffnen können. Aufteilung einer Geheimzahl 10-aus-10-Geheimnisteilung 65497 62526 76230 12873 05189 31857 52902 21895 62745 86142 65497 62526 76230 12873 05189 31857 52902 21895 62745 65497 62526 76230 12873 05189 31857 52902 21895 62745 86142 86142 Anwendungen 1. Geheimzahl eines Safes soll auf Kommission aus n Personen verteilt werden, so dass je k der n Personen gemeinsam den Safe öffnen können. 2. Alice möchte geheime Daten auf n Servern speichern, so dass die einzelnen Server die Daten nicht rekonstruieren können, Alice jedoch aus den Teildaten von je k Servern die Daten rekonstruieren kann. 3. Threshold Unterschriften. 4. … Aufteilung einer Geheimzahl 10-aus-10-Geheimnisteilung 65497 62526 76230 12873 05189 31857 52902 21895 62745 86142 65497 62526 76230 12873 05189 31857 52902 21895 62745 86142 Unsicherheit über Geheimnis jeder einzelnen Person 1045 Unsicherheit über Geheimnis von m Personen 9 aus 10 Personen lernen viel über Geheimzahl! 1050-5m Modulare n-aus-n Geheimnisteilung Geheimnis G∈{0,1,…,M-1} 1. Wähle t1,…, tn-1 ∈{0,1,…,M-1} zufällig gleichverteilt. 2. Setze tn= G - t1 - t2 - …- tn-1 mod M. Die Teilgeheimnisse sind t1,…, tn. Modulare n-aus-n Geheimnisteilung Beispiel 4-aus-4 mit M=53 Geheimnis = 23 Teilgeheimnisse t1= 17 , t2= 47 , t3= 31 Berechnung t4= 17 ?: + 47 + 31 + ? = 23 mod 53 Teilgeheimnis t4= 34 Modulare n-aus-n Geheimnisteilung Angenommen t1, t2,…, tn-1 bekannt. Zu jedem G ∈ {0,1,…,M-1} existiert ein a ∈ {0,1,…,M-1}, so dass mit t n = a das Geheimnis G war. a = G - t1 - t2 - …- tn-1 mod M. Also Für weniger als n Personen ist die Unsicherheit über das Geheimnis immer noch M. Geometrische 2-aus-n Geheimnisteilung Geheimnis Punkt P ∈ R 2 Teilgeheimnisse n Geraden L1,….Ln mit gemeinsamen Schnittpunkt P Geometrische 3-aus-n Geheimnisteilung Geheimnis Punkt P ∈ R 3 Teilgeheimnisse n Ebenen E1,….En mit gemeinsamen Schnittpunkt P Geometrische 3-aus-n Geheimnisteilung k-aus-n Geheimnisteilung – Schema von Shamir Geheimnis G eine ganze Zahl. Wählen Stützstellen u1, u2,…, un. 1. Setze a0 := G. 2. Wähle ganze Zahlen a1, …, ak-1 aus großem Bereich. 3. Setze p(x) = a0 + a1x + a2x2 + … + ak-1xk-1. 4. Setze ti = p(ui). Die Teilgeheimnisse sind t1, t2, …, tn. k-aus-n Geheimnisteilung – Beispiel n=5, k=3 Drei aus fünf genügen, um das Geheimnis zu rekonstruieren. Wählen die Stütztstellen u1 = 1, u2 = -1, u3 = 2, u4 = -2, u5 = 3. Geheimnis G = 3. Konstruktion des Polynoms a0 = G = 3, a1 = 2, a2 = 1 und damit p(x) = 3 + 2x + x2. Teilgeheimnisse t1 = 6, t2 = 2, t3 = 11, t4 = 3, t5 = 18. k-aus-n Geheimnisteilung – Beispiel n=5, k=3 Drei aus fünf genügen, um das Geheimnis zu rekonstruieren. Wählen die Stütztstellen u1 = 1, u2 = -1, u3 = 2, u4 = -2, u5 = 3. Polynom p(x) = 3 + 2x +x2. Teilgeheimnisse t1 = 6, t2 = 2, t3 = 11, t4 = 3, t5 = 18. k-aus-n Geheimnisteilung – Rekonstruktion Satz Ein Polynom p(x) vom Grad d ist durch d+1 Paare ( ui ,p ( ui ) ) ,i = 1,…,d + 1 eindeutig bestimmt. k-aus-n Geheimnisteilung – Rekonstruktion Satz Ein Polynom p(x) vom Grad d ist durch d+1 Paare ( ui ,p ( ui ) ) ,i = 1,…,d + 1 eindeutig bestimmt. Lagrange-Interpolation d+1 x − uj p ( x ) = ∑ p ( ui ) ∏ i=1 j≠i ui − u j k-aus-n Geheimnisteilung – Sicherheit Satz Gegeben k-1 Paaren ( u j ,p ( u j ) ) . Für alle b0 ∈ Z gibt es ein Polynom q ( x ) mit q ( u j ) = p ( u j ) un d q ( 0 ) = b 0 . Lagrange − Interpolation mit Paaren ( u j ,a ( u j ) ) und ( 0,b0 ) . ⌂