Exponenciacion Rapida Cum

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

Instituto Politécnico Nacional

Fundamentos de Criptografia

Exponenciación Rapida en la
cifra asimétrica

ekx0day

1
Agenda

Introducción

Un método de exponenciación rápida

Ejemplo de exponenciación rápida

Algoritmo de exponenciación rápida

Algoritmo en C

2
Introducción
Campo de aplicación de la exponenciación
Los criptosistemas modernos requieren elevar
numeros a exponentes muy grandes (miles de
bits),para eso se utiliza la exponenciación dentro de
(aritmética modular).
Realizar exponenciaciones mediante multiplicación
de la base por si misma tantas veces como indique el
exponente es inviable para números grandes. Por lo
que se requiere de algoritmos de exponenciación
eficientes.
3
Introduccion
La exponenciacion modular rápida es un
algoritmo que proporciona una manera de
calcular de forma rápida grandes potencias y
se basa en la conversión binaria del
exponente y en la operación AB mod n en
donde n es un primo grande o un producto de
primos grandes.
Esta operación AB mod n se realizará para el
intercambio de clave y en la firma digital
también en los criptosistemas de RSA y
ELGAMMAL.
4
Un Método de exponenciación rápida
• En AB mod n se representa el exponente B en binario.
j
• Se calculan los productos A2 con j = 0 hasta n-1, siendo n
el número de bits que representan el valor B en binario.
• Sólo se toman en cuenta los productos en los que en la
posición j del valor B en binario aparece un 1.
Ejemplo

Calcular x = 1237 mod 221 = 207


1237 es un número de 40 dígitos:
8505622499821102144576131684114829934592 5
Ejemplo de exponenciación rápida
Calcular x = 1237 mod 221 = 207 122 mod 221 (primer cálculo)
1442 mod 221
B = 3710 = 1001012 A = 12 j 0 1 2 3 4 5

j 12 144 183 118 1 1


Bits 5 4 3 2 1 0
A mod 221
2

x = 12∗183∗1 mod 221 = 207

En vez de 36 multiplicaciones y sus reducciones módulo 221 en cada


paso ... 72 operaciones...
Se realizan cinco multiplicaciones (para j = 0 el valor es A) con sus
reducciones módulo 221, más dos al final y sus correspondientes
reducciones. 6
Algoritmo de exponenciación rápida
Hallar x = AB mod n Ejemplo: calcule 1983 mod 91 = 24
• Obtener representación 8310 = 10100112 = b6b5b4b3b2b1b0
binaria del exponente B x=1
de k bits: i=6 b6=1 x = 12∗19 mod 91 = 19 x = 19
B2 → bk-1bk-2...bi...b1b0 i=5 b5=0 x = 192 mod 91 = 88 x = 88
• Hacer x = 1 i=4 b4=1 x = 882 ∗19 mod 91 = 80 x = 80
• Para i = k-1, ..., 0 hacer
i=3 b3=0 x = 802 mod 91 = 30 x = 30
x = x2 mod n i=2 b2=0 x = 302 mod 91 = 81 x = 81
Si (bi = 1) entonces
i=1 b1=1 x = 812 ∗19 mod 91 = 80 x = 80
x = x∗A mod n i=0 b0=1 x = 802 ∗19 mod 91 = 24 x = 24
1983 = 1,369458509879505101557376746718e+106 . En este caso se realizaron sólo
16 operaciones frente a 164. Ahora en una operación de firma digital con hash: (128
bits) (1.024 bits) mod 1.024 bits se ahorra mucho tiempo en computo y porcesamiento.7
Algoritmo en C
//Entrada: números enteros a (base), n (exponente), m (módulo)
//Devuelve: un entero exp= an mod m
//jonathan ANGELES gARCIA
#include <stdio.h>
#include <math.h>
//Restricciones: 0 <= a < m, m >= 2, n >=0

float exp_mod_rap (float a, float n, float m);


void main ()
{
float x,a,n,m,exp;
float exp_mod_rap (int a, int n, int m)
{
exp =1;
while (n >0)
{
if (n%2==1){
exp = (exp*x)%m;
x = (x*x)%m;
n = n/2;
}
}
return (exp);
}
}

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy