이메일을 적으시면 보안관련 소식을 받을수 있습니다.
이메일:














작성자 : 푸른하늘위로
편집자: 엔시스(sis@sis.pe.kr)




이번 주는 조금 늦었습니다. 어찌하다보니 마감일도 넘겼네요.

벌써 Posting을 시작한지 3주를 넘어 4주째에 이르고 있습니다. 부족한 실력으로, 글 솜씨로 여러 모로 고생하고 있습니다. 힘을 주시는 분들께 새삼 감사의 말을 드리면서.......



오늘은
공개키 암호 알고리즘인 RSA에 대해 쓰고자 합니다. 그럼 잠깐 공개키 암호 방식에 대해 알아보고 가겠습니다. 지금까지의 DES, AES의 경우에는 대칭(관용)암호 방식으로 공개키 암호 알고리즘과는 다른 방식이었습니다. 기본적으로 대칭 암호 방식은 하나의 Key를 사용하는 것에 비해, 공개키는 두 개의 서로 다른 Key(Public Key-공개키, Private Key-개인키)를 사용합니다. 주로 공개키는 암호화에, 개인키는 복호화에 사용됩니다.(몇몇 알고리즘의 경우 반대로 사용되는 경우도 있습니다.)



그럼 이제 RSA에 대해 알아보겠습니다.

1997년 Rivest, Shamir, Adleman이 공동으로 개발한 이 알고리즘은 위의 조건을 만족하는 최초의 방식입니다.
평문과 암호문은 0과 n-1사이의 정수를 사용합니다.

 (n은 1024bit또는 309자리의 십진수를 사용합니다. n = p * q (p와 q는 소수))
평문은 블록으로 암호화 되는데, 각 블록의 크기는 log2(n)보다 작거나 같은 값을 가집니다.

M을 평문, C를 암호문이라고 하고, public key(공개키)는 {e(= (p-1, n}, private key(개인키)는 {d, n}이라 했을 때,


그럼 예를 들어 아주 짧은 key와 평문으로 public key와 private key의 생성, 암호화, 복호화 과정을 보겠습니다.

1) 2개의 소수를 선택합니다. ( p=17, q=11 )
2) n을 계산 합니다. ( n=17*11=187 )
3) (p-1)*(q-1)=16*10=160
4) 187과 서로소인 수 중, 하나를 선택하여 e의 값을 정합니다. ( e=7 )
5) d를 결정합니다. ( d*e=1 mod ((p-1)*(q-1))= 1 mod 160 ) ( d=23 )
6) 각각의 Key : public key(KUa) = {e, n} = {7, 187}
                     
private key(KRa) = {d, n} = {23, 187} 












AES에 비하면 비교적 간단해 보입니다만, 실제로 개인키의 암호를 해독하려면 슈퍼컴퓨터로도 오랜 시간이 걸린다고 합니다. 그러나 단점으로 계산 량이 많아 휴대용 단말기 등에는 사용하기 어렵고 대신에 타원곡선 알고리즘이 사용된다고 합니다.





****************************************************************************************************

본 포스팅의 저작권은 보안인닷컴과 작성자에 있으며 상업적 이용을 배제하며 콘텐츠 이용시에는 반드시 출처와 링크를 이용해 주시기 바랍니다. 무단도용은 저작권법에 저촉을 받습니다..

****************************************************************************************************

Posted by 비회원
TAG , ,

댓글을 달아 주세요

  1. lunatic25 2009.04.12 23:27  댓글주소  수정/삭제  댓글쓰기

    RSA 후기들 보면 아직도 실기문제에 종종 나오나봅니다^^
    수식비슷한거 들어가면 정말 질색팔색인데...암호분야는 거의가 수식이더군요..ㅋㅋ

    글구..딴지는 아니고 다만 시험볼때 헷갈릴까봐서..
    PKI(공캐기기반구조에서) 퍼블릭키는 암호화에 쓰일수도 복호화에 쓰일수 도 있습니다

    데이터암호화(엄밀히 말하면 데이터암호키의 안전한 분배를 위한 암호화죠..ㅡㅡ;)에 쓰일때는 수신자의 퍼블릭키가 '암호화'에 쓰이고(그래야 수신자는 자신만의 개인키로 복호화해서 보죠)

    전자서명에 쓰일때는 송신자의 프라이빗키로 서명을 하면 수신자는 송신자의 퍼블릭키를 가져와서 서명이 진짜인지 확인하죠...

    공개키 분야에 들어가게 되면
    엄밀히 말하면 뭐거 암호화에 복호화에 쓰인다고 단편적으로 알면 안되고 도식같은걸 봐서 이해하면
    필기와 실기에서도 유용하게 쓰일듯 합니다^^

  2. Favicon of https://eva1717.tistory.com BlogIcon eva1717 2009.04.14 20:25 신고  댓글주소  수정/삭제  댓글쓰기

    예를 들어서 문제를 풀이해주신 과정이 일품입니다..+ㅁ+b
    간단하면서도 똑 뿌러지네요..ㅎㅎ
    좋은 내용 감사드립니다..^_^

  3. Favicon of https://www.extraman.net BlogIcon ^________________^ 2009.04.16 13:28 신고  댓글주소  수정/삭제  댓글쓰기

    음..암호...어렵슴다..흑...