[비대칭키 암호 시스템] RSA

2024. 12. 15. 16:41·Hacking/Cryptography
728x90
반응형

RSA Encryption

Public keys

  • n = p x q, where p and q are primes : 아주 긴 소수이기 때문에 n으로부터 p,q를 알아낼 수 없다
  • e : relatively prime to (p-1)(q-1)

private key

  • d = \(e^{-1}\) mod (p-1)(q-1) : e에 대한 역원

Encryption

  • \(C \equiv M^e mod\ n\)
  • 상대의 공개키로 암호화한다

Decryption

  • \(M \equiv C^d mod\ n\)
  • 상대의 비밀키로 복호화한다

 

이게 어떻게 가능한 것인가?

\(M^{ed}\) mod n이 다시 M이 되는가?

d = \(e^{-1}\) mod (p-1)(q-1) 이므로 \(ed \equiv 1\) mod (p-1)(q-1)인데, mod n에 대해서 되는가?

 

예제

Let p = 3 and q = 17, so N = 51

Choose e = 3 (32의 서로소) and d = 11 (de mod 32 = 1)

Public key = (n,e) = (51, 3)

Private key = (n,d) = (51, 11)

Message, M = 2

Encryption : E(51,3)(2) = \(2^3\) mod 51 = 8

Decryption : D(51, 11)(8) = \(8^11\) mod 51이 2이 되어야한다

 

이러한 곱셈 연산을 얼마나 빨리 할 수 있는지에 대한 것도 중요한 것이다

 

증명

\(ed \equiv 1\) mod (p-1)(q-1)이다.

따라서 \(ed -1 \equiv 0\) mod (p-1)(q-1)이 된다. 

\(ed -1 \equiv\ 0) mod (p-1)

\(ed -1 \equiv\ 0) mod (q-1)

ed -1 = k(p-1)이다. (배수)

1. ed = k(p-1) + 1

2. ed = l(q-1) + 1

 

1번에 대해서 확인하겠다

\(c^d\) mod p = M

\(c^d = M^{ed} = M^{k(p-1)+1}\)

\(M^{k(p-1)+1}\) mod p \(equiv M^{k(p-1)} \cdot M\) mod p

\(\equiv (M^{p-1})^k \cdot M\)

페르마 소정리에 의하여 M mod p이 된다

 

2번에 대해서 확인하겠다.

\(c^d\) mod q = M

\(c^d = M^{ed} = M^{l(q-1)+1}\)

\(M^{l(q-1)+1}\) mod q \(equiv M^{l(q-1)} \cdot M\) mod q

\(\equiv (M^{q-1})^l \cdot M\)

페르마의 소정리에 의하여 M mod q가 된다.

 

따라서 \(c^d\) mod p \(\equiv\) M mod p and \(c^d\) mod q \(\equiv\) M mod q

\(c^d - M \equiv 0\) mod p and \(c^d - M \equiv 0\) mod q

\(c^d\) -M = k'p, \(c^d\) -M = l'q가 된다.

 

\(c^d\) - M = mpq이다 

\(c^d\) - M \(\equiv\) 0 mod pq가 된다 

 

따라서 \(c^d \equiv M\) mod n이다.

 

현재

1024bits의 키를 사용한다

복호화 하는데에 우주의 나이만큼 필요하다

장단점

장점

  • 보안 강도가 높음 (안전함)
  • 키 분배가 매우 효율적
  • 키 관리가 매우 효율적 - 사용자 수가 늘어도 비밀로 유지해야하는 키의 개수가 증가하지 않음

단점

  • 연산이 복잡하고 느림
  • 공개키 관리 (공개키를 위변조할 수 있음) -> 추가 인증이 필요하다

 

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Hacking > Cryptography' 카테고리의 다른 글

전자서명  (1) 2024.12.15
[Key Exchange] Diffie-Hellman  (0) 2024.12.15
[비대칭키 암호 시스템] Elgamal Encryption  (1) 2024.12.15
[공개키 암호 시스템] 정수론  (0) 2024.12.15
[대칭키 암호 시스템] DES  (0) 2024.12.15
'Hacking/Cryptography' 카테고리의 다른 글
  • 전자서명
  • [Key Exchange] Diffie-Hellman
  • [비대칭키 암호 시스템] Elgamal Encryption
  • [공개키 암호 시스템] 정수론
min_zu
min_zu
  • min_zu
    민주제도
    min_zu
  • 전체
    오늘
    어제
    • ._. (176)
      • AI (2)
        • DeepLearning (2)
        • CS231n (0)
      • Web (2)
        • ReactJS (0)
      • CS (83)
        • OS (7)
        • Data Structure (23)
        • Computer Architecture (8)
        • Computer Network (20)
        • Algorithm (25)
      • Linux (3)
        • KaliLinux (0)
        • Docker (1)
      • Hacking (83)
        • Write Up (25)
        • Pwnable (13)
        • Reversing (2)
        • Cryptography (12)
        • Web Hacking (4)
        • Window (6)
        • Network (7)
        • Web3 (13)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    AI
    DeepLearning
    OS
    DataStructure
    Sort
    UTM
    Tree
    Linux
    Graph
    WinAFL
    Web
    Search
    Mac
    ComputerArchitecture
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
min_zu
[비대칭키 암호 시스템] RSA
상단으로

티스토리툴바