SlideShare ist ein Scribd-Unternehmen logo
1 von 13
RSA
(RIVEST, SHAMIR, ADLEMAN)
RSA
• Es un algoritmo de encriptación de 1,024 a 4,096 bits creado por Ron Rivest,
Adi Shamir y Leonard Adleman y que genera una llave pública y una
privada.
RSA
Generar las llaves pública y privada

• Se eligen dos números aleatorios primos pq
ejemplo: p=21191 q=52981
Estos dos números primos deben permanecer ocultos y deben ser del
mismo largo.
RSA
• Se hace la operación para n
n=pq
Siguiendo con nuestro ejemplo:
n=(21191)(52981)
n=1122720371
n es utilizado para el largo del key público y privado
RSA
• Se hace la operación para (p-1)(p-1) y se escoge un número aleatorio

(a * n)

para e.
(p-1)(p-1)=(21191-1)(52981-1)
(p-1)(p-1)=1122646200
Se substrae el GCD(Mayor común divisor) de (p-1)(p-1) y e. Mientras no sea 1
generará e.
Se calcula el Modulo inverso multiplicativo de (p-1)(p-1) y e para generar d
RSA
•

d será nuestro llave privada. Con esto tenemos el código en Python de la función de encriptación.
def RSAgenKeys(p,q):
n=p*q
pqminus = (p-1) * (q-1)
e = int(random.random() * n)
while gcd(pqminus,e) != 1:
e = int(random.random() * n)
d,a,b = ext_gcd(pqminus,e)
if b < 0:
d = int(pqminus + b)
else:
d = int(b)
return ((e,d,n))
RSA
Si corremos nuestra función con los números dados en el ejemplo, obtenemos:
t1 = e,d,n = RSAgenKeys(21191,52981)
t1
(59012071, 298910431, 1122720371)
n = 1122720371
e = 59012071
d = 298910431
RSA
Mensaje y su encriptación
Tenemos la función RSAencrypt donde decidiremos el mensaje a encryptar.
m = oliver martinez
Descomponemos m en cada letra con su coódigo ascci correspondiente en
decimal. Así tenemos:
o

l

i

v

e

r

111

108

105

118

101

114

i

n

e

z

105

110

101

122

m
32

a

r

t

109

97

114

116
RSA
Se utiliza cada código ascci para encryptarlo con nuestro valor n y e. Nos
devolverá nuestro mensaje encriptado.
def RSAencrypt(m,e,n):
chunkSize = 3
chunks = toChunks(m, chunkSize)
encList = []
for messChunk in chunks:
print (messChunk)
c = modexp(messChunk, e, n)
encList.append(c)
return encList
RSA
Corremos nuestra función y obtenemos.
c = RSAencrypt("oliver martinez",e,n)
111
108
105
118
101
114
32
109
97
114
116
105
110
101
122
c
[1022008495, 616348344, 54568254, 766350599, 714687973, 1113849068, 364949306, 760146350, 184148109, 1113849068, 754096723, 54568254, 963044447, 714687973, 328898459]
RSA
Mensaje y su desencriptación
Tenemos la función RSAdencrypt donde desecnriparemos el mensaje. Utilizaremos
nuestra secuencia de números generados, nuestra llave privada y la llave pública.
def RSAdecrypt(clist,d,n):
rList = []
for c in clist:
m = modexp(c,d,n)
rList.append(m)
upnumber = 0
dwnumber = 1
muldivx = 0
res = 0
return rList
RSA
Corremos nuestra función y obtenemos.
m = RSAdecrypt(c,d,n)
m
[111, 108, 105, 118, 101, 114, 32, 109, 97, 114, 116, 105, 110, 101, 122]
Como vemos obtemos los mismos números del codigo ascci que generamos. Solo nos queda correr la
función chunksToPlain.
def chunksToPlain(numdec):
numlistdec = []
for asclet in numdec:
asctostr = chr(asclet)
numlistdec.append(asctostr)
concalist = "".join(numlistdec)
return (concalist)
RSA
Nuestro resultado será.
t2 = chunksToPlain(m)
t2
'oliver martinez'

Weitere ähnliche Inhalte

Was ist angesagt?

Ejercicio resuelto: Integral por sustitución con seno y coseno hiperbólicos
Ejercicio resuelto: Integral por sustitución con seno y coseno hiperbólicosEjercicio resuelto: Integral por sustitución con seno y coseno hiperbólicos
Ejercicio resuelto: Integral por sustitución con seno y coseno hiperbólicoshkviktor (HKV)
 
Conversión de diferentes números diferentes bases
Conversión de diferentes números  diferentes basesConversión de diferentes números  diferentes bases
Conversión de diferentes números diferentes basesFrancis Rubio Almaràz
 
Sistemas de numeración
Sistemas de numeraciónSistemas de numeración
Sistemas de numeracióninformatica4
 
Division sintética
Division sintéticaDivision sintética
Division sintéticaZyanya Tapia
 
Ecuaciones diferenciales por variables separables
Ecuaciones diferenciales por variables separablesEcuaciones diferenciales por variables separables
Ecuaciones diferenciales por variables separablesLight
 
Cálculo del factor de fricción
Cálculo del factor de fricciónCálculo del factor de fricción
Cálculo del factor de fricciónnmenjiva
 
Aritmetica binaria
Aritmetica binariaAritmetica binaria
Aritmetica binariaPablo Macon
 
Ejercicio resuelto: Ecuaciones trigonométricas
Ejercicio resuelto: Ecuaciones trigonométricasEjercicio resuelto: Ecuaciones trigonométricas
Ejercicio resuelto: Ecuaciones trigonométricashkviktor (HKV)
 
Ecuaciones diferenciale por variables separadas
Ecuaciones diferenciale por variables separadasEcuaciones diferenciale por variables separadas
Ecuaciones diferenciale por variables separadasweromiky
 
matematica
matematicamatematica
matematicadennys24
 
integrales resueltas
integrales resueltasintegrales resueltas
integrales resueltas12ppyu
 
Ranli cruz 12-0840
Ranli cruz 12-0840Ranli cruz 12-0840
Ranli cruz 12-0840Ranli Cruz
 

Was ist angesagt? (20)

Leccion08 rsa crypt4you
Leccion08 rsa crypt4youLeccion08 rsa crypt4you
Leccion08 rsa crypt4you
 
Decimal a binario
Decimal a binarioDecimal a binario
Decimal a binario
 
Ejercicio resuelto: Integral por sustitución con seno y coseno hiperbólicos
Ejercicio resuelto: Integral por sustitución con seno y coseno hiperbólicosEjercicio resuelto: Integral por sustitución con seno y coseno hiperbólicos
Ejercicio resuelto: Integral por sustitución con seno y coseno hiperbólicos
 
Conversión de diferentes números diferentes bases
Conversión de diferentes números  diferentes basesConversión de diferentes números  diferentes bases
Conversión de diferentes números diferentes bases
 
Sistemas de numeración
Sistemas de numeraciónSistemas de numeración
Sistemas de numeración
 
Leccion04 rsa crypt4you
Leccion04 rsa crypt4youLeccion04 rsa crypt4you
Leccion04 rsa crypt4you
 
Division sintética
Division sintéticaDivision sintética
Division sintética
 
Ecuaciones diferenciales por variables separables
Ecuaciones diferenciales por variables separablesEcuaciones diferenciales por variables separables
Ecuaciones diferenciales por variables separables
 
Asd
AsdAsd
Asd
 
Solucion 02
Solucion 02Solucion 02
Solucion 02
 
P vs NP
P vs NPP vs NP
P vs NP
 
Cálculo del factor de fricción
Cálculo del factor de fricciónCálculo del factor de fricción
Cálculo del factor de fricción
 
Aritmetica binaria
Aritmetica binariaAritmetica binaria
Aritmetica binaria
 
Ejercicio resuelto: Ecuaciones trigonométricas
Ejercicio resuelto: Ecuaciones trigonométricasEjercicio resuelto: Ecuaciones trigonométricas
Ejercicio resuelto: Ecuaciones trigonométricas
 
Ecuaciones diferenciale por variables separadas
Ecuaciones diferenciale por variables separadasEcuaciones diferenciale por variables separadas
Ecuaciones diferenciale por variables separadas
 
matematica
matematicamatematica
matematica
 
integrales resueltas
integrales resueltasintegrales resueltas
integrales resueltas
 
Ranli cruz 12-0840
Ranli cruz 12-0840Ranli cruz 12-0840
Ranli cruz 12-0840
 
Tema 4 codificación de canal
Tema 4   codificación de canalTema 4   codificación de canal
Tema 4 codificación de canal
 
09 errores
09 errores09 errores
09 errores
 

Andere mochten auch

Rsa
RsaRsa
Rsayaya
 
Evaluation of DDoS attacks generated on mobile devices and their effect on th...
Evaluation of DDoS attacks generated on mobile devices and their effect on th...Evaluation of DDoS attacks generated on mobile devices and their effect on th...
Evaluation of DDoS attacks generated on mobile devices and their effect on th...Andres Almeida
 
Sql injection
Sql injectionSql injection
Sql injectionMinoxx
 
Seguridad sql injection
Seguridad   sql injectionSeguridad   sql injection
Seguridad sql injectionGary Briceño
 
Exploiting Web applications SQL Injection
Exploiting Web applications SQL InjectionExploiting Web applications SQL Injection
Exploiting Web applications SQL InjectionConferencias FIST
 
Viii congreso isaca 2015 grc
Viii congreso isaca 2015 grcViii congreso isaca 2015 grc
Viii congreso isaca 2015 grcbalejandre
 
CIFRADO RSA
CIFRADO RSACIFRADO RSA
CIFRADO RSArul05
 
Las 5 fuerzas de michael porter
Las 5 fuerzas de michael porterLas 5 fuerzas de michael porter
Las 5 fuerzas de michael porterMack Vázquez
 
How to Take the Ransom Out of Ransomware
How to Take the Ransom Out of RansomwareHow to Take the Ransom Out of Ransomware
How to Take the Ransom Out of Ransomwaremarketingunitrends
 
Achieving high-fidelity security
Achieving high-fidelity securityAchieving high-fidelity security
Achieving high-fidelity securitybalejandre
 
Diapositivas las 5 fuerzas de porter.
Diapositivas las 5 fuerzas de porter.Diapositivas las 5 fuerzas de porter.
Diapositivas las 5 fuerzas de porter.Espoch
 
Modelo de las 5 fuerzas de porter
Modelo de las 5 fuerzas de porterModelo de las 5 fuerzas de porter
Modelo de las 5 fuerzas de portermarielberenice
 
Ransomware
Ransomware Ransomware
Ransomware Armor
 

Andere mochten auch (20)

114986362 ddos
114986362 ddos114986362 ddos
114986362 ddos
 
Rsa
RsaRsa
Rsa
 
Evaluation of DDoS attacks generated on mobile devices and their effect on th...
Evaluation of DDoS attacks generated on mobile devices and their effect on th...Evaluation of DDoS attacks generated on mobile devices and their effect on th...
Evaluation of DDoS attacks generated on mobile devices and their effect on th...
 
Sql injection
Sql injectionSql injection
Sql injection
 
Malware_Popayan-securinf.com
Malware_Popayan-securinf.comMalware_Popayan-securinf.com
Malware_Popayan-securinf.com
 
Seguridad sql injection
Seguridad   sql injectionSeguridad   sql injection
Seguridad sql injection
 
Sql Injection
Sql InjectionSql Injection
Sql Injection
 
Exploiting Web applications SQL Injection
Exploiting Web applications SQL InjectionExploiting Web applications SQL Injection
Exploiting Web applications SQL Injection
 
Viii congreso isaca 2015 grc
Viii congreso isaca 2015 grcViii congreso isaca 2015 grc
Viii congreso isaca 2015 grc
 
Ransomware
RansomwareRansomware
Ransomware
 
CIFRADO RSA
CIFRADO RSACIFRADO RSA
CIFRADO RSA
 
Las 5 fuerzas de michael porter
Las 5 fuerzas de michael porterLas 5 fuerzas de michael porter
Las 5 fuerzas de michael porter
 
How to Take the Ransom Out of Ransomware
How to Take the Ransom Out of RansomwareHow to Take the Ransom Out of Ransomware
How to Take the Ransom Out of Ransomware
 
Achieving high-fidelity security
Achieving high-fidelity securityAchieving high-fidelity security
Achieving high-fidelity security
 
Ransomware
RansomwareRansomware
Ransomware
 
5 fuerzas de Porter
5 fuerzas de Porter5 fuerzas de Porter
5 fuerzas de Porter
 
5 fuerzas de porter
5 fuerzas de porter5 fuerzas de porter
5 fuerzas de porter
 
Diapositivas las 5 fuerzas de porter.
Diapositivas las 5 fuerzas de porter.Diapositivas las 5 fuerzas de porter.
Diapositivas las 5 fuerzas de porter.
 
Modelo de las 5 fuerzas de porter
Modelo de las 5 fuerzas de porterModelo de las 5 fuerzas de porter
Modelo de las 5 fuerzas de porter
 
Ransomware
Ransomware Ransomware
Ransomware
 

Ähnlich wie Algoritmo RSA de encriptación de clave pública y privada

Up encriptacion publica v1.2
Up encriptacion publica v1.2Up encriptacion publica v1.2
Up encriptacion publica v1.2Meme delaTower
 
Algoritmos De Encriptacion Para
Algoritmos De Encriptacion ParaAlgoritmos De Encriptacion Para
Algoritmos De Encriptacion ParaAndy Arevalo
 
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...Ameth1991
 
Algoritmos Para Encriptar Claves
Algoritmos Para Encriptar ClavesAlgoritmos Para Encriptar Claves
Algoritmos Para Encriptar ClavesDiana Yánez
 
CIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADACIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADAdanyro
 
Métodos de Crifrado Asimétrico
Métodos de Crifrado AsimétricoMétodos de Crifrado Asimétrico
Métodos de Crifrado AsimétricoFreddy Rojas
 
MéTodos De EncriptacióN
MéTodos De EncriptacióNMéTodos De EncriptacióN
MéTodos De EncriptacióNDavid Puga
 
Criptografiafina xbsbxsbx bxsbxabhxhsbxsl.ppt
Criptografiafina xbsbxsbx bxsbxabhxhsbxsl.pptCriptografiafina xbsbxsbx bxsbxabhxhsbxsl.ppt
Criptografiafina xbsbxsbx bxsbxabhxhsbxsl.ppthugo124330
 
Encriptacion
EncriptacionEncriptacion
EncriptacionDavid
 
Capítulo 6: Criptografía de clave pública
Capítulo 6: Criptografía de clave públicaCapítulo 6: Criptografía de clave pública
Capítulo 6: Criptografía de clave públicaJuan Manuel García
 

Ähnlich wie Algoritmo RSA de encriptación de clave pública y privada (20)

Up encriptacion publica v1.2
Up encriptacion publica v1.2Up encriptacion publica v1.2
Up encriptacion publica v1.2
 
Rsa
RsaRsa
Rsa
 
Algoritmos De Encriptacion Para
Algoritmos De Encriptacion ParaAlgoritmos De Encriptacion Para
Algoritmos De Encriptacion Para
 
RSA crypt4you
RSA crypt4youRSA crypt4you
RSA crypt4you
 
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...
 
Leccion05 rsa crypt4you - v1
Leccion05 rsa crypt4you - v1Leccion05 rsa crypt4you - v1
Leccion05 rsa crypt4you - v1
 
Leccion01 rsa crypt4you
Leccion01 rsa crypt4youLeccion01 rsa crypt4you
Leccion01 rsa crypt4you
 
Aclarando dudas sobre RSA
Aclarando dudas sobre RSAAclarando dudas sobre RSA
Aclarando dudas sobre RSA
 
Cifrado Asimetrico
Cifrado AsimetricoCifrado Asimetrico
Cifrado Asimetrico
 
Flores Carrera Jennifer 1 A
Flores Carrera Jennifer 1 AFlores Carrera Jennifer 1 A
Flores Carrera Jennifer 1 A
 
Leccion01 rsa crypt4you -V2
Leccion01 rsa crypt4you -V2Leccion01 rsa crypt4you -V2
Leccion01 rsa crypt4you -V2
 
Algoritmos Para Encriptar Claves
Algoritmos Para Encriptar ClavesAlgoritmos Para Encriptar Claves
Algoritmos Para Encriptar Claves
 
CIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADACIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADA
 
Métodos de Crifrado Asimétrico
Métodos de Crifrado AsimétricoMétodos de Crifrado Asimétrico
Métodos de Crifrado Asimétrico
 
MéTodos De EncriptacióN
MéTodos De EncriptacióNMéTodos De EncriptacióN
MéTodos De EncriptacióN
 
Criptografiafina xbsbxsbx bxsbxabhxhsbxsl.ppt
Criptografiafina xbsbxsbx bxsbxabhxhsbxsl.pptCriptografiafina xbsbxsbx bxsbxabhxhsbxsl.ppt
Criptografiafina xbsbxsbx bxsbxabhxhsbxsl.ppt
 
Encriptacion
EncriptacionEncriptacion
Encriptacion
 
El Algoritmo RSA
El Algoritmo RSAEl Algoritmo RSA
El Algoritmo RSA
 
14 cifraasimetrica
14 cifraasimetrica14 cifraasimetrica
14 cifraasimetrica
 
Capítulo 6: Criptografía de clave pública
Capítulo 6: Criptografía de clave públicaCapítulo 6: Criptografía de clave pública
Capítulo 6: Criptografía de clave pública
 

Mehr von olivermartz

Mehr von olivermartz (7)

Graphs
GraphsGraphs
Graphs
 
Hashing
HashingHashing
Hashing
 
Trees
TreesTrees
Trees
 
Cola
ColaCola
Cola
 
Ordenar
OrdenarOrdenar
Ordenar
 
Números factoriales
Números factorialesNúmeros factoriales
Números factoriales
 
Tower of hanoi
Tower of hanoiTower of hanoi
Tower of hanoi
 

Algoritmo RSA de encriptación de clave pública y privada

  • 2. RSA • Es un algoritmo de encriptación de 1,024 a 4,096 bits creado por Ron Rivest, Adi Shamir y Leonard Adleman y que genera una llave pública y una privada.
  • 3. RSA Generar las llaves pública y privada • Se eligen dos números aleatorios primos pq ejemplo: p=21191 q=52981 Estos dos números primos deben permanecer ocultos y deben ser del mismo largo.
  • 4. RSA • Se hace la operación para n n=pq Siguiendo con nuestro ejemplo: n=(21191)(52981) n=1122720371 n es utilizado para el largo del key público y privado
  • 5. RSA • Se hace la operación para (p-1)(p-1) y se escoge un número aleatorio (a * n) para e. (p-1)(p-1)=(21191-1)(52981-1) (p-1)(p-1)=1122646200 Se substrae el GCD(Mayor común divisor) de (p-1)(p-1) y e. Mientras no sea 1 generará e. Se calcula el Modulo inverso multiplicativo de (p-1)(p-1) y e para generar d
  • 6. RSA • d será nuestro llave privada. Con esto tenemos el código en Python de la función de encriptación. def RSAgenKeys(p,q): n=p*q pqminus = (p-1) * (q-1) e = int(random.random() * n) while gcd(pqminus,e) != 1: e = int(random.random() * n) d,a,b = ext_gcd(pqminus,e) if b < 0: d = int(pqminus + b) else: d = int(b) return ((e,d,n))
  • 7. RSA Si corremos nuestra función con los números dados en el ejemplo, obtenemos: t1 = e,d,n = RSAgenKeys(21191,52981) t1 (59012071, 298910431, 1122720371) n = 1122720371 e = 59012071 d = 298910431
  • 8. RSA Mensaje y su encriptación Tenemos la función RSAencrypt donde decidiremos el mensaje a encryptar. m = oliver martinez Descomponemos m en cada letra con su coódigo ascci correspondiente en decimal. Así tenemos: o l i v e r 111 108 105 118 101 114 i n e z 105 110 101 122 m 32 a r t 109 97 114 116
  • 9. RSA Se utiliza cada código ascci para encryptarlo con nuestro valor n y e. Nos devolverá nuestro mensaje encriptado. def RSAencrypt(m,e,n): chunkSize = 3 chunks = toChunks(m, chunkSize) encList = [] for messChunk in chunks: print (messChunk) c = modexp(messChunk, e, n) encList.append(c) return encList
  • 10. RSA Corremos nuestra función y obtenemos. c = RSAencrypt("oliver martinez",e,n) 111 108 105 118 101 114 32 109 97 114 116 105 110 101 122 c [1022008495, 616348344, 54568254, 766350599, 714687973, 1113849068, 364949306, 760146350, 184148109, 1113849068, 754096723, 54568254, 963044447, 714687973, 328898459]
  • 11. RSA Mensaje y su desencriptación Tenemos la función RSAdencrypt donde desecnriparemos el mensaje. Utilizaremos nuestra secuencia de números generados, nuestra llave privada y la llave pública. def RSAdecrypt(clist,d,n): rList = [] for c in clist: m = modexp(c,d,n) rList.append(m) upnumber = 0 dwnumber = 1 muldivx = 0 res = 0 return rList
  • 12. RSA Corremos nuestra función y obtenemos. m = RSAdecrypt(c,d,n) m [111, 108, 105, 118, 101, 114, 32, 109, 97, 114, 116, 105, 110, 101, 122] Como vemos obtemos los mismos números del codigo ascci que generamos. Solo nos queda correr la función chunksToPlain. def chunksToPlain(numdec): numlistdec = [] for asclet in numdec: asctostr = chr(asclet) numlistdec.append(asctostr) concalist = "".join(numlistdec) return (concalist)
  • 13. RSA Nuestro resultado será. t2 = chunksToPlain(m) t2 'oliver martinez'