본문 바로가기

보안/정보보호이론

RSA (Rivest, shamir, adelman)

0. RSA 정리




위의 증명에서 사용한 오일러 법칙은 다음과 같다.




1. 수치로 계산해보는 RSA encryption


1) 문제 풀이 




2) 문제풀이 계산과정




2. 중국인 나머지 정리(CRT : Chinese Remainder Theorem)을 사용한 복호화



이 결과는 mod n에서 계산하는 것 보다 mod p 와 mod q계산이 더 효율적임을 보여준다.


이를 이해할려면 중국인 나머지 정리부터 이해해야 한다.



3. RSA 공격


1) Chosen Ciphertext Attack




2) small e with the same small message and different




3) circular encryption attack



적긴 했지만...사실 이해가 안간다.



4) OAEP (optimal Asymmetric Enryption)


이전의 RSA는 Chosen Ciphertext Attack에 취약했다. 이 때 메세지 m을 조금만 변형 시키면 안전하게 암호화를 할 수 있다. 식이 어려워 보일지 모르나 그림을 보면 쉽게 이해할 수 있다.




이렇게 기본 메시지를 s || t 로 바꾸어 준다.

m = s xor G(H(s) xor t) 로 볼 수 있다.



결국 메시지를 암호화 하기전에 조금의 연산을 거친 뒤 암호화를 하게 되면 공격이 매우 힘들어지는 효과를 얻을 수 있다.



4. RSA 파라미터(parameter)


그렇다면 보안성이 높은 RSA 키를 생성하기 위해선 어떤 조건이 성립해야할까?


다음과 같은 조건이 성립하면 안전한 키를 생성했다고 한다.


1) p와 q를 선택할 때는 2^n -1 을 선택하는 것이 좋다.

2) p와 q의 크기는 비슷해야 한다.

3) p-1 와 q-1 는 많은 소수를 가져야 한다.

4) p-1와 q-1의 최대공약수는 매우 작아야 한다.


그리고 2p-1이 소수인 수를 safe prime이라고 한다.



5. 메시지가 n보다 길 때?


메시지가 길면 이를 블록화해야하는데 이는 매우 어렵다.

따라서 하이브리드 방식을 통해 암호화를 진행한다.

1) c1 = 우선 키를 가지고 RSA를 만든다. 

2) c2 = 그 키를 가지고 암호화를 한다.

3) 전송시 c1과 c2를 함께 전송한다.

4) 상대방은 c1을 복호화하여 키를 획득하고 이 키로 c2를 복호화하면 메시지를 볼 수있다.





6.RSA 서명


RSA는 공개키를 사용해 메시지를 암호화하는 용도 외에

개인키를 사용해 자신임을 인증하는 방식으로도 사용할 수 있다.

이때 해쉬함수가 필요하다. 이 해쉬함수는 이전에 설명한 3가지 조건이 다 성립해야 한다.


자신이 보내려는 메시지를 서명하려고할 때 


1) H(m) : 우선 메시지를 해쉬화한다.

2) S : 해쉬화 한 메시지를 RSA 개인키를 사용해 암호화한다.

3) (m, S) : 메시지와 암호화된 메시지를 함께 전달한다.

4) S^e = H(m) : RSA 공개키를 사용해 암호화된 메시지를 복호화한다.

5) H(m) : 기본 메시지를 해쉬함수를 사용해 해쉬값을 알아낸다.

6) H(m) =? S^e : 복호화한 값과 해쉬값이 일치하면 인증이 성공됨을 의미한다.



'보안 > 정보보호이론' 카테고리의 다른 글

안전한 서명 (Security Model for Signature)  (0) 2015.03.05
Discrete Logarithm Based Problem  (0) 2015.03.04
공개키 (Public Key)  (0) 2015.03.03
기출 문제 풀이  (0) 2015.03.02
Hash Functions  (1) 2015.03.02