logo

RSA 암호화 알고리즘

RSA 암호화 알고리즘은 공개 키 암호화 알고리즘의 한 유형입니다. RSA를 더 잘 이해하기 위해 먼저 공개 키 암호화 알고리즘이 무엇인지 이해하겠습니다.

공개 키 암호화 알고리즘:

공개 키 암호화 알고리즘은 비대칭 알고리즘이라고도 합니다. 비대칭 알고리즘은 송신자와 수신자가 암호화 및 복호화에 서로 다른 키를 사용하는 알고리즘입니다. 각 발신자에게는 키 쌍이 할당됩니다.

    공개키 개인 키

그만큼 공개키 암호화에 사용되며, 개인 키 암호 해독에 사용됩니다. 공개 키를 사용하여 암호 해독을 수행할 수 없습니다. 두 키는 연결되어 있지만 개인 키는 공개 키에서 파생될 수 없습니다. 공개 키는 잘 알려져 있지만 개인 키는 비밀이므로 키를 소유한 사용자에게만 알려져 있습니다. 이는 누구나 사용자의 공개 키를 사용하여 사용자에게 메시지를 보낼 수 있음을 의미합니다. 하지만 사용자만이 자신의 개인 키를 사용하여 메시지를 해독할 수 있습니다.

공개 키 알고리즘은 다음과 같은 방식으로 작동합니다.

RSA 암호화 알고리즘
  • 전송할 데이터는 발신자에 의해 암호화됩니다. 의도한 수신자의 공개 키를 사용하여
  • B는 B만 알고 있는 개인 키를 사용하여 수신된 암호문을 해독합니다. B는 A의 공개 키를 사용하여 메시지를 암호화하여 A에게 응답합니다.
  • A는 자신만 알고 있는 개인 키를 사용하여 수신된 암호문을 복호화합니다.

RSA 암호화 알고리즘:

RSA는 발명자의 이름을 딴 가장 일반적인 공개 키 알고리즘입니다. 리베스트, 샤미르, 아델만(RSA).

RSA 암호화 알고리즘

RSA 알고리즘은 다음 절차를 사용하여 공개 키와 개인 키를 생성합니다.

  • 두 개의 큰 소수 p와 .
  • 이 숫자를 곱하여 구하세요. n = p x q, 어디 N 암호화 및 복호화 모듈러스라고 합니다.
  • 번호를 선택하세요 그것은 미만 N , n은 상대적으로 소수입니다. (p - 1) x (q -1). 그것은 다음을 의미합니다 그것은 그리고 (p - 1) x (q - 1) 1 외에는 공통인자가 없습니다. 1이 되도록 'e'를 선택하세요. gcd(e,d(n)) =1
  • 만약에 n = p x q, 그러면 공개 키는 입니다. 일반 텍스트 메시지 공개 키를 사용하여 암호화됩니다. 일반 텍스트에서 암호문을 찾으려면 다음 공식을 사용하여 암호문 C를 얻습니다.
    C = m그것은n에 대하여
    여기 , 중 다음보다 작아야 합니다. N . 더 큰 메시지(>n)는 메시지 연결로 처리되며 각 메시지는 별도로 암호화됩니다.
  • 개인 키를 결정하기 위해 다음 공식을 사용하여 d를 계산합니다.
    그것은모드 {(p - 1) x (q - 1)} = 1
    또는
    그것은모드 Φ(n) = 1
  • 개인 키는 입니다. 암호문 메시지 개인 키를 사용하여 해독됩니다. 일반 텍스트를 계산하려면 암호문 c에서 다음 공식을 사용하여 일반 텍스트 m을 얻습니다.
    m = cn에 대하여

RSA 암호화 알고리즘의 몇 가지 예를 들어보겠습니다.

예시 1:

이 예에서는 RSA 공개 키 암호화 알고리즘을 사용하여 일반 텍스트 9를 암호화하는 방법을 보여줍니다. 이 예에서는 소수 7과 11을 사용하여 공개 키와 개인 키를 생성합니다.

설명:

1 단계: 두 개의 큰 소수 p를 선택하고, .

p = 7

큐 = 11

2 단계: 이 숫자를 곱하여 구하세요. n = p x q, 어디 N 암호화 및 복호화 모듈러스라고 합니다.

개발자 모드 비활성화

먼저, 우리는 계산합니다

n = p x q

n = 7×11

n = 77

3단계: 번호를 선택하세요 그것은 그보다 덜 N , n은 상대적으로 소수입니다. (p - 1) x (q -1). 그것은 다음을 의미합니다 그것은 그리고 (p - 1) x (q - 1) 1 외에는 공통인자가 없습니다. 1이 되도록 'e'를 선택하세요.

둘째, 우리는 계산합니다

Φ(n) = (p - 1) x (q-1)

Φ(n) = (7 - 1) x (11 - 1)

Φ(n) = 6×10

Φ(n) = 60

이제 60의 상대소수 e를 7로 선택해 보겠습니다.

따라서 공개 키는 = (7, 77)입니다.

4단계: 일반 텍스트 메시지 공개 키를 사용하여 암호화됩니다. 일반 텍스트에서 암호문을 찾으려면 다음 공식을 사용하여 암호문 C를 얻습니다.

일반 텍스트에서 암호문을 찾으려면 다음 공식을 사용하여 암호문 C를 얻습니다.

C = m그것은n에 대하여

형식이 있는 Java 문자열

C = 9777에 반대

C = 37

5단계: 개인 키는 입니다. 개인 키를 결정하기 위해 다음 공식 d를 사용합니다.

그것은모드 {(p - 1) x (q - 1)} = 1

7d mod 60 = 1, 즉 d = 43이 됩니다.

개인 키는 = (43, 77)입니다.

6단계: 암호문 메시지 개인 키를 사용하여 해독됩니다. 일반 텍스트를 계산하려면 암호문 c에서 다음 공식을 사용하여 일반 텍스트 m을 얻습니다.

m = cn에 대하여

m = 374377에 반대

m = 9

이 예에서는 일반 텍스트 = 9, 암호문 = 37입니다.

예 2:

RSA 암호화 시스템에서 특정 A는 두 개의 소수(13과 17)를 사용하여 공개 키와 개인 키를 생성합니다. A의 공개값이 35라면 A의 개인키는 ........................?.

설명:

1 단계: 첫 번째 단계에서는 두 개의 큰 소수를 선택하고, 그리고 .

p = 13

큐 = 17

2 단계: 이 숫자를 곱하여 구하세요. n = p x q, 어디 N 암호화 및 복호화 모듈러스라고 합니다.

먼저, 우리는 계산합니다

n = p x q

n = 13×17

n = 221

3단계: 번호를 선택하세요 그것은 그보다 덜 N , n은 상대적으로 소수입니다. (p - 1) x (q -1). 그것은 다음을 의미합니다 그것은 그리고 (p - 1) x (q - 1) 1 외에는 공통인자가 없습니다. 1이 되도록 'e'를 선택하세요.

둘째, 우리는 계산합니다

Φ(n) = (p - 1) x (q-1)

Φ(n) = (13 - 1) x (17 - 1)

Φ(n) = 12×16

Φ(n) = 192

g.c.d (35, 192) = 1

3단계: 개인 키를 결정하기 위해 다음 공식을 사용하여 d를 계산합니다.

d = d 계산그것은모드 Φ(n) = 1

d = d x 35 모드 192 = 1

d = (1 + k. Φ (n))/e [k =0, 1, 2, 3이라고 하자…………]

k=0이라고 놔두세요

d = (1 + 0 x 192)/35

d = 1/35

k = 1을 넣어라

d = (1 + 1 x 192)/35

자바 문자열 연결

d = 193/35

k = 2를 넣어라

d = (1 + 2 x 192)/35

d = 385/35

d = 11

개인 키는 = (11, 221)입니다.

따라서 개인 키, 즉 d = 11

예시 3:

RSA 암호화 시스템은 두 개의 소수 3과 13을 사용하여 공개 키= 3과 개인 키 = 7을 생성합니다. 일반 텍스트에 대한 암호문의 값은 무엇입니까?

설명:

1 단계: 첫 번째 단계에서는 두 개의 큰 소수를 선택하고, 그리고 .

p = 3

큐 = 13

2 단계: 이 숫자를 곱하여 구하세요. n = p x q, 어디 N 암호화 및 복호화 모듈러스라고 합니다.

먼저, 우리는 계산합니다

n = p x q

n = 3×13

n = 39

3단계: 만약에 n = p x q, 그러면 공개 키는 입니다. 일반 텍스트 메시지 공개 키를 사용하여 암호화됩니다. 따라서 공개 키는 = (3, 39)입니다.

일반 텍스트에서 암호문을 찾으려면 다음 공식을 사용하여 암호문 C를 얻습니다.

다음으로 선택

C = m그것은n에 대하여

C = 539쪽으로

C = 125 대 39

C = 8

따라서 일반 텍스트에서 생성된 암호문은 C = 8입니다.

예시 4:

RSA 암호화 시스템은 개인 키 = 7을 생성하기 위해 두 개의 소수 3과 11을 사용합니다. RSA 공개 키 암호화 알고리즘을 사용하는 일반 텍스트 5에 대한 암호문의 값은 무엇입니까?

설명:

1 단계: 첫 번째 단계에서는 두 개의 큰 소수를 선택하고, 그리고 .

p = 3

큐 = 11

2 단계: 이 숫자를 곱하여 구하세요. n = p x q, 어디 N 암호화 및 복호화 모듈러스라고 합니다.

먼저, 우리는 계산합니다

n = p x q

n = 3×11

n = 33

3단계: 번호를 선택하세요 그것은 그보다 덜 N , n은 상대적으로 소수입니다. (p - 1) x (q -1). 그것은 다음을 의미합니다 그것은 그리고 (p - 1) x (q - 1) 1 외에는 공통인자가 없습니다. 1이 되도록 'e'를 선택하세요.

둘째, 우리는 계산합니다

Φ(n) = (p - 1) x (q-1)

Φ(n) = (3 - 1) x (11 - 1)

Java에서 데이터베이스에 연결

Φ(n) = 2×10

Φ(n) = 20

4단계: 공개 키를 결정하기 위해 다음 공식을 사용하여 d를 계산합니다.

e x d = 1 mod ψ(n)을 계산합니다.

e x 7 = 1 대 20

e x 7 = 1 대 20

e = (1 + k. ψ(n))/d [k =0, 1, 2, 3이라고 하자…………]

k=0이라고 놔두세요

e = (1 + 0 x 20) / 7

전자 = 1/7

k = 1을 넣어라

e = (1 + 1 x 20) / 7

e = 21/7

전자 = 3

공개 키는 = (3, 33)입니다.

따라서 공개 키, 즉 e = 3입니다.