알고리즘 암호화 RSA. 예제 RSA 암호화 알고리즘

작업 비대칭을 고려하십시오 rsa. ...에 그는 Ronald Riveste의 세 가지 수학자가 제안했습니다 ( R. vist.), Adi Shamir ( A. Shamir.)와 Leonard Adalman ( L. adleman.) 1978 년.

아래에 간단한 번호 우리는 그런 숫자가 1로 나누어지는 숫자를 이해할 것입니다. 그의 "시작"의 유클리드는 간단한 숫자가 더 큰 숫자가 있음을 보여주었습니다. 즉, 소수의 수는 무한합니다.

증거.가장 큰 간단한 숫자가 있다고 가정 해보십시오 피., 우리는 모든 소수의 작품을 정의합니다 피.=2∙3∙5∙7∙…∙피..

번호를 고려하십시오 피.+1. 그 또는 그 자체는 간단한 숫자입니다 피. 또는 더 많은 숫자의 일에 의해 피....에 우리는 모순에 왔으며, 소수의 수는 무한합니다.

2∙3+1=7; 2∙3∙5+1=31; 2∙3∙5∙7+1=211;

2∙3∙5∙7∙11+1=2311; 2∙3∙5∙7∙11∙13+1=30031=59∙509.

상호 간단한 숫자 우리는 그러한 숫자를 제외하고는 공통 제의자가없는 숫자를 부를 것입니다. 1 .

마지막으로 조작의 결과하에 있습니다 나는 Mod J. 우리는 Integer 부서의 균형을 가정합니다 나는.제이. RSA 알고리즘을 사용하려면 다음 단계를 수행하여 먼저 열려 있고 비밀 키를 생성해야합니다.

1. 두 개의 매우 큰 소수를 선택하십시오. 아르 자형 큐..

2. 결정 엔. 곱셈의 결과로 아르 자형q (n \u003d p / q).

3. 우리가 부르는 큰 난수를 선택하십시오 디....에 이 숫자는 곱셈의 결과로 서로 간단해야합니다. (P - 1) · (Q - 1).

4. 그러한 숫자를 결정하십시오 이자형.진정한 관계가 사실 인 것입니다 (e · d) mod ((p-1) · (q-1)) \u003d 1.

5. 열린 키 번호로 전화 해 봅시다 이자형.엔.비밀 키 - 번호 디.엔..

이제 잘 알려진 키에서 데이터를 암호화합니다 ( e, N.), 다음을 수행해야합니다.

- 블록에서 암호화 된 텍스트를 끊으려면 각각은 숫자로 표시 할 수 있습니다. m (i);

- 일련의 숫자로 간주되는 텍스트를 암호화합니다. m (i) 공식에 따르면 C (i) \u003d (m (i) e) mod n...에 비밀 키를 사용 하여이 데이터를 해독합니다 (D, N), 다음 계산을 수행해야합니다. m (i) \u003d (c (i) d) mod n...에 결과적으로 많은 숫자가 얻어집니다 m (i), 소스 텍스트입니다.

연산 rsa. euler의 입증 된 이론 중 하나를 기반으로, 그 특별한 경우는 숫자가 엔. 두 개의 간단한 숫자의 형태로 나타납니다 피.큐.그런 다음 모든 것 엑스. 평등이 있습니다

x (P-1) (Q-1) mod n = 1.

de. 암호화 RSA.- 메시지는이 수식을 사용합니다. 이렇게하려면 두 부분을 학위로 세우십시오 (- 와이.):

(x (- y) (p-1) (Q-1)) mod n \u003d 1 (- y) \u003d 1.



이제 x를 모두 곱합니다.

(x (-y) (p-1) (q-1) +1) mod n = 1· x \u003d x.

이제 열려있는 키와 닫힌 키가 어떻게 생성되었는지를 회상하십시오. 우리는 집어 들었다 디. 그런

e · D + (P-1) (Q-1) · Y \u003d 1,

e · D \u003d (-y) (p-1) (Q-1) +1.

결과적으로 이전 단락의 마지막 표현에서 우리는 수의 정도 비율을 대체 할 수 있습니다. (e · d).받다 (x e · d) mod n \u003d x...에 메시지를 읽으려면 c i \u003d ((mi) e) mod n 정도로 그것을 구축하기에 충분합니다 디.모듈에 의해 미디엄.:

((ca) d) mod n \u003d ((mi) e · d) mod n \u003d m i.

우리는 "택시"라는 메시지를 암호화하기 위해 RSA 메서드를 사용하는 간단한 예제를 제공합니다. 단순화를 위해 우리는 매우 작은 숫자를 사용할 것입니다 (실제로 큰 숫자가 사용됨).

1. 선택하십시오 p \u003d3i. q \u003d11.

2. 결정 n \u003d3· 11=33.

3. 찾기 (P-1) (Q-1) \u003d20. 품질에서 디. 20에서 서로 간단한 숫자를 선택하십시오. d \u003d.3.

4. 번호를 선택하십시오 이자형....에 이러한 숫자로서는 비율이 만족되는 모든 수를 취할 수 있습니다. (E ·3) 모드.20 = 1,
예를 들어 7.

5. 암호화 된 메시지가 0 ... 32 범위의 정수의 순서로 상상해보십시오. 편지를 보자 그러나 숫자 1, 편지로 묘사 - 2 번, 편지 에서 - 숫자 3. 그런 다음 메시지는 숫자 시퀀스로 표현할 수 있습니다. 312. 키 (7, 33)를 사용하여 메시지를 입력하십시오.

C (1) \u003d (S 7) mod 33 \u003d 2187 mod \u003d 9,

C (2) \u003d (1 7) mod 33 \u003d 1 mod 33 \u003d 1,

C (s) \u003d (2 7) mod 33 \u003d 128 mod 33 \u003d 29.

6. 비밀 키 (3, 33)를 기반으로 알려진 키의 암호화의 결과로 얻은 메시지 (9, 1, 29)를 해독하려고 노력할 것입니다.

m (1) \u003d (9 3) mod 33 \u003d 729 mod 33 \u003d 3,

m (2) \u003d (1 3) mod 33 \u003d 1 mod 33 \u003d 1,

m (s) \u003d (29 3) mod 33 \u003d 24389 mod 33 \u003d 2.

따라서, 메시지 디코딩의 결과로서, 초기 메시지 "캡"이 얻어졌다.

RSA 알고리즘의 암호화 저항은 전체 분배기의 존재의 문제를 해결할 필요가 있기 때문에 알려진 개방에 따른 비밀 키를 결정하는 것이 매우 어렵다는 가정을 기반으로합니다. 이 작업 효과적인 (다항식) 솔루션을 허용하지 않습니다. 이와 관련하여 200 바이너리 숫자로 구성된 키 (즉, 그러한 숫자가 사용하는 것이 좋습니다)에서는 많은 수의 작업이 필요합니다 (약 10 23).

RSA Cryptosystem은 다양한 플랫폼 및 많은 산업 분야에서 사용됩니다. 숫자가 끊임없이 증가하는 많은 상용 제품에 내장되어 있습니다. 그것은 사용됩니다 oS. Microsoft, Apple, Sun 및 Novell. 하드웨어 버전에서 RSA 알고리즘은 이더넷 네트워크 보드의 이더넷 네트워크 보드에서 스마트 카드에 사용되며 Zaxus (Rasal) 암호화 장비에서 널리 사용됩니다. 또한 알고리즘은 S / MIME, SSL 및 S / WAN을 비롯한 보호 된 인터넷 통신을위한 모든 주요 프로토콜의 일부이며, 대부분의 기업에서는 주소록 및 대학에서 공무원 서비스, 대부분의 기업과 같은 많은 기관에서 사용됩니다.

RSA BSAFE 암호화 기술은 전 세계 5 억 명 이상의 사용자를 사용합니다. 대부분의 경우 RSA 알고리즘이 사용되므로 세계에서 가장 일반적인 핵심 키 암호계로 간주 될 수 있으며이 금액은 인터넷 사용자가 성장함에 따라 명시 적 경향이 있습니다.

rsa. 두 가지 유형의 키를 사용합니다 - e 및 d, 여기서 e가 열리면 D는 비밀입니다. p는 소스 텍스트와 C- 암호화 된 텍스트임을 가정합니다. Alice는 소스 텍스트 p에서 암호화 된 텍스트를 생성하기 위해 C \u003d P MOD N을 사용합니다. Bob은 Alice가 전송하는 소스 텍스트 (파일)를 추출하기 위해 P \u003d C D MOD N을 사용합니다. Modules N은 나중에 논의 할 키 생성 프로세스를 사용하여 매우 많은 양을 만들었습니다.

암호화 및 암호 해독을 위해 모듈에서 정도로 적용됩니다. 우리가 이미 강좌 12-13에서 논의한 것처럼, 신속한 알고리즘을 사용할 때, 모듈의 끝은 다항식 시간에 수행됩니다. 그러나 모듈러 로그의 위치는 모듈의 숫자의 분해만큼 어렵습니다. 다항식 시간이있는 알고리즘은 없습니다. 즉, Alice는 다항식 시간에서 공개 키 (E)로 메시지를 암호화 할 수 있음을 의미합니다. Bob은 다항식 시간 (그분이 D를 알고 있기 때문에)에서도 해독 할 수 있습니다. 그러나 모듈러 산술을 사용하여 e- 학위의 루트를 계산해야하기 때문에 이메일은이 메시지를 해독 할 수 없습니다. 그림 14.5는 RSA의 아이디어를 보여줍니다.


무화과. 14.5.

즉, 앨리스는 사용합니다 일방적 인 기능 (모듈의 정도로) 밥에게만 알려진 허점을 사용하여). 이브는 허점을 알지 못해 메시지를 해독 할 수 없습니다. n에서 루트 E-도를 계산하기위한 모듈의 다항식 알고리즘을 찾은 적이 있다면, 모듈 n의 정도에 대한 발기는 더 단조로운 기능이 아닙니다.

순서

그림 14.6은 RSA에서 사용되는 절차의 일반적인 아이디어를 보여줍니다.

RSA는 암호화 / 암호 해독을 위해 모듈의 끝을 사용합니다. 닫힌 텍스트를 공격하기 위해 Eve는 계산해야합니다.


무화과. 14.6.
두 대수 구조물

RSA는 두 대수 구조를 사용합니다 : 링 및 그룹.

암호화 / 암호 해독 링...에 암호화 및 암호 해독은 전환 링을 사용하여 만들어집니다 두 개의 산술 작업 : 추가 및 곱셈. RSA에서는 N 모듈이 공개적으로 사용 가능하기 때문에이 링이 공개적으로 사용할 수 있습니다. 누구든지 암호화를 위해이 링을 사용하여 메시지를 보낼 수 있습니다.

키 생성 그룹...에 RSA는 곱셈기 그룹을 사용합니다 키를 생성합니다. 이 그룹은 개방형 및 비밀 키를 만들기 위해 필요한 곱셈 및 부서 (곱플 인수) 만 지원합니다. 이 그룹은 모듈이 비밀이기 때문에이 그룹을 숨겨야합니다. EVA 가이 모듈을 찾으면 암호화 시스템을 쉽게 공격 할 수 있음을 알 수 있습니다.

RSA는 두 대수 구조를 사용합니다 : 열린 링 r \u003d< Z 엔. , +, x\u003e 및 비밀 그룹 g \u003d< Z (n) * , x\u003e.

키 생성

Bob은 알고리즘 14.2에 표시된 단계를 사용하여 자신의 비밀 키를 만듭니다. 키를 생성 한 후 Bob은 공개 액세스 키로 튜플 (e, n)을 발표합니다. Bob은 D를 비밀 키로 저장합니다. Bob은 P, Q 및; 모듈을 변경하지 않고 비밀 키를 변경할 수 없습니다. 각 단순 P 또는 Q - 512 비트 (거의 154 개의 소수 숫자)마다 크기가 권장됩니다. 이렇게하면 모듈의 크기, N 1024 비트 (309 자리)의 크기를 결정합니다.

14.2. rsa-generation의 키

RSA에서 튜플 (E, N)은 실외 액세스 키입니다. Integer D - 비밀 키.

암호화

공용 액세스 키를 사용하여 메시지 Bob Any 메시지를 전달할 수 있습니다. RSA의 암호화는 알고리즘 14.3에 나타낸 바와 같이 다항식 복잡성이있는 알고리즘을 사용하여 알고리즘을 사용하여 수행 할 수 있습니다. 전시회의 빠른 알고리즘은 강의 12-13에서 고려되었다. 소스 텍스트의 크기는 n보다 작아야합니다. 소스 텍스트의 크기가 더 큰 경우 블록으로 나누어야합니다.

각 암호화 택트에있는 RSA 암호화 시스템은 수식에 따라 정수로 간주되는 2 텍스트 바이너리 블록 M 길이 (n)를 변환합니다. C \u003d M e (mod n).

동시에 n \u003d pq. , 여기서 p와 q는 모듈과 키를 형성 한 후에 파괴되는 큰 비트의 랜덤 비트의 랜덤 비트입니다. 공개 키는 쌍의 숫자와 n으로 구성됩니다. . 연결 E는 범위 1에서 충분히 많은 수로 선택됩니다.< e < φ(n), с условием: НОД(e, j(n)) = 1, где j(n) - наименьшее общее кратное чисел p–1 и q–1. 다음으로, 정수 x, y, 방정식 Xe + Yφ (n) \u003d 1로 해결한다. D \u003d X, 즉, ED \u003d 1 (j (n)). 이 경우, 모든 m에 대해, 비율 m ed \u003d m (n)이 수행된다. , 따라서 지식 D는 암호 작성을 해독 할 수 있습니다.

신뢰할 수있는 정보 보호를 보장하기 위해 두 가지 다음 두 가지 요구 사항이 열린 키가있는 시스템에 제공됩니다.

1. 소스 텍스트를 변환하는 것은 오픈 키 복원을 제외해야합니다.

2. 개방형을 기반으로 한 폐쇄 된 키의 정의는 또한 계산적으로 비현실적이어야합니다. 동시에, 암호 공개의 복잡성 (동작 수)의 정확한 평가가 바람직하다.

열린 키 암호화 알고리즘은 현대 정보 시스템에서 널리 퍼져있었습니다.

간단한 예로 RSA Cryptosystem의 구성을 고려하십시오.

1. p \u003d 3 및 q \u003d 11을 선택하십시오.

2. n \u003d 3 ∙ 11 \u003d 33을 결정하십시오.

3. j (n) \u003d (p-1) (q - 1) \u003d 20을 찾으십시오.

5. 만족 7D \u003d 1 (MOD 20)을 만족시키는 번호를 선택하십시오.

D \u003d 3 (MD 20)을 쉽게 알 수 있습니다.

암호화 된 메시지가 적합성이있는 정수의 순서로 상상해보십시오 : a \u003d 1, b \u003d 2, c \u003d 3, ..., z \u003d 26. 크기 (n) \u003d 6 , 그런 다음 Cryptosystem은 블록으로 간주되는 라틴계 알파벳의 글자를 암호화하고 열린 키 (E, N) \u003d (7, 33)를 게시하고 비밀 통신 시스템에 다른 참가자에게 제공하여 도움말 메시지를 암호화합니다. 우리 주소. 다음은 택시가 될 것입니다 , 우리가 선택한 인코딩에서는 (3, 1, 2) 형식을 취합니다. 드라이버는 블록을 종료해야하며 주소로의 정확도 메시지를 보내야합니다.

RSA (C) \u003d RSA (3) \u003d 3 7 \u003d 2187 \u003d 9 (mod 33);
RSA (A) \u003d RSA (1) \u003d 1 7 \u003d 1 (mod 33);
RSA (B) \u003d RSA (1) \u003d 2 7 \u003d 128 \u003d 29 (MOD33).

암호화 된 메시지 (9, 1, 29)를 수신 한 결과, 비밀 키 (D, N) \u003d (3, 33)에 기초하여 각 블록을 제거하여 D \u003d 3의 각 블록을 제거 할 수 있습니다.

9 3 \u003d 729 \u003d 3 (MD33);
1 3 \u003d 1 (MD33);
29 3 \u003d 24389 \u003d 2 (MD 33).

예를 들어, 교차로의 비밀 키를 쉽게 찾을 수 있습니다. 실제로는 불가능합니다 실제로 사용하기 위해 다음 크기 (n) 값을 권장합니다. :


· 512-768 비트 - 개인의 경우;

· 1024 비트 - 상업적 정보의 경우;

· 2048 비트 - 비밀 정보를 위해.

RSA 알고리즘을 구현하는 예는 Listing 18.1 및 18.2 (컴파일러 - 델파이, FreePascal)에 표시된다.

Listing 18.1. 파스칼의 RSA 알고리즘의 구현 예

프로그램 RSA;
($ apptype 콘솔)
($ IFDEF FPC)
($ 모드 델파이)
($ endif)

sysutils, Ubignumber;

// 난수 생성기

var t : 바이트 배열;
var pos : 정수;
var cbox : 바이트의 배열 \u003d.
(237, 240, 161, 1, 130, 141, 205, 98, 27, 169, 181, 202, 173, 47, 114, 224, 35, 183, 79, 82, 153, 220, 172, 22, 17, 11, 200, 131, 14, 154, 167, 91, 250, 31, 213, 112, 126, 241, 236, 155, 198, 96, 87, 143, 244, 151, 134, 38, 129, 233, 186, 101, 41, 94, 231, 115, 113, 199, 51, 145, 229, 37, 69, 180, 85, 33, 207, 163, 102, 187, 4, 89, 7, 44, 75, 88, 81, 120, 10, 232, 221, 168, 230, 158, 247, 211, 216, 156, 95, 64, 242, 215, 77, 165, 122, 5, 15, 119, 100, 43, 34, 48, 30, 39, 195, 222, 184, 92, 78, 135, 103, 166, 147, 32, 60, 185, 26, 251, 214, 90, 139, 45, 73, 150, 97, 116, 136, 68, 219, 248, 191, 192, 16, 8, 243, 50, 132, 105, 62, 201, 204, 65, 0, 99, 182, 121, 194, 108, 160, 170, 56, 226, 206, 254, 117, 178, 9, 197, 234, 127, 58, 171, 40, 29, 177, 142, 3, 228, 188, 162, 212, 157, 49, 175, 174, 140, 70, 106, 123, 66, 196, 246, 179, 42, 218, 71, 217, 227, 18, 164, 24, 67, 159, 25, 111, 255, 193, 245, 2, 238, 133, 21, 137, 152, 109, 148, 63, 124, 203, 104, 54, 55, 223, 80, 107, 210, 225, 149, 252, 76, 12, 189, 93, 46, 23, 13, 36, 209, 61, 249, 110, 144, 86, 52, 253, 72, 28, 53, 57, 125, 59, 235, 84, 128, 208, 146, 20, 74, 6, 239, 190, 83, 19, 138, 118, 176);

절차 inicmyrandom;
var i : 정수;
vars : 문자열;
시작하십시오.
WRITELN ( "발전기를 초기화하는 텍스트 입력
난수 (최대 256 자) : ");
Readln (들);
I : \u003d 1;
(I.<=255) and (i<=Length(s)) do

소개 3.

주요 부분 5.

1 창조의 역사 5.

2-- 알고리즘 5를 설명합니다.

2.1 키 생성 6 6.

2.2Choffing 및 암호 해독 6.

2.3 사용 예 7.

결론 9.

10. 사용 된 소스 목록

소개

암호화 -이 시스템을 아는 제한된 수의 인물에 대해서만 텍스트를 이해할 수있는 일반적인 편지를 변경하는 특별한 시스템.

암호 - 수학적 방법을 사용하여 정보 보호의 과학.

현대 암호화는 다음과 같습니다 :

    대칭 암호계;

    비대칭 암호 시스템;

    전자 디지털 서명 시스템 (EDS);

    해시 함수;

    키 관리;

    숨겨진 정보를 얻는 단계;

    양자 암호화.

대칭 암호화 - 대칭은 암호화 및 암호 해독에 하나와 동일한 (보낸 사람과 수신자에게만 알려진)이 사용되는 알고리즘이라고합니다.

공통 대칭 암호화 알고리즘 :

    AES (영어 고급 암호화 표준) - 미국 암호화 표준;

    GOST 28147-89 - 국내 데이터 암호화 표준;

    DES (ENG. 데이터 암호화 표준) - 미국의 데이터 암호화 표준;

    3DES (트리플 - 데, 트리플 DES);

    아이디어 (영어 국제 데이터 암호화 알고리즘);

    종자 - 한국 데이터 암호화 표준;

    Camellia - CIFR은 일본에서 사용하도록 인증되었습니다.

    XTEA는 알고리즘을 구현하는 가장 쉽습니다.

비대칭 Cryptoalgorithms는 주로 대칭 암호계의 주요 단점을 없애기 위해 - 키의 제어 및 분포의 복잡성을 제거하는 것입니다.

모든 비대칭 Cryptoalgorithms의 기초는 폐쇄 된 키에 대한 지식없이 열린 텍스트를 복원하는 큰 계산 복잡성입니다.

비대칭 cryptalgrimms의 예 :

    Diffie-Hellmann;

    RSA - Rivest, Shamir, Adelman - 짧은 시간에 여러 숫자에 대한 분해 작업의 복잡성을 기반으로합니다.

    DSA - 디지털 서명 알고리즘, 미국 표준;

    GOST R 34.10 - 94, 2001, RF 표준.

이 에세이에서는 암호화의 비대칭 암호화 법률가 - RSA 알고리즘을 자세히 설명합니다.

주요 부분

RSA 알고리즘 (Rivest, Shamir 및 Adleman의 이름에서 문학적 약어)은 큰 정수의 인수 분해 작업의 계산 복잡성을 기반으로 한 개방형 키 암호화 알고리즘입니다. RSA Cryptosystem은 암호화 및 디지털 서명 모두에 적합한 첫 번째 시스템이되었습니다.

    창조의 역사

Wheyfield의 기사는 Diffy and Martin Hellman "Cryptographies의 새로운 목적지"는 1976 년 11 월에 출판 된 개방형 키 암호화 시스템의 기초를 제시 한 암호화 시스템의 아이디어를 거쳤습니다. Diffi-Hellman 알고리즘은 나중에 개발하여 두 당사자가 보호되지 않은 통신 채널을 사용하여 공통 비밀 키를 얻을 수있었습니다. 그러나이 알고리즘은 인증의 문제를 해결하지 못했습니다. 추가 자금이 없으면 사용자는 공통 비밀 키를 생성하는 사람이 누구인지 확신 할 수 없었습니다.

이 기사를 공부했는데, 3 명의 과학자들 (Ronald Linn Rivest), Adi Shamir and Leonard Adoleman (MIT)의 Adi Shamir 및 Leonard Adoleman (영어 레오나드 adleman)은 Witfield - Formulated Dipfoot를 구현할 수있는 수학적 기능을 찾기 시작했습니다. 그리고 열린 키 암호화 시스템의 Martin Hellman 모델. 가능한 40 개가 넘는 옵션을 취한 후에는 큰 간단한 숫자를 찾는 것이 얼마나 쉬운 지의 차이점을 기반으로 알고리즘을 찾고 이후에 얻은 두 개의 큰 소수의 요인에 대한 작업을 놓는 것이 얼마나 어려울 수 있는지에 따라 알고리즘을 찾았습니다. 이름 RSA. 이 시스템은 제작자 이름의 첫 글자에 따라 이름이 지정되었습니다.

    알고리즘 설명

비대칭 알고리즘의 첫 번째 단계는 열기 및 폐쇄 및 열린 키를 "전세계"로 배포하는 한 쌍의 키를 만드는 것입니다.

      키 만들기

RSA 알고리즘의 경우 키 생성 단계는 다음 작업으로 구성됩니다.

번호를 열기 지수라고합니다

      암호화 및 암호 해독

보낸 사람이 수신자에게 메시지를 보내고 싶다고 가정합니다.

메시지는 0에서, 즉 범위의 정수입니다. ...에 그림 1은 RSA 알고리즘 다이어그램을 보여줍니다.

그림 1 - RSA 알고리즘 구성표

발신자 알고리즘 :

받는 사람 알고리즘 :

RSA 방식이 기반 인 방정식 (1) 및 (2)는 세트의 상호 역 변환을 결정합니다.

      사용 예

표 1은 RSA 알고리즘을 사용하는 예를 보여줍니다. 보낸 사람은 암호화 된 메시지 "111111"및받는 사람이 닫힌 키를 사용하여받는 사람을 보냈습니다.

표 1 - RSA 알고리즘의 단계적 구현

작동 설명

작업 결과

키 생성

두 개의 소수를 선택하십시오

모듈을 계산하십시오

오일러 기능을 계산하십시오

열린 지수를 선택하십시오

비밀 지수를 계산하십시오

암호화

암호화 텍스트를 선택하십시오

암호열을 계산합니다

암호 해독

소스 메시지를 계산하십시오

결론

이 초록에서는 비대칭 RSA 암호화의 알고리즘이 자세히 고려되었다. 생성의 역사가 설명되었으며, 키, 암호화 및 암호 해독을 생성하기위한 알고리즘이 설명됩니다. 또한 RSA 알고리즘의 실제 사용의 예를 제시했습니다.

사용 된 소스 목록

    Semenov Yu.a. 인터넷 프로토콜 // m. : Prospekt, 2011. - 114 p.

    Belyaev A.V. 정보 보호 방법 및 정보 보호 수단 / / CHF SPBSTU, 2010. - 142C.

    VIBO M 현대 암호화. 이론과 실습 // m. : 윌리엄스, 2005. - 768 p.

    Schneier B. 적용 암호화. 프로토콜, 알고리즘, 소스 텍스트 // m. : Triumph, 2002. - 816 p.

    RSA 알고리즘 // 인터넷 자료 : http://ru.wikipedia.org/wiki/rsa.

Ravest - Shamir - Adleman (RSA)의 제도는 현재 광범위한 인식을 받았고 실제로 오픈 키 암호화 체계를 사용한 유일한 사람입니다.

RSA 방식은 열린 텍스트가있는 블록 암호이며 암호화 된 텍스트가 0에서부터 0까지의 범위에서 정수 인 블록 암호입니다. - 일부는 1 피.

열린 텍스트는 블록별로 암호화되며 각각의 이진 값이 포함되며 지정된 숫자의 작은 수 피. 즉, 블록 길이가 더 많은 log2 ( ")가 아니어야 함을 의미합니다. 실제로 블록 길이가 동일하게 선택됩니다 2 K. 비트, 어디에서 2 지구, Shamir 및 Adleman이 개발 한 계획에 이르기까지는 학위의 표현을 기반으로합니다. 열린 텍스트 단위 M 및 암호화 된 텍스트 C 블록에 대한 암호화 및 암호 해독은 다음 수식으로 표현 될 수 있습니다.

보낸 사람과 수신자는 모두 가치를 알아야합니다. 피. 보낸 사람은 가치를 알고 있습니다 이자형, 수령인 만 알려져 있습니다 디. 따라서이 방식은 열린 키 암호화 알고리즘 ku \u003d (E, P), 및 kr \u003d 개인 키 (D, P).

이 알고리즘을 사용하여 개방형 키를 암호화하는 데 사용하려면 다음 요구 사항을 수행해야합니다.

그런 값이 있어야합니다 e, D.피,m ed \u003d. m (mod. 피) 모든 mp.

비교적 쉽게 IVT를 계산해야합니다 C1과 함께 m p의 모든 값에 대해.

그것을 결정하는 것은 거의 불가능해야합니다 디. 이용 가능합니다 그녀는 p입니다.

우리는 첫 번째 요구 사항을 먼저 분석하고 나머지는 나중에 고려할 것입니다. 유형의 비율을 찾아야합니다

여기서는 불가능하기 때문에, 오일러 정리의 결과는 적합합니다 : 그러한 두 개의 간단한 숫자 아르 자형큐. 그리고 그러한 두 개의 정수 피트,n \u003d pqn0 및 임의의 정수 ...에 다음과 같은 비율이 수행됩니다.

여기서 f (i)는 euler의 기능이며, 그 값은 양의 정수의 수와 동일하다. 와 상호 간단한 것 피.

간단한 경우 아르 자형큐. 우리는 F가 있습니다. (PQ) - (PQ. - 1 ) (Q - 하나). 따라서 필요한 비율이 얻어진다

이것은 다음과 같은 관계와 같습니다.

그. 오두막. 모듈 f (i)에 의해 상호 반전된다. 공제 수업에서 산술 규칙에 따라 이것은 만 일어날 수 있습니다. 디. (그리고 결과적으로 이자형) F (및)와 상호 간단합니다. 동등한 기록 (f (/ 7), d) \u003d.

이제 우리는 RSA 계획을 제시 할 모든 것을 가지고 있습니다. 회로 구성 요소는 다음과 같습니다.

아르 자형큐. - 두 개의 간단한 숫자 (비밀, 선택);

양전자 (개방형, 계산);

이자형.그 (f (i), 이자형) \u003d 1.1 E.

디. = e L. (mod f (/?)) (비밀, 계산).

개인 열쇠 폴드에서 (D, N), 옥외가 있습니다. (e, p).사용자 A가 공개 키를 게시했고 이제는 사용자가 메시지를 보내려고합니다.

그런 다음 사용자가 암호화 된 메시지를 계산합니다.

이 암호화 된 텍스트를 수신하고 사용자를 해독하고 해독하고 계산합니다.

이 알고리즘에 대한 이론적 근거를 여기에서 가져 오는 것이 좋습니다. 선정되었습니다 오두막. 그런

그것은 망할 것을 의미합니다 kC\u003e (P) +. 그러나 오일러 정리의 결과로, 그러한 두 개의 간단한 숫자 아르 자형qu. 정수 n \u003d pqn. M, 그 관계가 수행됩니다

따라서

지금은 가지고있다

표 10.1은 RSA 알고리즘을 요약 할 것이다. 10.1은 응용 프로그램의 예를 보여줍니다. 이 예에서 키는 다음과 같이 계산됩니다.

  • 1. 두 개의 간단한 숫자가 선택됩니다. p-7 WQ- 17.
  • 2. 계산 n \u003d pq. \u003d 7 x 17 \u003d 119.
  • 3. F.C. 계산됩니다 (p) - (p -) (q - 1) = 96.
  • 4.을 선택하십시오 이자형.상호 간단한 (피) \u003d 96 및 f (i)보다 작음; 이 경우 \u003d 5.
  • 5. 정의 된 디,드. \u003d 1 (mod 96) 및 d 96. 해당 값이 될 것입니다 d \u003d. 77, 77 x 5 \u003d 385 \u003d 4 x 96 + 1.
  • 결과적으로, 개방 키 KU \u003d (5, 119) 및 KR \u003d (77, 119) 키가 얻어진다.

이 예에서는 도입 된 열린 열린 텍스트 m \u003d 19와 함께 이러한 키를 사용하는 것을 보여줍니다. 암호화 19를 사용하면 다섯 번째 정도로 내장되어 있으며, 이는 2 476 099를 제공합니다. 119를 구분 한 결과, 잔류 물이 결정됩니다. 결과적으로, 19 5 \u003d 66 (MOD 119), 따라서 암호화 된 텍스트는 66이 될 것입니다. 해독 후에


무화과. 10.1.

표 10.1.



주제에 관한 기사 :