RSA 암호화 알고리즘은 공개 키 암호화 알고리즘의 한 유형입니다. RSA를 더 잘 이해하기 위해 먼저 공개 키 암호화 알고리즘이 무엇인지 이해하겠습니다.
공개 키 암호화 알고리즘:
공개 키 암호화 알고리즘은 비대칭 알고리즘이라고도 합니다. 비대칭 알고리즘은 송신자와 수신자가 암호화 및 복호화에 서로 다른 키를 사용하는 알고리즘입니다. 각 발신자에게는 키 쌍이 할당됩니다.
그만큼 공개키 암호화에 사용되며, 개인 키 암호 해독에 사용됩니다. 공개 키를 사용하여 암호 해독을 수행할 수 없습니다. 두 키는 연결되어 있지만 개인 키는 공개 키에서 파생될 수 없습니다. 공개 키는 잘 알려져 있지만 개인 키는 비밀이므로 키를 소유한 사용자에게만 알려져 있습니다. 이는 누구나 사용자의 공개 키를 사용하여 사용자에게 메시지를 보낼 수 있음을 의미합니다. 하지만 사용자만이 자신의 개인 키를 사용하여 메시지를 해독할 수 있습니다.
공개 키 알고리즘은 다음과 같은 방식으로 작동합니다.
- 전송할 데이터는 발신자에 의해 암호화됩니다. ㅏ 의도한 수신자의 공개 키를 사용하여
- B는 B만 알고 있는 개인 키를 사용하여 수신된 암호문을 해독합니다. B는 A의 공개 키를 사용하여 메시지를 암호화하여 A에게 응답합니다.
- A는 자신만 알고 있는 개인 키를 사용하여 수신된 암호문을 복호화합니다.
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 = c디n에 대하여
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에 대하여 C = 9777에 반대 C = 37 5단계: 개인 키는 입니다. 개인 키를 결정하기 위해 다음 공식 d를 사용합니다. 디그것은모드 {(p - 1) x (q - 1)} = 1 7d mod 60 = 1, 즉 d = 43이 됩니다. 개인 키는 = (43, 77)입니다. 6단계: 암호문 메시지 씨 개인 키를 사용하여 해독됩니다. 일반 텍스트를 계산하려면 중 암호문 c에서 다음 공식을 사용하여 일반 텍스트 m을 얻습니다. m = c디n에 대하여 m = 374377에 반대 m = 9 이 예에서는 일반 텍스트 = 9, 암호문 = 37입니다. 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 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 = 5삼39쪽으로 C = 125 대 39 C = 8 따라서 일반 텍스트에서 생성된 암호문은 C = 8입니다. 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) Φ(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입니다. 형식이 있는 Java 문자열
예 2:
자바 문자열 연결
예시 3:
다음으로 선택
예시 4:
Java에서 데이터베이스에 연결