개인공부

암호학 - RSA

chaha 2023. 5. 17. 12:56

RSA 암호화

: 현재 SSL/TLS에 가장 많이 사용되는 공개키 암호화 알고리즘

: 미국 국가 표준 암호화 알고리즘인 AES보다 RSA 방식이 계산 집약적이고 훨씬 느림

: AES 256비트가 RSA 15,360비트와 같은 수준으로 이 때문에

  사용자 데이터를 직접 암호화하는 데는 일반적으로 사용되지 않고, 소량의 데이터를 암호화하는 데 사용됨

 

RSA(비대칭) 

-암호화키와 복호화키가 다름, 양자컴퓨터로 뚫림

-소수이용(길어지면 어려움)

 

소수 : 1보다 큰 수 중 약수가 1과 자기자신밖에 없는 수 

합성수 : 1보다 큰 수 중 소수를 뺀 나머지 수

 

 

RSA 알고리즘 구현방식

 

n -> mosulus 

e -> 공개지수                            n과 e ->공개키

d ->비밀지수                             n과 d -> 개인키

n 구하기 - 임의의 두 소수 p와 q를 정하고 n=p*q를 해주면 n을 구할 수 있음

e 구하기

- Φ(n) = (p-1)*(q-1)식을 이용하여 Φ(n)을 구함

-e 는 1< e < Φ(n)로써 1과 Φ(n) 사이에 있고 Φ(n)와 서로소인 e를 정해주면 됨

 

d 구하기

-(e*d) mod Φ(n) = 1

 

M(평문) = 사용자가 원하는 임의의 값 대입(자연수)

 

암호화하기

 
 
복호화하기