Transferencia inconsciente
En seguridad informática, se conoce el protocolo de transferencia incosciente (oblivious transfer) como un método utilizado para transferir un secreto de un usuario a un usuario y que A no sepa si B pudo conocer el secreto (la probabilidad de que esto suceda es de 1/2), de ahí el término "inconsciente". Este protocolo le da lugar a la eclosión de otros protoclos como Compromiso de bits y Demostración de conocimiento nulo.
Definición formal
Aquí definiremos lo que se conoce como protocolo de Rabin, la siguiente definición ilustrará con precisión un protocolo de transferencia inconsciente de una clave secreta de un criptosistema de Rabin:
- El usuario A elige 2 grandes números primos p y q, luego calcula n = p * q y le envía n a B.
- B elige una x, donde 1 < x < n y mcd(n, x) = 1 (que n y x sean coprimos) y le envía a A.
- A calcula las 4 raíces de x^2 mod n que son (x, n-x, y, n-y), elige una aleatoriamente y se la envía a B.
- Si B recibe y o n-y, entonces B puede calcular p y q mediante el algoritmo euclídeo haciendo mcd((x+y), n) lo que concluirá en p o q, si B recibe x o n-x, entonces B no puede calcular p y q.
Aquí queda plasmado como la probabilidad de que B conozca p y q es 1/2, ya que el espacio muestral contiene 4 resultados (x, n-x, y, n-y) y todos equiprobables (consistente en la definición de la probabilidad de Laplace) lo que cada resultado tiene probabilidad de 1/4 y como el suceso "B puede conocer p y q" contiene 2 de esos resultados (y, n-y), se ve que la probabilidad es de 1/2 y en aras de la generalización, si cada bit de un secreto codificado se transmite mediante transferencia inconsciente, entonces la probabilidad de que B pueda conocer el secreto con precisión es de 2^-n, donde n es la longitud de bits del secreto codificado.