CIBSI’11 TO ARGEN CI T NI CA UE C E SC LA O IN EJ É R Protocolo de autenticación ZKP usando grupos no conmutativos TÉ SU P ERIOR Juan Pedro Hecht qubit101@gmail.com EST/FCEN/FI/FCE/UBA-Argentina OBJETIVO Desarrollar una prueba compacta de autenticación de la clase ZKP que pueda ser aplicada en plataformas computacionales de bajo porte. 2 SOLUCIÓN Emplear sistemas algebraicos no conmutativos (NCAS), en particular el grupo de matrices de Hill de orden 8 modulo 251. Como función de una vía se elige la descomposición simétrica generalizada (GSDP). 3 GSDP sobre NCAS Sea G un grupo no conmutativo y S un subgrupo abeliano dados ( x, y ) G G, S hallar z G , (m, n) Z , m S tal que y z x z n dados (m,n,x,z) obtener (y) dados (m,n,x,y) obtener (z) 4 Protocolo de una prueba interactiva de identidad Param P Alice Pretendiente 5 Param Testigo (azar) Desafío (azar) Respuesta V Bob Verificador Repetir r números de ciclos Protocolo ZKP de identidad • Caso especial de las pruebas interactivas • Las pruebas de conocimiento cero ofrecen una vía de probar conocimiento a cualquier entidad sin transferirle ningun dato adicional acerca de ese conocimiento. Un solo bit del secreto que se filtre invalida la propiedad ZK 6 ZKP 7 . ZKP ? p=½ p=½ Observar que hay p=½ de acertar sin el secreto y por eso se iteran r-ciclos de intercambio 8 . OK El protocolo 9 EL GRUPO MULTIPLICATIVO DE HILL [M8, Z251] Matrices enteras no singulares módulo 251 de orden 8 Su producto no es conmutativo Hay 10153.18 matrices en dicho grupo PARA GENERAR SUBGRUPOS CONMUTATIVOS TEOREMA: las matrices que comparten todos sus vectores propios conmutan (dado que las matrices diagonales poseen esa propiedad). Basta definir matrices de Hill arbitrarias P como matrices de autovectores y conjugar matrices diagonales para obtener un subgrupo conmutativo P8 por cada una. 10 Preparación PARÁMETROS Matrices de Hill (M8) dim=8 p=251 (m,n) εR Z ≥ 32 (m<>n) Elementos estructurales públicos y compartidos P εR M8 (matriz de vectores propios de P8) G εR M8 (matriz base para obtener claves públicas) Claves privadas de cada entidad {A, B, …} εR P8 (A=PΔAP-1, B=PΔBP-1 , …) (AB=BA,…) Claves públicas de cada entidad {GA, GB, …}ε M8 (GA = AmG An, GB = BmG Bn, ... ) εR : elección aleatoria 11 Las claves privadas 12 Ciclo de intercambios TESTIGO k εR Z ≥ 32 (k<>m, k<>n) S = Ak GB A-m Alice envia a Bob S como testigo DESAFÍO b εR [0, 1] si b=0 H εR M8 ; Q = Bm H Bn si b=1 Q = Bm S GA Bn Bob envia a Alice {b, Q} como desafio RESPUESTA si b=0 R = S-m Q S-n si b=1 R = A-k Q A-n Alice envia a Bob R como respuesta 13 Verificación del protocolo VERIFICACIÓN si b=0 controlar si Sm R Sn = Q si b=1 controlar si B-mR B-n = GB G ITERAR Bob decide iterar el ciclo T-D-R-V r-veces CONSISTENCIA DE LA VERIFICACIÓN Si b=0 SmRSn = (SmS-m) Q (S-nSn) = Q Si b=1 B-mR B-n= B-mA-kQ A-nB-n=B-mA-kBmSGA BnA-nB-n = = B-m A-k Bm Ak GB A-m Am G An Bn A-n B-n = = (B-m Bm)( A-k Ak) GB (A-m Am) G (An A-n)( Bn B-n) = = GB G 14 Un ejemplo numérico 15 0 Se definen los elementos públicos comunes dim=8, p=251, (m,n) εR Z, {P,G} εR [M8, Z251] m= 23, n= 20 (m<>n) 60 36 46 213 222 147 178 P 129 71 95 216 84 223 204 66 106 72 27 69 98 34 95 73 114 148 197 196 154 82 77 7 241 142 226 G 16 163 243 133 75 45 182 5 219 160 160 238 0 74 16 143 149 79 240 210 163 67 44 168 61 122 96 146 159 74 183 18 187 1 81 200 172 159 144 48 177 201 138 184 174 22 113 147 207 60 109 77 81 238 149 49 90 67 68 127 8 59 24 163 11 229 82 100 190 239 154 5 10 112 113 170 180 167 243 181 30 244 184 131 90 4 156 129 72 73 140 73 201 141 57 1 Alice define sus claves privada y pública Privada {A} εR [P8, Z251] A 17 GA P A * 251 23 251 Diag G * 251 251 P A20 1 Bob define sus claves privada y pública 2 Privada (B) εR GL[P10, Z251] B GB 18 P B * 251 23 251 Diag G * * 251 251 P B 1 20 3 Alice calcula y envía el testigo S k εR Z = 19 (k<>m, k<>n) S 19 19 A * 251 GB * 251 A 23 4 Bob calcula y envía el desafío {Q,b} b εR [0,1] = 1 Q 20 B 23 * 251 S * 251 GA * 251 B 20 5 Alice calcula y envía la respuesta {R } (b = 1) R 21 A 19 * 251 Q * 251 A 20 6 Bob valida la respuesta (b = 1) B-23R B-20 = GB G 23 B RB 20 GB G 22 63 122 155 240 20 196 58 170 95 110 152 219 15 112 74 244 121 88 132 55 112 127 150 45 87 197 220 192 31 191 167 80 219 145 191 229 187 13 207 207 192 38 1 233 250 118 230 232 161 139 124 144 209 10 119 245 80 192 238 99 238 182 171 178 63 122 155 240 20 196 58 170 95 110 152 219 15 112 74 244 121 88 132 55 112 127 150 45 87 197 220 192 31 191 167 80 219 145 191 229 187 13 207 207 192 38 1 233 250 118 230 232 161 139 124 144 209 10 119 245 80 192 238 99 238 182 171 178 (?) Y Bob decide iterar r-veces Testigo (Alice) Generar k (entero aleatorio) Complejidad y Velocidad O(1) Invertir A (por determinante) O(2n3) Generar S (11 productos) O(11n3) Desafío (Bob) Generar b (bit aleatorio) O(1) Generar Q (8 productos) O(8n3) Respuesta (Alice) Generar R (9 productos) O(9n3) Validación (Bob) Invertir B (por determinante) O(2n3) Generar 8 productos O(8n3) Comparar y decidir O(1) Con la implementación libro de texto, el número equivalente de operaciones por ciclo del protocolo es de t ≈ 20500 ops. La ejecución del protocolo con Z=32, con algoritmos libro de texto y en lenguaje intérprete Mathematica™ en un equipo Windows™ XP (sp3)/ Intel™ Core Duo T2060/ 798 MHz/2 Gb RAM insumió 672 µs/fase preparación y 437 µs /ciclo Testigo-Desafío-Respuesta-Validación. 23 Fraude y propiedad ZKP 24 ¿Es posible un fraude? Supongamos que se presenta Eve queriendo hacerse pasar por Alice. Obviamente no posee la verdadera clave privada A y por lo tanto, como no puede resolver GSDP decide inventar una seudoclave aleatoria *A (pero que pertenece al mismo subgrupo conmutativo de A). (caso b = 0) Lleva adelante un ciclo del protocolo y se autentica como Alice sin inconvenientes. (Aqui la verificación no depende del secreto de Alice). (caso b = 1) Lleva adelante un ciclo del protocolo y se rechaza su identidad en forma inexorable. (Sin el secreto no aprueba) Veamos porqué… 25 CONSISTENCIA DE UNA VALIDACIÓN FRAUDULENTA b=0 *SmR*Sn = (*Sm*S-m) Q (*S-n*Sn) = Q Cualquier testigo fraguado *S aprueba. b=1 B-mR B-n= B-m*A-kQ *A-nB-n=B-m*A-kBm*SGA Bn*A-nB-n= = B-m *A-k Bm *Ak GB *A-m Am G An Bn *A-n B-n = = (B-m Bm)( *A-k *Ak) GB *A-m Am G An *A-n( Bn B-n)= = GB *A-m Am G An *A-n <> GB G La intervención de la clave pública lo impide. p(fraude)=(1/2)r0 26 PRUEBA DE IDENTIDAD DE CONOCIMIENTO CERO •El verificador no puede aprender nada del protocolo •El pretendiente no puede engañar consistentemente al verificador •El verificador no puede engañar consistentemente al pretendiente •El verificador no puede fingir ser el pretendiente •Integridad (completeness). •Solidez (soundness) •Conocimiento Cero (ZKP) 27 Prueba de Conocimiento Cero Propiedad de Integridad Si el pretendiente y el verificador son honestos, el protocolo es exitoso (probabilidad éxito = 1). Supongamos que Alice posee el secreto A. Entonces puede generar la respuesta correcta (R=S-m Q S-n o R=A-k Q A-n) para cualquier desafío Q que le imponga Bob. Propiedad de Solidez Si el pretendiente fuese deshonesto y el verificador honesto, el protocolo falla aproximadamente la mitad de las rondas de autenticación (probabilidad éxito ≤ 0.5). Propiedad de Conocimiento Cero Una prueba de identidad posee la propiedad de conocimiento cero (ZKP) si existe un simulador para dicha prueba. Un simulador es un algoritmo capaz de generar reportes de sesión sin intervención del pretendiente legítimo y que son indistinguibles de los genuinos. 28 La supuesta “Alice” genera el bit aleatorio 1Generar testigo Generar bit aleatorio b εR [0, 1] Si b=0 Generar testigo al azar S=*S εR M8 Si b=1 Generar testigo S=GB G GA-1 2Recibir desafío Si b=0 Generar al azar *Q εR M8 Si b=1Q=BmSGABn=BmGBG(GA-1GA)Bn = BmGBGBn 3Devolver respuesta Si b=0 *R=*S-m *Q *S-n Si b=1 R=Q 4Verificar y registrar sesión Si b=0 *Sm *R * Sn=*Q Si b=1 B-mRB-n=(B-mBm) GBG(BnB-n)=GBG Añadir (S, Q, b, R) al registro de sesión. 5Iterar Repetir a voluntad 1. a 4. r-veces. Observar que ese bit aleatorio lo debe generar Bob y no “Alice”, por eso no se puede usar al simulador para cometer fraude con probabilidad ≥ (½)r (para r-ciclos). 29 Acerca de la seguridad del protocolo: El grupo de las matrices enteras (módulo 251) y de orden ocho M8 posee un cardinal 25164 ~ 10153.58. El subgrupo de matrices de Hill es de 10153.18, por eso la probabilidad de hallar matrices Z251 singulares es baja pero no despreciable (p ~ 0.004). El tamaño de este grupo no aporta seguridad. Para quebrar el presente protocolo por fuerza bruta hay que hallar una clave privada … 30 . Acerca de la seguridad del protocolo: En conclusión podemos inferir una seguridad criptográfica de 64 bits para la presente instancia del protocolo ZKP. 31 . NI CA UE C E SC LA O IN EJ É R TO ARGEN CI T TÉ SU P ERIOR Juan Pedro Hecht qubit101@gmail.com EST/FCEN/FI/FCE/UBA-Argentina