RSA가 소인수분해의 어려움에 기반한 암호 알고리즘이라는 사실은 이미 지난 포스트에서 설명을 했습니다.
(관련 포스트 : http://reinliebe.tistory.com/79)
게다가 해독 사례도 이미 언급을 하였습니다 (관련 포스트 : http://reinliebe.tistory.com/83)
일단 앞서 언급한 내용과 더불어
오늘은 RSA 암호의 안전성에 대하여 알아 보겠습니다.
우선 RSA 암호를 공격한다는 의미는 공개키를 이용하여 암호문으로 부터 원 메시지를 복원 한다는 의미와 같은데, 아직까지는 소인수분해를 이용하여 φ(n) 과 d 를 계산하는 방법 말고 특별히 이렇다 할 효율적인 알고리즘이 알려져 있지 않다지요 ...
물론 소인수분해 외의 방법이 존재 할 지도 모르고요 ...
아무튼 이어서... RSA 암호의 공격 방법에 대하여 알아보아요 ...
▶ Protocol 공격
출처 - http://reinliebe.tistory.com/
(관련 포스트 : http://reinliebe.tistory.com/79)
게다가 해독 사례도 이미 언급을 하였습니다 (관련 포스트 : http://reinliebe.tistory.com/83)
일단 앞서 언급한 내용과 더불어
오늘은 RSA 암호의 안전성에 대하여 알아 보겠습니다.
우선 RSA 암호를 공격한다는 의미는 공개키를 이용하여 암호문으로 부터 원 메시지를 복원 한다는 의미와 같은데, 아직까지는 소인수분해를 이용하여 φ(n) 과 d 를 계산하는 방법 말고 특별히 이렇다 할 효율적인 알고리즘이 알려져 있지 않다지요 ...
물론 소인수분해 외의 방법이 존재 할 지도 모르고요 ...
아무튼 이어서... RSA 암호의 공격 방법에 대하여 알아보아요 ...
▶ Protocol 공격
- 작은 e를 사용하는 경우
- 작은 d를 사용하는 경우
- Multiplicative 특성을 이용한 공격
- 여러 암호문을 보낼 때 공통의 modulus를 사용하는 경우
- 순환 공격
- 부분 키 노출 공격
- Timing 공격
▶ 소인수분해 공격
- Trial Division
- Pollard rho 공격
- Pollard p-1 공격
- 타원곡선을 이용한 공격
- Dixon's random square 공격
- Quadratic sieve 공격
- Number field sieve 공격
물론 이 밖에도 다양한 알고리즘과 공격 방법이 존재 할 수 있습니다.
(일단 참고한 자료들이 조금 오래된 자료기 때문에 지금은 더 효율적인 알고리즘들이 나왔을 것으로 추정됩니다만)
아무튼 이런 공격들로부터 안전한 RSA를 구현하기 위해
매우 큰 소수(1024bit 이나 2048bit 정도)를 사용하도록 권장하며,
소수를 선택함에 있어 아래와 같은 규칙을 갖게 됩니다.
▶ 소수 선택의 조건
- 두 소수 p, q의 크기가 거의 같아야 함
- p-q가 너무 작으면 안됨
- p-1이 큰 수를 인수로 가져야 함
- p+1이 큰 수를 인수를 가져야 함
출처 - http://reinliebe.tistory.com/
'Security > Cryptography' 카테고리의 다른 글
암호학 - Involutional SPN (0) | 2011.05.07 |
---|---|
암호학 - Block Cipher :: SEED - C++/CLR 프로그램 (0) | 2011.05.07 |
암호학 - Shannon :: Confusion, Diffusion (0) | 2011.05.07 |
암호학 - Hash Function :: SHA1 C# 프로그램 (0) | 2011.05.07 |
암호학 - Hash Function (0) | 2011.05.07 |