전자 데이터를 암호화하는 최신 기술. 암호화 알고리즘의 목적과 구조

세르게이 파나센코,
Ankad의 소프트웨어 개발 부서 책임자,
[이메일 보호됨]

기본 개념

공개된 데이터를 암호화된 데이터로 변환하거나 그 반대로 변환하는 프로세스를 일반적으로 암호화라고 하며, 이 프로세스의 두 가지 구성 요소를 각각 암호화 및 암호 해독이라고 합니다. 수학적으로 이 변환은 원래 정보를 사용하여 작업을 설명하는 다음 종속성으로 표현됩니다.

C = Ek1(M)

M" = Dk2(C),

여기서 M(메시지)은 공개 정보(정보 보안에 관한 문헌에서는 종종 "소스 텍스트"라고 함)입니다.
C(암호 텍스트) - 암호화 결과 얻은 암호 텍스트(또는 암호)입니다.
E(암호화) - 소스 텍스트에 대해 암호화 변환을 수행하는 암호화 기능입니다.
k1(키) - 암호화 키라고 불리는 함수 E의 매개변수입니다.
M" - 암호 해독 결과 얻은 정보
D(복호화) - 암호문에 대해 역암호 변환을 수행하는 복호화 기능입니다.
k2는 정보를 해독하는 데 사용되는 키입니다.

GOST 28147-89 표준(대칭 암호화 알고리즘)에서 "키" 개념은 다음과 같이 정의됩니다. "암호 변환 알고리즘의 일부 매개변수에 대한 특정 비밀 상태로, 가능한 변환 집합에서 하나의 변환을 선택하도록 보장합니다. 주어진 알고리즘.” 즉, 키는 암호화 알고리즘의 결과를 변경할 수 있는 고유한 요소입니다. 동일한 소스 텍스트는 다른 키를 사용할 때 다르게 암호화됩니다.

복호화 결과가 원본 메시지와 일치하려면(즉, M" = M인 경우) 두 가지 조건이 동시에 충족되어야 합니다. 첫째, 복호화 함수 D가 암호화 함수 E와 일치해야 합니다. 둘째, 복호화 키 k2가 암호화와 일치해야 합니다. 키 k1.

암호화에 강력한 암호화 알고리즘이 사용된 경우 올바른 키 k2가 없으면 M" = M을 얻는 것이 불가능합니다. 암호화 강도는 암호화 알고리즘의 주요 특징이며 주로 원본을 얻는 복잡성 정도를 나타냅니다. 키 k2가 없는 암호화된 텍스트의 텍스트입니다.

암호화 알고리즘은 대칭 암호화와 비대칭 암호화라는 두 가지 범주로 나눌 수 있습니다. 전자의 경우 암호화 키와 복호화 키의 비율은 k1 = k2 = k로 정의됩니다(즉, 함수 E와 D는 동일한 암호화 키를 사용함). 비대칭 암호화의 경우 암호화 키 k1은 역변환이 불가능한 방식으로 키 k2에서 계산됩니다(예: k1 = ak2 mod p 공식(a 및 p는 사용된 알고리즘의 매개변수)).

대칭 암호화

대칭 암호화 알고리즘의 역사는 고대로 거슬러 올라갑니다. 기원전 1세기 로마 황제 가이우스 율리우스 카이사르가 사용했던 정보 숨기기 방법이었습니다. 즉, 그가 발명한 알고리즘은 "카이사르 암호 시스템"으로 알려져 있습니다.

현재 가장 잘 알려진 대칭형 암호화 알고리즘은 1977년에 개발된 DES(Data Encryption Standard)이다. 최근까지 미국 정부가 다양한 데이터 암호화 시스템 구현에 사용을 권장했기 때문에 이는 '미국 표준'이었다. DES는 원래 10~15년 동안만 사용할 계획이었음에도 불구하고 이를 교체하려는 시도는 1997년에야 시작되었습니다.

우리는 DES를 자세히 고려하지는 않지만(추가 자료 목록에 있는 거의 모든 책에 이에 대한 자세한 설명이 있음) 보다 현대적인 암호화 알고리즘을 다룰 것입니다. 암호화 표준을 변경하는 주된 이유는 암호화 강도가 상대적으로 약하기 때문이라는 점만 주목할 가치가 있습니다. 그 이유는 DES 키 길이가 56개의 유효 비트에 불과하기 때문입니다. 강력한 암호화 알고리즘은 가능한 모든 암호화 키를 시도하면 해독될 수 있는 것으로 알려져 있습니다(소위 무차별 대입 공격). 각각 초당 100만 개의 키를 계산하는 100만 개의 프로세서 클러스터가 거의 20시간 안에 256개의 DES 키 변형을 검사한다는 것은 쉽게 계산할 수 있습니다. 그리고 이러한 컴퓨팅 성능은 오늘날의 표준으로 볼 때 매우 현실적이기 때문에 분명합니다. 56비트 키는 너무 짧고 DES 알고리즘을 더 강력한 것으로 교체해야 합니다.

오늘날 국내 표준 GOST 28147-89와 새로운 미국 암호화 표준인 AES(Advanced Encryption Standard)라는 두 가지 강력한 최신 암호화 알고리즘이 점점 더 많이 사용되고 있습니다.

표준 GOST 28147-89

GOST 28147-89(그림 1)에 정의된 알고리즘의 암호화 키 길이는 256비트입니다. 이는 64비트 블록(이러한 알고리즘을 블록 알고리즘이라고 함)으로 정보를 암호화한 다음 32비트의 두 하위 블록(N1 및 N2)으로 나눕니다. 하위 블록 N1은 특정 방식으로 처리된 후 해당 값이 하위 블록 N2의 값과 추가되고(추가는 모듈로 2로 수행됩니다. 즉, 논리적 XOR 연산이 적용됨 - "배타적 또는") 하위 블록이 교체됩니다. 이 변환은 알고리즘의 작동 모드에 따라 특정 횟수("라운드"), 즉 16회 또는 32회 수행됩니다. 각 라운드마다 두 가지 작업이 수행됩니다.

첫 번째는 키잉입니다. 서브블록 N1의 내용은 키 Kx의 32비트 부분과 함께 모듈로 2로 추가됩니다. 전체 암호화 키는 K0, K1, K2, K3, K4, K5, K6, K7 등 32비트 하위 키의 연결로 표시됩니다. 암호화 프로세스 중에는 라운드 수와 알고리즘 작동 모드에 따라 이러한 하위 키 중 하나가 사용됩니다.

두 번째 작업은 테이블 교체입니다. 키잉 후, 서브블록 N1은 4비트의 8개 부분으로 나뉘며, 각 값은 서브블록의 이 부분에 대한 대체 테이블에 따라 대체됩니다. 그런 다음 하위 블록은 11비트만큼 왼쪽으로 비트 회전됩니다.

테이블 대체(대체 상자 - S-box)는 현대 암호화 알고리즘에서 자주 사용되므로 이러한 작업이 어떻게 구성되어 있는지 설명할 가치가 있습니다. 블록의 출력 값이 표에 기록됩니다. 특정 차원(여기서는 4비트)의 데이터 블록에는 출력 값의 개수를 결정하는 자체 수치 표현이 있습니다. 예를 들어 S-box가 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1이고 4비트 블록 “0100”으로 보인다면 입력(값 4)에 도달하면 표에 따르면 출력 값은 15, 즉 "1111"(0 a 4, 1 a 11, 2 a 2 ...)이 됩니다.

GOST 28147-89에 의해 정의된 알고리즘은 단순 교체, 감마, 피드백이 있는 감마 및 모방 첨부 생성의 네 가지 작동 모드를 제공합니다. 위에서 설명한 것과 동일한 암호화 변환을 사용하지만 모드의 목적이 다르기 때문에 이 변환은 모드마다 다르게 수행됩니다.

모드 중 쉬운 교체각 64비트 정보 블록을 암호화하기 위해 위에서 설명한 32라운드가 수행됩니다. 이 경우 32비트 하위 키는 다음 순서로 사용됩니다.

K0, K1, K2, K3, K4, K5, K6, K7, K0, K1 등 - 1~24라운드

K7, K6, K5, K4, K3, K2, K1, K0 - 25~32라운드.

이 모드의 암호 해독은 정확히 동일한 방식으로 수행되지만 하위 키 사용 순서는 약간 다릅니다.

K0, K1, K2, K3, K4, K5, K6, K7 - 1~8라운드

K7, K6, K5, K4, K3, K2, K1, K0, K7, K6 등 - 9~32라운드.

모든 블록은 서로 독립적으로 암호화됩니다. 즉, 각 블록의 암호화 결과는 해당 내용(원본 텍스트의 해당 블록)에만 의존합니다. 원본(일반) 텍스트의 동일한 블록이 여러 개 있는 경우 해당 암호문 블록도 동일하므로 암호를 해독하려는 암호 분석가에게 유용한 추가 정보를 제공합니다. 따라서 이 모드는 주로 암호화 키 자체를 암호화하는 데 사용됩니다(여러 가지 이유로 키가 서로 암호화되는 다중 키 체계가 구현되는 경우가 많습니다). 정보 자체를 암호화하기 위한 다른 두 가지 작동 모드(감마 및 피드백이 있는 감마)가 있습니다.

안에 감마 모드각 일반 텍스트 블록은 64비트 암호 감마 블록에 모듈로 2로 비트 단위로 추가됩니다. 감마 암호는 레지스터 N1 및 N2를 사용한 특정 작업의 결과로 얻은 특수 시퀀스입니다(그림 1 참조).

1. 초기 채우기는 레지스터 N1 및 N2(동기화 메시지라고 하는 64비트 값)에 기록됩니다.

2. 레지스터 N1 및 N2의 내용(이 경우 동기화 메시지)은 단순 교체 모드에서 암호화됩니다.

3. 레지스터 N1의 내용은 상수 C1 = 224 + 216 + 28 + 24를 사용하여 모듈로(232 - 1)로 추가되고 추가 결과는 레지스터 N1에 기록됩니다.

4. 레지스터 N2의 내용은 상수 C2 = 224 + 216 + 28 + 1을 사용하여 모듈로 232로 추가되고 추가 결과는 레지스터 N2에 기록됩니다.

5. 레지스터 N1 및 N2의 내용은 암호의 64비트 감마 블록으로 출력됩니다(이 경우 N1 및 N2가 첫 번째 감마 블록을 형성함).

다음 감마 블록이 필요한 경우(즉, 암호화 또는 복호화를 계속해야 하는 경우) 2단계로 돌아갑니다.

암호 해독을 위해 감마가 비슷한 방식으로 생성된 다음 암호문과 감마 비트가 다시 XOR됩니다. 이 작업은 되돌릴 수 있으므로 올바르게 전개된 스케일의 경우 원본 텍스트(표)를 얻습니다.

감마 모드의 암호화 및 복호화

감마를 해독하는 데 필요한 암호를 개발하려면 암호를 해독하는 사용자는 정보를 암호화할 때 사용된 동기화 메시지의 키와 값이 동일해야 합니다. 그렇지 않으면 암호화된 텍스트에서 원본 텍스트를 얻을 수 없습니다.

대부분의 GOST 28147-89 알고리즘 구현에서 동기화 메시지는 비밀이 아니지만 동기화 메시지가 암호화 키와 동일한 비밀 요소인 시스템이 있습니다. 이러한 시스템의 경우 알고리즘의 유효 키 길이(256비트)는 비밀 동기화 메시지의 또 다른 64비트만큼 증가하며, 이는 키 요소로도 간주될 수 있습니다.

피드백 감마 모드에서는 N1과 N2 레지스터를 채우기 위해 두 번째 블록부터 시작하여 이전 감마 블록을 사용하지 않고 이전 평문 블록을 암호화한 결과를 사용한다(그림 2). 이 모드의 첫 번째 블록은 이전 블록과 완전히 유사하게 생성됩니다.

쌀. 2. 피드백이 있는 감마 모드에서 암호 감마 개발.

모드를 고려하면 모방 접두사 생성, 생성 주체의 개념을 정의해야 한다. 접두사는 암호화 키를 사용하여 계산되고 메시지의 무결성을 확인하도록 설계된 암호화 체크섬입니다. 모방 접두어를 생성할 때 다음 작업이 수행됩니다. 모방 접두어가 계산되는 정보 배열의 첫 번째 64비트 블록이 레지스터 N1 및 N2에 기록되고 축소 단순 대체 모드( 32라운드 중 처음 16라운드가 수행됩니다. 결과 결과는 다음 정보 블록과 모듈로 2로 합산되고 결과는 N1 및 N2에 저장됩니다.

이 주기는 마지막 정보 블록까지 반복됩니다. N1 및 N2 레지스터의 결과 64비트 콘텐츠 또는 이러한 변환의 결과로 나온 일부를 모방 접두사라고 합니다. 모방 접두사의 크기는 메시지의 필요한 신뢰성에 따라 선택됩니다. 모방 접두사의 길이가 r 비트인 경우 메시지의 변경 사항이 눈에 띄지 않을 확률은 2-r과 같습니다. 32비트 모방 접두사가 사용됩니다. 즉, 레지스터 내용의 절반입니다. 다른 체크섬과 마찬가지로 모방 첨부 파일도 우발적인 정보 왜곡을 방지하기 위한 것이므로 이것으로 충분합니다. 데이터의 의도적인 수정을 방지하기 위해 주로 전자 디지털 서명과 같은 다른 암호화 방법이 사용됩니다.

정보를 교환할 때 모방 접두어는 일종의 추가 제어 수단 역할을 합니다. 정보가 암호화되어 암호문과 함께 전송될 때 일반 텍스트에 대해 계산됩니다. 복호화 후, 모방 접두어의 새로운 값이 계산되어 전송된 값과 비교됩니다. 값이 일치하지 않으면 전송 중에 암호문이 손상되었거나 암호 해독 중에 잘못된 키가 사용되었음을 의미합니다. 모방 접두사는 다중 키 구성표를 사용할 때 키 정보의 올바른 암호 해독을 확인하는 데 특히 유용합니다.

GOST 28147-89 알고리즘은 매우 강력한 알고리즘으로 간주됩니다. 현재 위에서 언급한 "무차별 대입" 방법보다 더 효과적인 공개 방법은 제안되지 않았습니다. 높은 보안은 주로 256비트의 긴 키 길이로 인해 달성됩니다. 비밀 동기화 메시지를 사용하면 유효 키 길이가 320비트로 늘어나고, 대체 테이블을 암호화하면 추가 비트가 추가됩니다. 또한 암호화 강도는 변환 라운드 수에 따라 달라지며, GOST 28147-89에 따르면 변환 라운드 수는 32입니다(입력 데이터 분산의 전체 효과는 8라운드 후에 달성됩니다).

AES 표준

오랫동안 비밀로 남아 있던 GOST 28147-89 알고리즘과 달리 DES를 대체하기 위해 고안된 미국 AES 암호화 표준은 관심 있는 모든 조직과 개인이 후보 알고리즘을 연구하고 논평할 수 있는 공개 경쟁을 통해 선정되었습니다.

DES를 대체하기 위한 경쟁은 1997년 미국 국립 표준 기술 연구소(NIST - 국립 표준 기술 연구소)에 의해 발표되었습니다. 암호화 분야의 유명 조직(RSA 보안, Counterpane 등)과 개인이 개발한 15개의 후보 알고리즘이 대회에 제출되었습니다. 대회 결과는 2000년 10월에 발표되었습니다. 우승자는 벨기에 출신의 두 암호학자 Vincent Rijmen과 Joan Daemen이 개발한 Rijndael 알고리즘이었습니다.

Rijndael 알고리즘은 "Feistel 네트워크"라고 불리는 구조를 가진 가장 잘 알려진 대칭 암호화 알고리즘과 유사하지 않으며 러시아 GOST 28147-89와 유사합니다. Feistel 네트워크의 특징은 입력 값이 두 개 이상의 하위 블록으로 나뉘며 각 라운드에서 그 일부가 특정 법칙에 따라 처리된 후 처리되지 않은 하위 블록에 겹쳐진다는 것입니다(그림 1 참조).

국내 암호화 표준과 달리 Rijndael 알고리즘은 4X4, 4X6 또는 4X8 크기의 2차원 바이트 배열 형태로 데이터 블록을 나타냅니다(암호화된 정보 블록의 여러 고정 크기 사용이 허용됨). 모든 작업은 배열의 개별 바이트뿐만 아니라 독립적인 열과 행에서도 수행됩니다.

Rijndael 알고리즘은 네 가지 변환을 수행합니다. BS(ByteSub) - 배열의 각 바이트에 대한 테이블 교체(그림 3); SR(ShiftRow) - 배열 행의 이동(그림 4) 이 작업을 사용하면 첫 번째 줄은 변경되지 않고 나머지 줄은 배열 크기에 따라 고정된 바이트 수만큼 순환적으로 바이트 단위로 왼쪽으로 이동됩니다. 예를 들어, 4X4 배열의 경우 라인 2, 3, 4는 각각 1, 2, 3바이트씩 이동됩니다. 다음은 MC(MixColumn)입니다. 이는 특정 규칙에 따라 각 열에 고정 행렬 c(x)를 곱하는 독립 배열 열(그림 5)에 대한 작업입니다. 마지막으로 AK(AddRoundKey) - 키를 추가합니다. 배열의 각 비트는 라운드 키의 해당 비트와 모듈로 2로 추가되며, 이는 차례로 암호화 키에서 특정 방식으로 계산됩니다(그림 6).


쌀. 3. 학사 운영.

쌀. 4. SR 작전.

쌀. 5. MC작전.

Rijndael 알고리즘의 암호화 라운드 수(R)는 가변적이며(10, 12 또는 14 라운드) 블록 크기와 암호화 키에 따라 다릅니다(키에 대해 여러 고정 크기도 있음).

복호화는 다음과 같은 역방향 작업을 통해 수행됩니다. 테이블 반전 및 테이블 교체는 암호화 중에 사용된 테이블을 기준으로 역 테이블에서 수행됩니다. SR의 반대 작업은 행을 왼쪽이 아닌 오른쪽으로 회전하는 것입니다. MC에 대한 역연산은 동일한 규칙을 사용하여 조건 c(x) * d(x) = 1을 충족하는 다른 행렬 d(x)를 곱하는 것입니다. 키 AK를 추가하는 것은 XOR만 사용하기 때문에 그 자체의 역입니다. 작업. 이러한 역방향 작업은 암호화 중에 사용된 것과 반대 순서로 해독 중에 적용됩니다.

Rijndael은 다른 알고리즘에 비해 여러 가지 장점으로 인해 데이터 암호화의 새로운 표준이 되었습니다. 우선, 소프트웨어와 하드웨어 구현 모두 모든 플랫폼에서 높은 암호화 속도를 제공합니다. 경쟁에 제출된 다른 알고리즘에 비해 계산 병렬화 가능성이 비교할 수 없을 정도로 우수하다는 점이 특징입니다. 또한 작동에 필요한 리소스 요구 사항이 최소화되어 컴퓨팅 기능이 제한된 장치에서 사용할 때 중요합니다.

알고리즘의 유일한 단점은 고유한 틀에 얽매이지 않는 방식으로 간주될 수 있습니다. 사실 Feistel 네트워크를 기반으로 한 알고리즘의 속성은 잘 연구되어 있는 반면, Rijndael은 널리 사용되기 시작한 후 일정 시간이 지난 후에야 발견할 수 있는 숨겨진 취약점을 포함할 수 있습니다.

비대칭 암호화

이미 언급한 바와 같이 비대칭 암호화 알고리즘은 두 개의 키, 즉 k1 - 암호화 키 또는 공개와 k2 - 암호 해독 키 또는 비밀을 사용합니다. 공개 키는 비밀 k1 = f(k2)에서 계산됩니다.

비대칭 암호화 알고리즘은 단방향 함수 사용을 기반으로 합니다. 정의에 따르면, 함수 y = f(x)는 다음과 같은 경우 단방향입니다. x의 가능한 모든 값을 계산하기 쉽고 대부분의 가능한 y 값에 대해 y가 되도록 x 값을 계산하는 것은 매우 어렵습니다. = 에프(엑스).

단방향 함수의 예는 두 개의 큰 숫자의 곱셈입니다: N = P*Q. 그 자체로 이러한 곱셈은 간단한 연산입니다. 그러나 현대 추정에 따르면 인수분해라고 불리는 역함수(N을 두 개의 큰 요소로 분해)는 다소 복잡한 수학적 문제입니다. 예를 들어, P에서 664비트 차원을 갖는 인수분해 N은 다음과 같습니다. Q에는 약 1023개의 연산이 필요하며, 알려진 a, p 및 y(a와 p의 동일한 차원 사용)를 사용하여 모듈러 지수 y = ax mod p에 대해 x를 역으로 계산하려면 약 1026개의 연산을 수행해야 합니다. 주어진 마지막 예는 이산 로그 문제(DLP)라고 하며 이러한 종류의 함수는 전자 디지털 서명을 생성하는 데 사용되는 알고리즘뿐만 아니라 비대칭 암호화 알고리즘에도 자주 사용됩니다.

비대칭 암호화에 사용되는 또 다른 중요한 기능 클래스는 단방향 백도어 기능입니다. 그들의 정의는 함수가 단방향이고 역함수 x = f-1(y)를 효율적으로 계산할 수 있는 경우 백도어에서 단방향이라고 명시합니다. 즉, "백도어"(일부 비밀 번호, 비대칭 암호화에 적용되는 경우) 알고리즘 - 비밀 키의 값).

널리 사용되는 비대칭 암호화 알고리즘 RSA에는 단방향 백도어 기능이 사용됩니다.

RSA 알고리즘

1978년 세 명의 작가(Rivest, Shamir, Adleman)가 개발한 이 게임은 개발자 성의 첫 글자를 따서 이름이 붙여졌습니다. 알고리즘의 신뢰성은 큰 숫자를 인수분해하고 이산 로그를 계산하는 어려움에 기반합니다. RSA 알고리즘의 주요 매개변수는 시스템의 모든 계산을 수행하는 데 사용되는 시스템 모듈 N이며 N = P*Q입니다(P와 Q는 일반적으로 동일한 차원의 비밀 난수 소수입니다).

비밀 키 k2는 무작위로 선택되며 다음 조건을 충족해야 합니다.

1

여기서 GCD는 최대 공약수입니다. 즉, k1은 오일러 함수 F(N)의 값과 서로소여야 하며, 후자는 1에서 N의 서로소와 N 범위의 양의 정수 수와 동일하며 다음과 같이 계산됩니다. F(N) = (P - 1)*(Q - 1).

공개 키 k1은 다음 관계로부터 계산됩니다. (k2*k1) = 1 mod F(N), 이를 위해 일반화된 유클리드 알고리즘(최대 공약수를 계산하는 알고리즘)이 사용됩니다. RSA 알고리즘을 사용한 데이터 블록 M의 암호화는 다음과 같이 수행됩니다. C=M [파워 k1에게]모드 N. RSA를 사용하는 실제 암호 시스템에서는 k1이라는 숫자가 매우 크기 때문에(현재 그 차원은 최대 2048비트에 달할 수 있음) M을 직접 계산합니다. [파워 k1에게]비현실적인. 이를 얻기 위해 M의 반복적인 제곱과 결과의 곱셈의 조합이 사용됩니다.

큰 차원에 대한 이 함수의 반전은 가능하지 않습니다. 즉, 알려진 C, N 및 k1이 주어지면 M을 찾는 것이 불가능합니다. 그러나 비밀 키 k2가 있으면 간단한 변환을 사용하여 M = Ck2 mod N을 계산할 수 있습니다. 분명히 비밀 키 자체 외에도 매개변수 P 및 Q의 비밀성을 보장해야 합니다. 공격자가 해당 값을 획득하면 , 그는 비밀키 k2를 계산할 수 있을 것이다.

어떤 암호화가 더 좋나요?

대칭 암호화의 가장 큰 단점은 키를 "손에서 손으로" 전송해야 한다는 것입니다. 이 단점은 매우 심각합니다. 참가자 수가 무제한인 시스템에서는 대칭 암호화를 사용할 수 없기 때문입니다. 그러나 그렇지 않은 경우 대칭 암호화에는 비대칭 암호화의 심각한 단점을 배경으로 명확하게 보이는 몇 가지 장점이 있습니다.

첫 번째는 리소스 집약적인 작업으로 인해 암호화 및 암호 해독 작업 속도가 느리다는 것입니다. 또 다른 "이론적" 단점은 비대칭 암호화 알고리즘의 암호화 강도가 수학적으로 입증되지 않았다는 것입니다. 이는 주로 이산 로그 문제로 인해 발생합니다. 허용 가능한 시간 내에 솔루션이 불가능하다는 것이 아직 입증되지 않았습니다. 공개 키가 대체되지 않도록 보호해야 하기 때문에 불필요한 어려움도 발생합니다. 합법적인 사용자의 공개 키를 대체하면 공격자는 자신의 공개 키로 중요한 메시지를 암호화한 후 개인 키로 쉽게 해독할 수 있습니다.

그러나 이러한 단점이 비대칭 암호화 알고리즘의 광범위한 사용을 막지는 못합니다. 오늘날 공개 키 인증을 지원하고 대칭 및 비대칭 암호화 알고리즘을 결합하는 암호화 시스템이 있습니다. 그러나 이것은 별도의 기사에 대한 주제입니다.

추가 정보 출처

암호화에 진지하게 관심이 있는 독자들에게 저자는 다음 책의 도움을 받아 시야를 넓힐 것을 권장합니다.

  1. Brassard J. “현대 암호학.”
  2. Petrov A. A. "컴퓨터 보안: 암호화 보호 방법."
  3. Romanets Yu. V., Timofeev P. A., Shangin V. F. "현대 컴퓨터 시스템의 정보 보호."
  4. Sokolov A.V., Shangin V.F. "분산된 기업 네트워크 및 시스템의 정보 보호."

암호화 알고리즘에 대한 전체 설명은 다음 문서에서 확인할 수 있습니다.

  1. GOST 28147-89. 정보처리시스템. 암호화 보호. 암호화 변환 알고리즘. - M.: 소련 국가 표준, 1989.
  2. AES 알고리즘: http://www.nist.gov/ae.
  3. RSA 알고리즘: http://www.rsasecurity.com/rsalabs/pkcs/pkcs-1.

당사 소프트웨어의 주요 기능은 데이터 암호화이기 때문에 암호화의 특정 측면에 관한 질문을 자주 받습니다. 우리는 가장 자주 묻는 질문을 하나의 문서로 수집하기로 결정하고 가장 상세하면서도 불필요한 정보 답변으로 과부하되지 않도록 노력했습니다.

1. 암호화란 무엇입니까?

암호화는 적의 지능적인 행동으로부터 정보를 보호하기 위해 정보의 변형을 연구하는 수학의 한 분야인 이론적 과학 분야입니다.

2. 암호화 알고리즘이란 무엇입니까?

암호화 알고리즘은 정보를 공개 상태에서 암호화된 상태(암호화)로 변환하고, 반대로 암호화된 상태에서 공개 상태(암호화)로 변환하는 프로세스를 결정하는 일련의 논리적 규칙입니다.

암호화 알고리즘은 개별 과학자와 과학 팀 모두의 이론적 연구 결과로 나타납니다.

3. 암호화는 데이터를 어떻게 보호합니까?

암호화를 이용한 데이터 보호의 기본 원칙은 데이터를 암호화하는 것입니다. 외부인에게 암호화된 데이터는 의미 없는 문자 집합인 "정보 쓰레기"처럼 보입니다. 따라서 암호화된 형태의 정보가 공격자에게 도달하면 공격자는 해당 정보를 사용할 수 없게 됩니다.

4. 어떤 암호화 알고리즘이 가장 강력합니까?

원칙적으로 암호화 분야의 알려진 전문가가 제안한 암호화 알고리즘은 달리 입증될 때까지 강력한 것으로 간주됩니다.

일반적으로 새로 등장하는 모든 암호화 알고리즘은 대중이 사용할 수 있도록 공개되며 전문 암호화 연구 센터에서 포괄적으로 연구됩니다. 이러한 연구 결과는 대중의 소비를 위해 출판되기도 합니다.

5. 암호화 키란 무엇입니까?

암호화 키는 무작위, 의사 무작위 또는 특별히 형성된 비트 시퀀스로, 암호화 알고리즘의 가변 매개변수입니다.

즉, 동일한 정보를 동일한 알고리즘으로 암호화하지만 키가 다르면 결과도 달라집니다.

암호화 키에는 한 가지 필수 특성이 있습니다. 길이는 일반적으로 비트 단위로 측정됩니다.

6. 암호화 알고리즘은 무엇입니까?

암호화 알고리즘은 대칭 및 비대칭(또는 비대칭)의 두 가지 큰 클래스로 나뉩니다.

대칭 암호화 알고리즘은 동일한 키를 사용하여 정보를 암호화하고 해독합니다. 이 경우 암호화 키는 비밀이어야 합니다.

대칭 암호화 알고리즘은 일반적으로 구현하기 쉽고 작동하는 데 많은 컴퓨팅 리소스가 필요하지 않습니다. 그러나 예를 들어 두 명의 사용자가 키를 교환해야 하는 경우에는 이러한 알고리즘의 불편함이 나타납니다. 이 경우 사용자는 서로 직접 만나거나 키 전송을 위해 일종의 신뢰할 수 있는 가로채기 방지 채널이 필요하지만 이것이 항상 가능한 것은 아닙니다.

대칭 암호화 알고리즘의 예로는 DES, RC4, RC5, AES, CAST가 있습니다.

비대칭 암호화 알고리즘은 두 개의 키(하나는 암호화용, 다른 하나는 복호화용)를 사용합니다. 이 경우 키 쌍에 대해 이야기합니다. 쌍의 키 중 하나는 공개(모든 사람이 액세스 가능)할 ​​수 있고, 다른 하나는 비밀일 수 있습니다.

비대칭 암호화 알고리즘은 대칭 암호화 알고리즘보다 구현하기가 더 복잡하고 컴퓨팅 리소스를 더 많이 요구하지만 두 사용자 간의 키 교환 문제는 해결하기가 더 쉽습니다.

각 사용자는 자신만의 키 쌍을 생성하고 공개 키를 구독자에게 보낼 수 있습니다. 이 키는 데이터만 암호화할 수 있습니다. 해독하려면 소유자만 보관하는 비밀 키가 필요합니다. 따라서 공개 키를 획득한 공격자는 암호화된 데이터를 해독하는 것이 불가능하기 때문에 그에게 아무것도 제공하지 않습니다.

비대칭 암호화 알고리즘의 예로는 RSA, El-Gamal이 있습니다.

7. 암호화 알고리즘은 어떻게 크랙되나요?

암호화 과학에는 암호화 알고리즘을 깨는 문제, 즉 암호화 키 없이 암호화된 정보에서 공개 정보를 얻는 문제를 연구하는 암호화 분석이라는 하위 섹션이 있습니다.

다양한 암호 분석 기술과 기술이 있으며, 그 중 대부분은 너무 복잡하고 길어서 여기서 재현할 수 없습니다.

언급할 가치가 있는 유일한 방법은 가능한 모든 암호화 키 값을 직접 열거하는 방법(“브루트 포스” 방법이라고도 함)입니다. 이 방법의 핵심은 원하는 키가 선택될 때까지 암호화 키의 가능한 모든 값을 검색하는 것입니다.

8. 암호화 키의 길이는 얼마나 되어야 합니까?

오늘날 대칭 암호화 알고리즘의 경우 128비트(16바이트)가 충분한 암호화 키 길이로 간주됩니다. 1년 안에 가능한 모든 128비트 키를 완전히 열거하려면(무차별 대입 공격) 초당 2억 5,600만 번의 암호화 작업 용량을 갖춘 4.2x1022 프로세서가 필요합니다. 이 프로세서 수의 비용은 3.5x1024 미국 달러입니다(Applied Cryptography의 Bruce Schneier에 따르면).

국제 프로젝트가 있습니다 분산 넷, 그 목적은 인터넷 사용자를 통합하여 암호화 키를 무차별 대입하는 가상 분산 슈퍼컴퓨터를 만드는 것입니다. 최신 64비트 키 크래킹 프로젝트는 1,757일 이내에 완료되었으며 30만 명 이상의 사용자가 참여했으며 모든 프로젝트 컴퓨터의 컴퓨팅 성능은 2GHz의 클럭 속도를 갖춘 거의 50,000개의 AMD Athlon XP 프로세서와 동일했습니다.

암호화 키의 길이를 1비트 늘리면 키 값의 수가 두 배로 늘어나고 결과적으로 검색 시간도 길어진다는 점을 고려해야 합니다. 즉, 위 수치를 바탕으로 1757 * 2일 안에 언뜻 보기에는 128비트 키를 해독할 수 없지만 65비트 키만 해독할 수 있습니다.

9. 암호화 키가 1024비트, 심지어 2048비트라는 이야기도 들었는데 128비트이면 충분하다고 하더군요. 무슨 뜻이에요?

맞습니다. 512, 1024, 2048비트, 때로는 더 긴 암호화 키가 비대칭 암호화 알고리즘에 사용됩니다. 대칭 알고리즘과 완전히 다른 원리를 사용하므로 암호화 키 규모도 다릅니다.

이 질문에 대한 답은 모든 국가의 정보 기관 중 가장 보호되는 비밀입니다. 이론적 관점에서 볼 때, 충분한 길이의 키를 사용하여 알려진 알고리즘을 사용하여 암호화된 데이터를 읽는 것은 불가능합니다(이전 질문 참조). 그러나 국가 비밀 베일 뒤에 무엇이 숨겨져 있는지 누가 알 수 있습니까? 모든 코드를 해독하는 데 사용할 수 있는 정부에 알려진 외계 기술이 있다는 것이 밝혀질 수도 있습니다. :)

자신 있게 말할 수 있는 유일한 것은 단일 국가도, 단일 정보 기관도 이 비밀을 공개하지 않을 것이며, 어떻게든 데이터를 해독하는 것이 가능하더라도 어떤 식으로든 이를 결코 보여주지 않을 것이라는 것입니다.

이 진술을 설명하기 위해 역사적인 예를들 수 있습니다. 제2차 세계대전 중, 영국 총리 윈스턴 처칠은 독일의 메시지를 가로채서 해독한 결과, 코번트리 시가 곧 폭격을 당할 것이라는 사실을 알게 되었습니다. 그럼에도 불구하고 그는 영국 정보부가 그들의 메시지를 해독할 수 있다는 사실을 적군이 알지 못하도록 조치를 취하지 않았습니다. 그 결과, 1940년 11월 14~15일 밤, 코벤트리는 독일 항공기에 의해 파괴되어 수많은 민간인이 사망했습니다. 따라서 처칠에게는 독일 메시지를 해독할 수 있는 정보를 공개하는 데 드는 비용이 수천 명의 인간 생명의 비용보다 높았습니다.

분명히 현대 정치인들에게는 그러한 정보의 가격이 훨씬 더 높기 때문에 우리는 현대 정보 서비스의 기능에 대해 명시적으로든 간접적으로든 아무것도 배우지 못할 것입니다. 따라서 이 질문에 대한 대답이 '예'라고 하더라도 이러한 가능성은 나타나지 않을 가능성이 높습니다.

출처: SecurIT

^ 다시 처음으로 ^

일반적으로 새로운 암호화 알고리즘은 대중이 사용할 수 있도록 게시되고 전문 연구 센터에서 연구됩니다. 이러한 연구 결과는 대중의 소비를 위해 출판되기도 합니다.

대칭 알고리즘
암호화 알고리즘은 대칭형(AES, GOST, Blowfish, CAST, DES)과 비대칭형(RSA, El-Gamal)의 두 가지 큰 클래스로 나뉩니다. 대칭 암호화 알고리즘은 정보를 암호화하고 해독하는 데 동일한 키를 사용하는 반면, 비대칭 알고리즘은 암호화용 키와 암호 해독용 키 두 개를 사용합니다.

암호화된 정보를 다른 위치로 전송해야 하는 경우 암호 해독 키도 전송해야 합니다. 여기서 약점은 데이터 전송 채널입니다. 안전하지 않거나 탭할 경우 암호 해독 키가 공격자의 손에 넘어갈 수 있습니다. 비대칭 알고리즘을 기반으로 하는 시스템에는 이러한 단점이 없습니다. 이러한 시스템의 각 참가자는 공개 키와 비밀 키라는 한 쌍의 키를 갖습니다.

암호화 키
이는 암호화 알고리즘의 가변 매개변수인 비밀번호에서 무작위로 생성되거나 특별히 생성된 비트 시퀀스입니다.
동일한 알고리즘을 사용하지만 다른 키를 사용하여 동일한 데이터를 암호화하면 결과도 달라집니다.

일반적으로 암호화 프로그램(WinRAR, Rohos 등)에서는 사용자가 지정한 비밀번호로 키가 생성됩니다.

암호화 키는 다양한 길이로 제공되며 일반적으로 비트 단위로 측정됩니다. 키 길이가 길어질수록 암호의 이론적 강도도 높아집니다. 실제로 이것은 항상 사실이 아닙니다.

암호학에서 암호화 메커니즘은 미분류 수량으로 간주되며, 공격자는 암호문뿐만 아니라 암호화 알고리즘의 전체 소스코드도 가질 수 있다(Kerkhoff의 법칙). 발생할 수 있는 또 다른 가정은 공격자가 암호화되지 않은(일반) 텍스트의 일부를 알고 있을 수 있다는 것입니다.

암호화 알고리즘의 강점.
암호화 알고리즘은 달리 입증될 때까지 강력한 것으로 간주됩니다. 따라서 암호화 알고리즘이 공개되고, 5년 이상 존재했으며, 심각한 취약점이 발견되지 않았다면 그 강도가 기밀 정보를 보호하는 데 적합하다고 가정할 수 있습니다.

이론적이고 실용적인 내구성.
1949년 K.E. Shannon은 "비밀 시스템의 통신 이론"이라는 기사를 출판했습니다. Shannon은 실용적이고 이론적인 측면에서 암호화 시스템의 강점을 고려했습니다. 이론적 강도에 관한 결론은 여전히 ​​비관적입니다. 키의 길이는 일반 텍스트의 길이와 같아야 합니다.
따라서 Shannon은 암호화 시스템의 실질적인 강점 문제도 고려했습니다. 공격자가 가로채는 메시지를 분석하는 데 시간과 컴퓨팅 리소스가 제한되어 있는 경우 시스템을 신뢰할 수 있습니까?

일반적으로 취약점은 일부 알고리즘을 사용하여 데이터를 암호화하는 프로그램에서 발견됩니다. 이 경우 프로그래머는 프로그램 논리나 암호화 프로토콜에 오류를 범합니다. 덕분에 프로그램 작동 방식(낮은 수준)을 연구하여 궁극적으로 비밀 정보에 액세스할 수 있습니다.

암호화 알고리즘 해킹
공격자가 비밀 키를 계산하고 원래 암호화 알고리즘과 동일한 변환 알고리즘을 수행할 수 있으면 암호화 시스템이 손상된 것으로 간주됩니다. 그리고 이 알고리즘이 실시간으로 실행될 수 있도록 말이죠.

암호화에는 암호화된 메시지를 해킹하거나 위조하는 문제를 연구하는 암호화 분석이라는 하위 섹션이 있습니다. 암호 분석에는 여러 가지 방법과 방법이 있습니다. 가장 널리 사용되는 방법은 암호화 키의 가능한 모든 값을 직접 검색하는 방법(소위 "무차별 대입" 방법)입니다. 이 방법의 핵심은 원하는 키가 선택될 때까지 암호화 키의 가능한 모든 값을 검색하는 것입니다.

실제로 이는 공격자가 다음을 수행해야 함을 의미합니다.

  • 암호화 시스템(예: 프로그램)과 암호화된 메시지의 예를 마음대로 사용하세요.
  • 암호화 프로토콜을 이해합니다. 즉, 프로그램이 데이터를 암호화하는 방법입니다.
  • 이 암호화 시스템의 키를 열거하기 위한 알고리즘을 개발하고 구현합니다.

키가 올바른지 확인하는 방법은 무엇입니까?
그것은 모두 특정 프로그램과 암호화 프로토콜의 구현에 따라 다릅니다. 일반적으로 암호 해독 후 결과가 "쓰레기"인 경우 이는 잘못된 키입니다. 그리고 텍스트가 어느 정도 의미가 있으면(확인할 수 있음) Key가 올바른 것입니다.

암호화 알고리즘
AES (린델). 현재 미국 연방 암호화 표준입니다.

정보를 보호하려면 어떤 암호화 알고리즘을 선택해야 합니까?

2001년 12월 4일 상무부에 의해 표준으로 승인되었습니다. 이 결정은 연방 관보에 게재된 순간(2001년 6월 12일)부터 발효되었습니다. 블록 크기가 128비트인 암호 버전이 표준으로 채택되었습니다.

GOST 28147-8.데이터 암호화 및 데이터 보호에 대한 러시아 연방 표준입니다. 처음에는 분류(OB 또는 SS - 정확히 알 수 없음)가 있었지만 분류는 연속적으로 낮아졌으며 1989년 소련 국가 표준을 통해 알고리즘이 공식적으로 수행될 때 제거되었습니다. 알고리즘은 칩보드로 유지됩니다(아시다시피 칩보드는 지판으로 간주되지 않습니다). 1989년에는 소련의 공식 표준이 되었고, 소련 붕괴 이후에는 러시아 연방의 연방 표준이 되었습니다.

복어키 요소를 생성하기 위한 복잡한 체계는 알고리즘에 대한 무차별 대입 공격을 상당히 복잡하게 만들지 만 키가 자주 변경되고 각 키에 소량의 데이터가 암호화되는 시스템에서는 사용하기에 부적합합니다.

이 알고리즘은 동일한 키를 사용하여 대량의 데이터를 암호화하는 시스템에 가장 적합합니다.

DES미국 연방 암호화 표준 1977-2001. 1977년 미국 연방 표준으로 채택되었습니다. 2001년 12월 새로운 표준의 도입으로 인해 그 지위를 상실하였습니다.

깁스어떤 의미에서는 DES와 유사합니다.

www.codenet.ru/progr/alg/enc
암호화 알고리즘, 검토, 정보, 비교.

http://www.enlight.ru/crypto
비대칭 암호화, 디지털 서명 및 기타 "현대적인" 암호화 시스템에 대한 자료입니다.

알렉산더 벨리카노프,
올가 체반,
Tesline-서비스 SRL.

전 아부다비 은행가 모하마드 가이스 빈 마하 알 마즈루이(Mohammad Ghaith bin Mahah Al Mazroui)는 해독이 불가능하다고 주장하는 코드를 개발했습니다. 아부다비 코드라고 불리는 이 암호는 알 마즈루이가 직접 발명한 일련의 기호를 기반으로 합니다. 그의 코드에서 각 문자는 특별히 고안된 기호로 대체되며 이러한 기호는 세계의 어떤 알려진 언어에도 속하지 않습니다.

어떤 데이터 암호화 알고리즘이 더 안전합니까?

개발자가 Al Mazroui가 "완전히 새로운" 암호 작업을 수행하는 데 1년 반이 걸렸습니다.

매니아에 따르면 누구나 자신만의 코드를 만들 수 있으며 암호의 복잡성은 키의 길이에 따라 결정됩니다. 원칙적으로 욕구, 특정 기술 및 적절한 소프트웨어가 있으면 거의 모든, 심지어 가장 복잡한 암호도 해독될 수 있다고 믿어집니다.

그러나 Al Mazrui는 자신의 창조물이 해독될 수 없으며 오늘날 가장 신뢰할 수 있는 암호라고 확신합니다. Al Mazrouei는 “아부다비 코드로 인코딩된 문서를 해독하는 것은 거의 불가능합니다.”라고 확신합니다.

자신이 옳았다는 것을 증명하기 위해 은행가는 뛰어난 암호해독자, 해커, 암호해독자 모두에게 도전하여 자신의 코드를 해독해 보도록 촉구했습니다.

3. 크립토스(Kryptos)는 미국 조각가 제임스 샌본(James Sanborn)이 1990년 버지니아주 랭글리에 있는 CIA 본부 부지에 설치한 조각품이다. 거기에 적힌 암호화된 메시지는 아직 해독할 수 없습니다.

4. 코드가 인쇄되어 있습니다. 중국 금괴. 1933년 상하이에서 왕 장군에게 7개의 금괴가 지급된 것으로 알려졌습니다. 여기에는 그림, 중국어 문자, 라틴 문자를 포함한 일부 암호화된 메시지가 포함되어 있습니다. 여기에는 미국 은행 중 한 곳에서 발행한 금속 정품 인증서가 포함될 수 있습니다.

TrueCrypt에서 선택할 암호화 알고리즘

5. 베일 암호— 토머스 제퍼슨 베일이 이끄는 금광부 일행이 1820년대 버지니아 주 베드포드 카운티 린치버그 근처에 묻은 마차 2대 분량의 금, 은, 보석의 위치에 대한 정보가 포함된 것으로 추정되는 세 개의 암호화된 메시지입니다. 지금까지 발견되지 않은 보물의 가격은 현대 화폐로 환산하면 3천만 달러 정도가 될 것이다. 특히 암호문의 미스터리는 아직 해결되지 않았으며, 보물의 실제 존재 여부에 대한 문제는 여전히 논란의 여지가 있습니다. 메시지 중 하나가 해독되었습니다. 이는 보물 자체를 설명하고 보물 위치에 대한 일반적인 정보를 제공합니다. 발견되지 않은 나머지 편지에는 책갈피의 정확한 위치와 보물 소유자 목록이 포함될 수 있습니다. (자세한 정보)

6. 보이니치 원고, 종종 세계에서 가장 신비한 책이라고 불립니다. 원고는 고유한 알파벳을 사용하며 약 250페이지로 구성되어 있으며 알려지지 않은 꽃, 벌거벗은 님프 및 점성술 기호를 묘사한 그림이 포함되어 있습니다. 그것은 신성 로마 황제 루돌프 2세가 프라하에서 알려지지 않은 상인으로부터 600두카트(금 약 3.5kg, 오늘날 5만 달러 이상)에 구입한 16세기 말에 처음 나타났습니다. 루돌프 2세부터 이 책은 귀족과 과학자들에게 전해졌고, 17세기 말에 사라졌습니다. 이 원고는 1912년경 미국 서점 윌프리드 보이니치(Wilfrid Voynich)가 구입하면서 다시 나타났습니다. 그의 죽음 이후 원고는 예일 대학교에 기증되었습니다. 영국의 과학자 고든 래그(Gordon Wragg)는 그 책이 영리한 사기라고 믿습니다. 텍스트에는 어떤 언어에도 특징이 없는 기능이 포함되어 있습니다. 반면, 단어의 길이나 글자와 음절이 연결되는 방식 등 일부 특징은 실제 언어에 존재하는 것과 유사하다. Rugg는 "많은 사람들이 이것이 사기라고 보기엔 너무 복잡하고, 그것을 만드는 데 미친 연금술사 몇 년이 걸릴 것이라고 생각합니다"라고 말합니다. 그러나 Rugg는 Cardan의 레티클이라고 불리는 1550년경에 발명된 암호화 장치를 사용하면 그러한 복잡성이 쉽게 달성될 수 있음을 보여줍니다. 이 기호표에서는 구멍이 뚫린 카드를 움직여 단어를 만듭니다. 표에 남은 공백으로 인해 길이가 다른 단어가 표시됩니다. 원고의 음절표에 이러한 격자를 겹쳐서 Rugg는 원고 언어의 특징 중 전부는 아니더라도 많은 부분을 공유하는 언어를 만들었습니다. 그에 따르면 책 전체를 만드는 데 3개월이 걸린다고 한다. (상세정보, 위키피디아)

7. 도라벨라 암호, 영국 작곡가 에드워드 윌리엄 엘가 경(Sir Edward William Elgar)이 1897년에 작곡한 곡입니다. 그는 성 베드로 대성당의 총장인 알프레드 페니(Alfred Penny)의 22세 딸인 친구 도라 페니(Dora Penny)에게 암호화된 형식의 편지를 울버햄튼시에 보냈습니다. 이 코드는 아직 해결되지 않은 상태로 남아 있습니다.

8. 최근까지 목록에도 포함되었습니다. 혼돈의 암호, 이는 제작자의 생애 동안 공개되지 않았습니다. 이 암호는 1918년 John F. Byrne에 의해 발명되었으며 거의 ​​40년 동안 그는 미국 당국의 관심을 끌기 위해 노력했지만 실패했습니다. 발명가는 자신의 코드를 풀 수 있는 사람에게 현금 보상을 제공했지만 결과적으로 아무도 이를 신청하지 않았습니다.

그러나 2010년 5월 번의 가족들은 그의 남은 모든 문서를 메릴랜드 국립암호박물관에 넘겨주었고 이로 인해 알고리즘이 공개되었습니다.

9. 다가페예프 암호. 1939년 러시아 출신의 영국 지도 제작자 Alexander D'Agapeyeff는 암호학, 코드 및 암호의 기초에 관한 책을 출판했으며, 그 초판에서는 자신이 발명한 암호를 제시했습니다. 이 코드는 후속 버전에는 포함되지 않았습니다. 그 후 D'Agapeyeff는 이 암호를 해독하는 알고리즘을 잊어버렸다고 인정했습니다. 자신의 작품을 해독하려는 모든 사람에게 닥친 실패는 저자가 텍스트를 암호화할 때 실수를 했다는 사실로 인해 발생한 것으로 의심됩니다.

그러나 우리 시대에는 유전자 알고리즘과 같은 현대적인 방법을 사용하여 암호를 해독할 수 있다는 희망이 있습니다.

10. 타만 슈드. 1948년 12월 1일, 호주 기후의 전형적인 더운 날에도 불구하고 스웨터와 코트를 입은 한 남자의 시체가 애들레이드 근처 서머턴의 호주 해안에서 발견되었습니다. 그에 관한 문서는 발견되지 않았습니다. 그의 치아와 손가락 지문을 살아있는 사람들에 대한 이용 가능한 데이터와 비교하려는 시도도 아무 소용이 없었습니다. 병리학적 검사 결과, 특히 그의 복강을 채우고 내부 장기가 비대해지는 부자연스러운 혈액의 돌진이 밝혀졌지만 그의 몸에서는 이물질이 발견되지 않았습니다. 동시에, 고인의 소유일 수 있는 여행가방이 기차역에서 발견되었습니다. 여행 가방에는 비밀 주머니가 달린 바지가 들어 있었는데, 거기에서 단어가 인쇄된 책에서 찢어진 종이 조각을 발견했습니다. 타만 슈드. 조사 결과, 이 종이 조각은 페르시아의 위대한 시인 오마르 카이얌(Omar Khayyam)의 매우 희귀한 컬렉션 "루바이(Rubai)" 사본에서 찢어진 것으로 확인되었습니다. 책 자체는 잠금 해제된 채 자동차 뒷좌석에서 발견되었습니다. 책 뒷표지에는 대문자로 무심코 휘갈겨 쓴 다섯 줄이 있었는데, 이 메시지의 의미는 해독될 수 없었습니다. 오늘날까지 이 이야기는 호주에서 가장 신비한 미스터리 중 하나로 남아 있습니다.

09.07.2003

암호화란 무엇입니까?

암호화는 최초의 비밀 정보, 즉 접근이 제한되어야 하는 정보가 나타난 순간부터 인류에 의해 사용되어 왔습니다. 이것은 아주 오래 전의 일입니다. 예를 들어, 가장 유명한 암호화 방법 중 하나는 Caesar의 이름을 따서 명명되었습니다. Caesar는 직접 발명하지 않았다면 적극적으로 사용했습니다(사이드바 참조).

암호화는 메시지의 의미를 숨기고 특수 알고리즘과 키를 사용한 암호 해독을 통해 공개합니다. 우리는 키를 암호화 및 암호 해독 알고리즘 매개변수의 특정 비밀 상태로 이해합니다. 키를 알면 비밀 메시지를 읽을 수 있습니다. 그러나 아래에서 볼 수 있듯이 키를 모른다고 해서 항상 낯선 사람이 메시지를 읽을 수 없다는 보장은 없습니다.

키를 모르고 암호를 해독하는 과정을 암호해독이라고 합니다. 암호를 해독하는 데 필요한 시간은 암호화 강도에 따라 결정됩니다. 크기가 클수록 암호화 알고리즘이 "강해집니다". 해킹 결과가 달성 가능한지 여부를 처음에는 전혀 알아내는 것이 불가능하다면 더 좋습니다.

기본 최신 암호화 방법

다양한 암호화 방법 중에서 다음과 같은 주요 방법을 구별할 수 있습니다.

  • 대체 또는 대체 알고리즘 - 소스 텍스트의 문자는 이 암호의 키가 될 사전 결정된 체계에 따라 다른(또는 동일한) 알파벳의 문자로 대체됩니다. 이와 별도로 이 방법은 암호화 강도가 매우 낮기 때문에 현대 암호화 시스템에서는 실제로 사용되지 않습니다.
  • 재배열 알고리즘 - 원본 텍스트의 문자가 비밀 키인 특정 원칙에 따라 교체됩니다. 순열 알고리즘 자체는 암호화 강도가 낮지만 많은 현대 암호화 시스템의 요소로 포함됩니다.
  • 감마 알고리즘 - 소스 텍스트의 문자가 특정 무작위 시퀀스의 문자에 추가됩니다. 가장 일반적인 예는 "username.pwl" 파일의 암호화입니다. 여기서 Microsoft Windows 95 운영 체제는 특정 사용자의 네트워크 리소스에 대한 비밀번호(NT 서버에 로그인하기 위한 비밀번호, DialUp 인터넷 액세스를 위한 비밀번호 등)를 저장합니다. .

사용자가 Windows 95에 로그인할 때 암호를 입력하면 네트워크 암호를 암호화하는 데 사용되는 RC4 암호화 알고리즘을 사용하여 감마(항상 동일함)가 생성됩니다. 이 경우 암호 선택이 간단한 이유는 Windows가 항상 동일한 색 구성표를 선호하기 때문입니다.

  • 특정 공식에 따른 원본 텍스트의 복잡한 수학적 변환을 기반으로 하는 알고리즘입니다. 그들 중 다수는 미해결 수학 문제를 사용합니다. 예를 들어, 인터넷에서 널리 사용되는 RSA 암호화 알고리즘은 소수의 속성을 기반으로 합니다.

대칭 및 비대칭 암호화 시스템

개별 알고리즘으로 넘어가기 전에 대칭 및 비대칭 암호 시스템의 개념을 간략하게 살펴보겠습니다. 비밀 키를 생성하고 이를 사용하여 메시지를 암호화하는 것은 전투의 절반에 불과합니다. 그러나 원본 메시지를 해독하기 위해 이를 사용해야 하는 사람에게 그러한 키를 어떻게 보낼 수 있습니까? 암호화 키의 전송은 암호화의 주요 문제 중 하나로 간주됩니다.

대칭 시스템(암호화 및 암호 해독에 동일한 키가 사용되기 때문에 그렇게 명명됨)의 프레임워크 내에 머무르면서 비밀 키를 전송하기 위한 안정적인 통신 채널이 필요합니다. 그러나 그러한 채널이 항상 이용 가능한 것은 아니기 때문에 미국 수학자 Diffie, Hellman 및 Merkle은 1976년에 공개 키와 비대칭 암호화 개념을 개발했습니다. 이러한 암호화 시스템에서는 암호화 프로세스의 키만 공개적으로 사용할 수 있으며, 암호 해독 절차는 비밀 키 소유자에게만 알려져 있습니다.

예를 들어 나에게 메시지를 보내려면 공개 키와 개인 키를 생성합니다. 내가 당신에게 보내면 당신은 메시지를 암호화하여 나에게 보내십시오. 나는 누구에게도 비밀 키를 제공하지 않았기 때문에 오직 나만이 메시지를 해독할 수 있습니다. 물론 두 키는 모두 특별한 방식(각 암호화 시스템마다 다른 방식)으로 연결되어 있으며 공개 키를 배포해도 시스템의 암호화 강도가 파괴되지는 않습니다.

비대칭 시스템에서는 다음 요구 사항이 충족되어야 합니다. 즉, 암호문과 공개 키에서 원본 텍스트를 파생시키는 알고리즘이 없습니다(또는 아직 알려지지 않았습니다). 이러한 시스템의 예로는 잘 알려진 RSA 암호화 시스템이 있습니다.

RSA 알고리즘

RSA 알고리즘(작성자 Rivest-Shamir-Adleman 성의 첫 글자 뒤)은 소수(및 매우 큰 숫자)의 속성을 기반으로 합니다. 소수는 자신과 1 외에 약수가 없는 숫자입니다. 그리고 서로소(coprime) 수는 1 외에 공약수가 없는 수입니다.

먼저 두 개의 매우 큰 소수를 선택하겠습니다(크고 강력한 키를 구성하려면 큰 소수가 필요합니다. 예를 들어 Unix 프로그램 ssh-keygen은 기본적으로 1024비트 길이의 키를 생성합니다).

매개변수를 정의해보자 N곱셈의 결과로 그리고 . 큰 난수를 골라서 불러보자 , 그리고 그것은 곱셈의 결과와 서로소여야 합니다 (p -1)*(q -1).

관계가 참인 숫자 e를 찾아봅시다.

(e*d) mod ((p -1)*(q -1)) = 1

(모드- 나눗셈의 나머지, 즉 e에 d를 곱한 값을 다음으로 나눈 경우 ((p -1)*(q -1))이면 나머지는 1)입니다.

공개 키는 숫자 쌍입니다. 전자와 n, 닫혔습니다 - d와 n.

암호화 시 원본 텍스트는 숫자 계열로 처리되며, 각 숫자에 대해 연산을 수행합니다.

C(i)= (M(i)e) mod n.

결과는 순서이다 C(i), 이는 암호문을 구성합니다. 정보의 디코딩은 공식에 따라 발생합니다.

M(i) = (C(i) d) mod n.

보시다시피, 암호 해독에는 비밀 키에 대한 지식이 필요합니다.

작은 숫자로 시도해 봅시다.

설치하자 p=3, q=7. 그 다음에 n=p*q=21.선택하다 5와 같이. 공식에서 (e*5) 모드 12=1계산하다 e=17. 공개키 17, 21 , 비밀 - 5, 21 .

시퀀스 "12345"를 암호화해 보겠습니다.

C(1)= 1 17 모드 21= 1

C(2)= 2 17 모드 21 =11

C(3)= 3 17 모드 21= 12

C(4)= 4 17 모드 21= 16

C(5)= 5 17 모드 21= 17

암호문 - 1 11 12 16 17.

암호 해독을 확인해 보겠습니다.

M(1)= 1 5 모드 21= 1

M(2)= 11 5 모드 21= 2

M(3)= 12 5 모드 21= 3

M(4)= 16 5 모드 21= 4

M(5)= 17 5 모드 21= 5

보시다시피 결과는 일치했습니다.

RSA 암호화 시스템은 인터넷에서 널리 사용됩니다. SSL을 통해 보안 서버에 연결하거나 PC에 WebMoney 인증서를 설치하거나 Open SSH 또는 SecureShell을 사용하여 원격 서버에 연결할 때 이러한 모든 프로그램은 RSA 알고리즘의 아이디어를 사용하여 공개 키 암호화를 사용합니다. 이 시스템이 정말 그렇게 신뢰할 수 있나요?

RSA 해킹 대회

RSA는 창립 이래 지속적으로 무차별 대입 공격을 받아왔습니다. 1978년에 알고리즘 작성자는 방금 발명한 방법을 사용하여 암호화된 문자열을 제시하는 기사를 발표했습니다. 메시지를 가장 먼저 해독한 사람에게는 100달러의 보상이 주어졌지만 이를 위해서는 129자리 숫자를 두 가지 요소로 나누어야 했습니다. 이것은 RSA를 크랙하는 첫 번째 대회였습니다. 문제는 기사가 나온 지 17년 만에 해결됐다.

RSA의 암호화 강도는 공개 키에서 개인 키를 결정하는 것이 불가능하지는 않더라도 극히 어렵다는 가정에 기반을 두고 있습니다. 이를 위해서는 거대한 정수의 약수가 존재하는 문제를 해결해야했습니다. 지금까지 분석적 방법을 사용하여 이를 해결한 사람은 아무도 없으며 RSA 알고리즘은 무차별 대입을 통해서만 해독할 수 있습니다. 엄밀히 말하면 인수분해 문제가 어렵고, RSA 체계를 깨는 것이 어렵다는 주장도 증명되지 않았다.

메시지 텍스트를 해시 함수로 처리한 결과 얻은 번호는 사용자의 개인 키에 RSA 알고리즘을 사용하여 암호화되어 문자 및 공개 키 사본과 함께 수신자에게 전송됩니다. 보낸 사람의 공개 키를 사용하는 수신자는 들어오는 메시지에 대해 동일한 해시 기능을 수행합니다. 두 숫자가 모두 같다면 메시지가 진짜라는 뜻이지만, 하나 이상의 문자가 변경되면 숫자가 일치하지 않습니다.

러시아에서 가장 일반적인 이메일 클라이언트 중 하나인 The Bat! 프로그램에는 편지에 디지털 서명을 추가하는 기능이 내장되어 있습니다(편지 편집 시 개인 정보 보호 메뉴 항목에 주의하세요). 이 기술에 대한 자세한 내용은 기사(“PC World”, No. 3/02 참조)를 참조하십시오.

쌀. 삼

암호화

암호화는 무단 액세스 및 왜곡으로부터 정보를 보호하기 위해 정보를 변환하는 원리, 수단 및 방법의 과학입니다. 최근에는 매우 빠르게 발전하고 있습니다. 이는 많은 시간과 노력이 필요한 끝없는 흥미진진한 경주입니다. 암호 분석가는 최근까지 표준이었고 널리 사용되었던 알고리즘을 해독합니다. 그런데 최근 수학자 Dan Goldston(미국)과 Kem Ildirim(터키)이 소수 분포의 첫 번째 규칙성을 입증했습니다(이러한 규칙성은 지금까지 발견되지 않았습니다). 소수는 특정 클러스터의 숫자 축에 위치하므로 찾기가 다소 쉽습니다.

전 세계에서 진행되는 수학적 연구는 끊임없이 새로운 발견을 낳고 있습니다. 어쩌면 우리가 해결되지 않은 수학적 문제를 기반으로 하는 RSA 알고리즘이나 기타 암호화 시스템을 깨뜨릴 위기에 처해 있는지 누가 알겠습니까?

올렉 부닌- 대규모 인터넷 프로젝트용 소프트웨어 개발 전문가, Rambler 회사 직원, [이메일 보호됨] .

문학
  1. Lukashov I.V. 철! // PC 월드. 2003. 3호 (
  2. Nosov V. A. 암호화 개발에 대한 간략한 역사적 개요 // "모스크바 대학교 및 러시아 암호화 개발" 컨퍼런스 진행, MSU, 2002년 10월 17-18일.
  3. Salomaa A. 공개 키 암호화. 엠., 1996.
  4. Zimmerman F. PGP - 모든 사람을 위한 공개 키 암호화.

카이사르 암호화 시스템

대체 알고리즘의 예로는 Caesar 암호화 시스템이 있습니다. 이 방법은 원본에서 고정된 문자 수만큼 이동하여 메시지의 각 문자를 다른 문자로 바꾸는 것을 기반으로 합니다. Omar Khayyam의 4행시를 해독해 보세요(완료 시간 - 10분).

RLZ YOMEIZ AVBZHU IYZAVLU, BZHSCHLU ZHSHCHEZZHZ ZHUOSCHZ, EYSH YSHCHAZhFO ISHCHIVESCH BSHCHIZHV EESH ZHSCHRSCH: LF EMRSYU ЪZEZESCHG, RYU RLZ IZISHCHEZ YUKLU, IN EMRSYU BMEU ZEVZH, RYO YYOYUKLU K DUYO IZISHCHEZ.

성공하셨나요? 대답은 다음과 같습니다.

인생을 현명하게 살기 위해서는 많은 것을 알아야 하고,

시작하려면 두 가지 중요한 규칙을 기억하세요.

아무것도 먹기보다는 굶어 죽는 편이 낫겠다

그리고 누구와 함께 있는 것보다 혼자 있는 것이 더 좋습니다.

암호 해독 키: 알파벳순으로 왼쪽으로 7자(7번째 문자 사용)만큼 이동합니다. 알파벳이 반복됩니다. 대소문자는 구분하지 않습니다.

Windows 및 비밀번호

Windows는 암호를 어떻게 암호화합니까?

시스템은 비밀번호를 가져와서 대문자로 변환하고 14자로 자른 다음 7개의 문자로 나누어 각각을 별도로 암호화하고 저장하므로 해킹이 조금 더 쉬워집니다. 그런데 비밀번호를 떠올릴 때 14자를 넘는 조합은 의미가 거의 없다는 점을 명심하세요.

AES(고급 암호화 표준) 경쟁

80년대 미국에서는 내부 사용을 위해 대칭 암호화 표준인 DES((Data Encryption Standard, 러시아에도 유사한 표준이 있음)를 채택했습니다. 그러나 1997년에 56비트 DES 키가 신뢰할 수 있는 키로는 충분하지 않다는 것이 분명해졌습니다. 미국 표준 협회(American Standards Institute)는 새로운 표준 알고리즘에 대한 경쟁을 발표했습니다. 15가지 옵션 중 가장 좋은 것이 벨기에 알고리즘 Rijndael(저자의 이름인 Rijmen과 Daemen으로 구성되어 있으며 "Rijndael"로 읽음)이 선택되었습니다. 이 알고리즘은 이미 다른 결선 참가자들이 시장에 제공하는 다양한 암호화 도구에 내장되어 있습니다. 대회의 우승자는 MARS, RC6, Serpent, TwoFish였습니다. 이러한 모든 알고리즘은 매우 강력하고 잘 알려진 모든 암호 분석 방법에 성공적으로 저항하는 것으로 나타났습니다. .

암호화 해시 함수

암호화 해시 함수는 모든 크기의 입력 데이터를 고정 크기 문자열로 변환합니다. 그들을 찾는 것은 극히 어렵습니다.

  • 동일한 변환 결과를 갖는 두 개의 서로 다른 데이터 세트(충돌 저항) 예를 들어, MD5 해시 함수에 대한 짧은 메시지도 포함하는 데이터 블록을 찾는 데 필요한 산술 연산의 수는 대략 2 64입니다.
  • 알려진 해싱 결과를 기반으로 한 입력 값(되돌릴 수 없음) MD5의 경우 원본 메시지를 계산하는 데 필요한 예상 작업 수는 2,128입니다.

재미있는 암호화

사용되는 거의 모든 암호화 방법에는 메시지를 고정된 크기의 많은 부분(또는 문자)으로 나누는 작업이 포함되며, 각 부분은 독립적이지는 않더라도 별도로 암호화됩니다. 일반적으로 메시지의 길이가 다르기 때문에 이렇게 하면 암호화 작업이 크게 단순화됩니다.

세 가지 주요 암호화 방법이 있습니다.: 스레딩, 블록 및 피드백 사용.

암호화 방법의 다음 네 가지 특징이 강조됩니다.

    개별 비트 또는 블록에 대한 작업입니다.

    메시지의 이전 부분 암호화 결과에 대한 암호화 기능의 종속성 또는 비종속성입니다.

3. 텍스트에서의 위치에 대한 개별 메시지 문자의 암호화 의존성 또는 독립성. 예를 들어 스트림 암호화를 사용하면 메시지의 다양한 문자가 메시지에서의 위치에 따라 암호화됩니다. 이 속성을 암호의 위치 의존성 또는 독립성이라고 합니다.

4. 암호화 기능의 대칭성 또는 비대칭성. 이 중요한 속성은 기존 대칭(단일 키) 암호화 시스템과 비대칭 2키(공개 키) 암호화 시스템 간의 본질적인 차이점을 정의합니다. 둘 사이의 주요 차이점은 비대칭 암호 시스템에서는 암호화(또는 복호화) 키에 대한 지식만으로는 해당 복호화(또는 암호화) 키를 발견하는 데 충분하지 않다는 것입니다.

암호 시스템의 주요 특징

암호체계

작업

비트 또는 블록

표지판에 대한 의존성/독립성

메시지

위치 의존성/독립성

대칭/

어울리지 않음

인라인

암호화

의존하지 않는다

대칭

차단하다

암호화

의존하지 않는다

의존하지 않는다

대칭 또는 비대칭

거꾸로부터

통신

암호문

비트 또는 블록

의존하지 않는다

대칭

암호화 기능이 메시지의 부호에 의존하는 속성을 가진 암호 시스템에서는 오류 전파가 발생할 수 있습니다. 예를 들어 전송 중에 암호문의 일부가 손상된 경우 암호 해독 후 일반 텍스트에 손상된 비트가 더 많이 포함될 수 있습니다. 삽입 및 삭제 오류는 암호 해독 중에 치명적인 오류 전파로 이어질 수도 있습니다.

스트림 암호.스트림 암호화는 의사 난수 시퀀스 비트와 함께 모듈로 2의 일반 텍스트 비트를 추가하는 것으로 구성됩니다.

혜택으로스트림 암호에는 오류 전파가 없고 구현이 간단하며 암호화 속도가 빠릅니다.

불리메시지 헤더 이전에 동기화 정보를 전송해야 하며, 메시지가 해독되기 전에 수신되어야 합니다. 이는 두 개의 서로 다른 메시지가 동일한 키로 암호화된 경우 이러한 메시지를 해독하려면 동일한 의사 난수 시퀀스를 사용해야 하기 때문입니다. 이러한 상황은 시스템의 암호화 강도에 위험한 위협을 초래할 수 있으므로 무작위로 선택된 추가 메시지 키가 종종 사용됩니다. 이 키는 메시지 시작 부분에 전송되어 암호화 키를 수정하는 데 사용됩니다. 결과적으로, 서로 다른 메시지가 서로 다른 시퀀스를 사용하여 암호화됩니다.

스트림 암호는 데이터 및 디지털화된 음성 신호를 암호화하기 위해 군사 시스템 및 기타 유사한 시스템에서 널리 사용됩니다. 최근까지 이러한 애플리케이션은 이 암호화 방법에 주로 사용되었습니다. 이는 특히 좋은 암호화 시퀀스 생성기를 설계하고 구현하는 것이 상대적으로 단순하기 때문에 설명됩니다. 그러나 주요 요인은 물론 스트림 암호에 오류 전파가 없다는 것입니다.

전술 통신망에서는 데이터와 음성 메시지 전송에 상대적으로 낮은 품질의 채널이 사용되기 때문에 이미 높은 오류율을 높이는 어떠한 암호 시스템도 적용할 수 없습니다. 이러한 경우 오류를 전파하지 않는 암호 시스템을 사용해야 합니다.

그러나 오류가 늘어나는 것은 긍정적인 일이기도 합니다. 예를 들어, 암호화된 데이터는 오류 가능성이 매우 낮은 채널(예: 10 5)을 통해 전송되어야 하며 데이터가 절대적으로 정확하게 수신되는 것이 매우 중요합니다. 이는 단일 비트의 오류가 치명적인 결과를 초래할 수 있는 컴퓨터 네트워크의 일반적인 상황이므로 통신 채널은 매우 안정적이어야 합니다. 이런 상황에서는 한 번의 실수가 100번의 실수, 1000번의 실수만큼 위험합니다. 그러나 100개 또는 1000개의 오류는 하나의 오류보다 더 쉽게 찾을 수 있습니다. 따라서 이 경우 오류 전파는 더 이상 암호의 단점이 아닙니다.

스트림 암호화를 위한 시퀀스를 생성하는 표준 방법은 출력 피드백 모드의 DES 데이터 암호화 표준에서 사용되는 방법입니다.

블록 암호.블록 암호의 경우 일반 텍스트는 먼저 동일한 길이의 블록으로 분할된 다음 키 종속 암호화 기능을 사용하여 길이의 일반 텍스트 블록을 변환합니다. 같은 길이의 암호문 블록에 비트를 넣습니다. 블록 암호의 중요한 속성은 암호문 블록의 각 비트가 해당 평문 블록의 모든(또는 거의 모든) 비트의 함수이며 두 개의 평문 블록이 동일한 암호문 블록으로 표현될 수 없다는 것입니다. 블록 암호 알고리즘은 다양한 방식으로 사용될 수 있습니다. DES 표준의 네 가지 암호화 모드는 실제로 모든 블록 암호에 적용됩니다.

이러한 모드에는 다음과 같은 이름이 지정되었습니다.

    직접 암호화 모드 또는 전자 코드북(전자 코드북)을 사용한 암호화,

    암호문 블록 체인을 이용한 암호화 CBC(Cipher block chaining),

    암호문 CFB의 피드백을 사용한 암호화(Cipher Feedback),

    OFB 출력의 피드백으로 암호화합니다(출력 피드백).

주요 이점직접 블록 암호(전자 코드북)는 잘 설계된 블록 암호 시스템에서 암호문의 작은 변경으로 인해 해당 평문에 크고 예측할 수 없는 변경이 발생하고 그 반대의 경우도 마찬가지라는 것입니다.

그러나 이 모드에서 블록 암호를 사용하는 것은 다음과 관련이 있습니다. 심각한 단점.첫 번째는 암호화의 고정된 특성으로 인해 상대적으로 긴 블록 길이(예: 50-100비트)에서도 제한된 형태로 "사전" 암호 분석이 가능하다는 것입니다.

일반적인 자연어 텍스트의 중복성이 크기 때문에 이 크기의 블록이 메시지에서 반복될 수 있다는 것은 분명합니다. 이로 인해 길이가 동일한 일반 텍스트 블록이 생성될 수 있습니다. 메시지의 비트는 동일한 암호문 블록으로 표시되어 암호 분석가에게 메시지 내용에 대한 일부 정보를 제공합니다.

이 암호의 또 다른 잠재적인 단점은 오류 전파입니다(이는 스트림 암호를 제외한 모든 유형의 암호에 대한 문제 중 하나입니다). 수신된 암호문 블록에서 단 한 비트만 변경해도 전체 블록이 잘못 해독될 수 있습니다. 이는 결과적으로 1 ~ 1이 됩니다. 복원된 소스 텍스트의 왜곡된 비트.

언급된 단점으로 인해 이 모드에서는 긴 메시지를 암호화하는 데 블록 암호가 거의 사용되지 않습니다. 그러나 메시지가 하나 또는 두 개의 블록으로 구성되는 경우가 많은 금융 기관에서는 이러한 간단한 형태의 블록 암호(특히 DES 알고리즘)가 널리 사용됩니다. 이 응용 프로그램에는 암호화 키가 자주 변경될 가능성이 있으므로 동일한 키로 두 개의 동일한 일반 텍스트 블록을 암호화할 확률은 매우 낮습니다. 블록 암호는 암호문 피드백이 있는 암호화 시스템에서 가장 자주 사용됩니다.

교육도 가능해요 스트림 및 블록 암호화의 혼합(하이브리드) 시스템각 암호의 최상의 속성을 사용합니다. 이러한 시스템에서는 스트림 암호화가 의사 무작위 순열과 결합됩니다. 일반 텍스트는 먼저 일반 스트림 암호화처럼 암호화된 다음 결과 암호문이 고정된 크기의 블록으로 나뉩니다. 각 블록에서 키의 제어에 따라 의사 무작위 순열이 수행됩니다(개별 블록에 대해 서로 다른 순열이 선호됨).

이 두 작업의 순서는 시스템의 기본 속성에 영향을 주지 않고 바뀔 수 있습니다. 결과는 오류를 전파하지 않지만 스트림 암호에는 없는 추가 속성을 갖는 암호입니다. 이 속성은 도청자가 암호문 비트에 해당하는 일반 텍스트 비트를 알 수 없음을 의미합니다. 이로 인해 암호화된 메시지가 더욱 복잡해지고 해독이 어려워집니다. 그러나 이것은 더 이상 암호문의 각 비트가 일반 텍스트의 모든 비트가 아닌 단 하나의 함수인 진정한 블록 암호가 아니라는 점에 유의해야 합니다.

공개 키 암호화 시스템은 상당히 긴 길이의 블록에서 작동하는 블록 암호화 시스템이어야 합니다. 이는 공개 암호화 키를 알고 있는 암호 분석가가 먼저 일반 텍스트와 암호 텍스트 블록 간의 대응 테이블을 계산하고 생성할 수 있기 때문입니다. 블록 길이가 작은 경우(예: 30비트) 가능한 블록 수는 너무 크지 않으며(30비트 길이의 경우 2 30 -10 9) 완전한 테이블을 컴파일할 수 있습니다. 알려진 공개 키를 사용하여 암호화된 메시지를 즉시 해독할 수 있습니다.

다양한 공개 키 암호 시스템이 제안되었으며, 그 중 가장 유명한 것은 RSA(Rivest, Shamir, Adleman)입니다. 이 시스템의 암호화 강점은 큰 숫자를 소인수로 분해하는 어려움과 암호화 및 암호 해독 키에 대해 두 개의 큰 소수를 선택하는 데 기반을 두고 있습니다.

RSA 알고리즘은 고속 암호화에는 사용할 수 없는 것으로 알려져 있습니다. 이 알고리즘의 가장 최적화된 소프트웨어 구현은 저속인 것으로 밝혀졌으며 여러 하드웨어 구현은 10~100Kbps의 암호화 속도를 제공합니다(2 7 정도의 소수를 사용하여 필요한 암호화를 보장하는 최소 길이인 것으로 보입니다). 암호화 강도). 이는 키 배포, 인증 및 디지털 서명 생성에 RSA를 사용하는 것이 흥미로운 가능성을 제시하지만 블록 암호화에 RSA를 사용하는 것이 제한적이라는 것을 의미합니다. 현재 알려진 일부 공개 키 암호화 알고리즘은 RSA 알고리즘보다 더 빠른 암호화 속도를 허용합니다. 그러나 아직은 그다지 인기가 없습니다.

피드백이 있는 암호화 시스템.폐쇄 루프 암호화 시스템은 다양한 실제 버전으로 제공됩니다. 블록 암호 시스템에서와 마찬가지로 메시지는 다음으로 구성된 여러 블록으로 나뉩니다. 비트를 생성하고 이러한 블록을 암호문 블록으로 변환합니다. 비트, 특수 기능이 사용됩니다. 그러나 블록 암호에서는 이러한 기능이 키에만 의존하는 반면, 폐쇄 루프 암호에서는 키와 하나 이상의 이전 암호문 블록에 모두 의존합니다. 폐쇄 루프 암호화에 대한 이러한 일반적인 정의에는 실제로 사용되는 다양한 유형의 시스템이 특수한 경우로 포함됩니다.

피드백이 있는 블록 암호 암호화 시스템을 사용하면 다음과 같은 이점이 있습니다. 여러 가지 중요한 장점. 첫 번째이자 가장 중요한 것은 이를 사용하여 활성 도청자가 수행하는 메시지 조작을 탐지하는 기능입니다. 이는 오류가 전파된다는 사실과 이러한 시스템이 MAC 메시지 인증 코드(메시지 인증 코드)를 쉽게 생성할 수 있는 능력을 활용합니다. 두 번째 장점은 블록 암호 대신 사용되는 CTAK 암호는 초기 동기화가 필요하지 않다는 것입니다. 이는 수신 시 메시지의 시작 부분을 건너뛰면 나머지 메시지를 성공적으로 해독할 수 있음을 의미합니다(연속적인 메시지 수신 후). 암호문 비트. 폐쇄 루프 암호화 시스템은 메시지를 암호화하는 것뿐만 아니라 메시지를 인증하는 데에도 사용됩니다.

피드백이 있는 블록 암호 시스템의 특징은 다음과 같습니다. 특정 단점. 주요한 것은 오류의 전파입니다. 전송 중 하나의 잘못된 비트는 1에서 1까지의 원인이 될 수 있습니다. sm + 해독된 텍스트에 오류가 있습니다. 따라서 증가 요구 사항은 암호화 강도를 높이려면 오류 전파와 관련된 시스템 요구 사항에 위배됩니다. 또 다른 단점은 폐쇄 루프 암호화 시스템의 설계 및 구현이 스트림 암호화 시스템보다 더 어렵다는 것입니다. 다양한 유형의 폐쇄 루프 암호화 시스템이 수년 동안 널리 사용되었지만 이러한 시스템에 대한 특정 알고리즘은 거의 없습니다. 대부분의 경우 게시된 알고리즘은 특수 응용 프로그램에 맞게 수정된 블록 암호화 알고리즘에서 파생됩니다.

분석을 통해 도출할 수 있는 첫 번째 결론은 대부분의 실제 암호화 시스템이 스트림 암호화 또는 피드백 암호화 알고리즘을 사용한다는 것입니다. 대부분의 스트림 암호 암호화 시스템은 상용 알고리즘(독점 알고리즘 또는 독점 알고리즘 포함) 또는 분류된 정부 알고리즘을 사용합니다. 이러한 상황은 앞으로도 계속될 것으로 보입니다.

대부분의 폐쇄 루프 암호화 시스템은 블록 암호 알고리즘의 특별한 변형, 특히 가장 유명한 블록 암호 알고리즘 DES의 사용을 기반으로 할 수도 있습니다. 다른 암호화 방법과 관련하여 공개 키 암호화 시스템에 대한 출판물이 급속히 증가함에도 불구하고 그 중 RSA 시스템만이 시간의 시험을 견뎌 왔다고 말할 수 있습니다.

그러나 시스템의 알고리즘에는 심각한 구현 제한이 있으므로 일부 암호화 응용 프로그램에는 적합하지 않습니다. 물론 공개키 암호화 시스템이 데이터 암호화 기술에 큰 영향을 미쳤다는 점은 확실히 주장할 수 있습니다. 주로 디지털 서명을 생성하거나 기존 암호화 시스템(예: 키 암호화)의 키를 관리하는 데 사용이 증가하고 있습니다.

암호화의 잠재적 사용자는 스트림 암호화 시스템과 폐쇄 루프 암호화 시스템(아마도 블록 암호화 알고리즘 사용을 기반으로 함) 중에서 선택할 수 있는 기회를 갖습니다. 그러나 금융 거래와 같이 직접 블록 암호화 기술("전자 코드북")을 사용할 수 있는 특정 응용 분야가 있습니다. 암호화 알고리즘의 선택은 주로 그 목적에 따라 달라집니다. 암호화 유형을 선택할 때 안내할 수 있는 일부 정보가 표에 나와 있습니다.

DES(Data Encryption Standard) 데이터 암호화 알고리즘은 1977년에 발표되었으며 상용 정보 보안 시스템에서 사용되는 일반적인 블록 대칭 알고리즘으로 남아 있습니다.

DES 알고리즘은 Feistel 네트워크 방법론에 따라 구성되며 순열과 대체의 교대 시퀀스로 구성됩니다. DES 알고리즘은 64비트 키를 사용하여 64비트 데이터 블록을 암호화합니다. 여기서 56비트가 중요합니다(나머지 8비트는 패리티 검사 비트입니다).

암호화 프로세스는 64비트 블록 비트의 초기 순열, 16사이클(라운드)의 암호화, 마지막으로 비트의 최종 순열로 구성됩니다(그림 6.2).

쌀. 6.2.

DES에서의 복호화는 암호화의 역순으로 암호화 작업을 역순으로 반복하여 수행됩니다.

DES 알고리즘의 주요 장점:

  • 하나의 56비트 키만 사용됩니다.
  • 알고리즘의 상대적 단순성은 높은 처리 속도를 보장합니다.
  • 하나의 소프트웨어 패키지를 사용하여 메시지를 암호화하면 DES 알고리즘을 준수하는 다른 소프트웨어 패키지를 사용하여 해독할 수 있습니다.
  • 알고리즘의 암호화 강도는 대부분의 상용 애플리케이션의 정보 보안을 보장하기에 충분합니다.

최신 마이크로프로세서 기술을 사용하면 상당히 합리적인 시간에 키 길이가 40비트인 대칭 블록 암호를 해독할 수 있습니다. 이러한 해킹에는 가능한 모든 핵심 값을 총체적으로 테스트하는 무차별 대입 방식(“무차별 대입” 방식)이 사용됩니다. 최근까지 DES는 상대적으로 안전한 암호화 알고리즘으로 간주되었습니다.

새롭고 더욱 강력한 알고리즘을 생성하기 위해 블록 알고리즘을 결합하는 방법에는 여러 가지가 있습니다. 그러한 방법 중 하나는 다중 암호화 -동일한 일반 텍스트 블록을 암호화하기 위해 서로 다른 키로 블록 알고리즘을 여러 번 사용합니다. 삼중 암호화를 사용하면 세 가지 다른 키를 사용할 수 있습니다.

3-DES 알고리즘(Triple DES)은 DES 알고리즘의 신뢰성이 부족하다고 판단되는 상황에서 사용됩니다.

오늘날 국내 암호화 표준 GOST 28147-89와 새로운 미국 암호화 표준인 AES(Advanced Encryption Standard)라는 두 가지 강력한 최신 암호화 알고리즘이 점점 더 많이 사용되고 있습니다.

GOST 28147-89 암호화 표준은 하드웨어 및 소프트웨어 구현을 위한 것이며 암호화 요구 사항을 충족하며 보호되는 정보의 비밀 수준에 제한을 두지 않습니다. GOST 28147-89에 정의된 데이터 암호화 알고리즘은 256비트 키를 사용하는 64비트 블록 알고리즘입니다.

암호화할 데이터는 64비트 블록으로 나누어집니다. 이 블록은 두 개의 하위 블록으로 나뉩니다. Nx그리고 엔 2각각 32비트(그림 6.3) /V 하위 블록은 특정 방식으로 처리된 후 해당 값이 하위 블록의 값에 추가됩니다. 엔 2(덧셈은 모듈로 2로 수행됩니다. 즉, 논리 연산 XOR이 적용됩니다 - "배타적 또는").


쌀. 6.3.

하위 블록이 교체됩니다. 이 변환은 알고리즘의 작동 모드에 따라 특정 횟수("라운드")(16회 또는 32회)로 수행됩니다.

각 라운드마다 두 가지 작업이 수행됩니다.

첫 번째 작업은 키 적용입니다. /V 하위 블록의 내용은 키의 32비트 부분과 함께 모듈로 2 32로 추가됩니다. Kx.전체 암호화 키는 32비트 하위 키의 연결로 표시됩니다. K 0, K (, K 2, K 3, K 4, K 5, K 6, K 7.암호화 프로세스 중에는 라운드 수와 알고리즘 작동 모드에 따라 이러한 하위 키 중 하나가 사용됩니다.

두 번째 작업은 테이블 교체입니다. 키 하위 블록을 적용한 후 N ( 4비트의 8개 부분으로 나누어지며, 각 값은 서브블록의 이 부분에 대한 대체 테이블에 따라 대체됩니다. 그런 다음 하위 블록은 11비트만큼 왼쪽으로 비트 회전됩니다.

테이블 교체. 5-박스 대체 상자는 현대 암호화 알고리즘에서 자주 사용되므로 이러한 작업이 어떻게 구성되어 있는지 설명할 가치가 있습니다.

5-박스 대체 블록은 8개의 교체 노드(5-교체 블록)로 구성되며, S2,..., 각각 64비트 메모리가 있는 5 8. 대체 블록에 도착 에스 32비트 벡터는 8개의 순차적인 4비트 벡터로 분할되며, 각 벡터는 해당 대체 노드에 의해 4비트 벡터로 변환됩니다. 각 대체 노드는 0000...1111 범위에 있는 16개의 4비트 이진수로 구성된 순열 테이블로 표현될 수 있습니다. 입력 벡터는 테이블의 행 주소를 지정하고 해당 행의 숫자는 출력 벡터입니다. 그런 다음 4비트 출력 벡터가 순차적으로 32비트 벡터로 결합됩니다. 대체 노드(순열 테이블)는 컴퓨터 네트워크에 공통적이고 거의 변경되지 않는 핵심 요소입니다. 이러한 대체 노드는 비밀로 유지되어야 합니다.

GOST 28147-89에 정의된 알고리즘은 네 가지 작동 모드를 제공합니다. 간단한 교체, 게이밍, 피드백을 이용한 게이밍그리고 모방 접두사 생성.위에서 설명한 것과 동일한 암호화 변환을 사용하지만 모드의 목적이 다르기 때문에 이 변환은 모드마다 다르게 수행됩니다.

모드 중 쉬운 교체각 64비트 정보 블록을 암호화하기 위해 위에서 설명한 32라운드가 수행됩니다. 이 경우 32비트 하위 키는 다음 순서로 사용됩니다.

K0, K(, K2, K3, K4, K5, K6, K7, K0,/G 등 - 1~24라운드;

K7, Kb, K5, K4, K3, K2, Kx, K0 - 25~32라운드.

이 모드의 암호 해독은 정확히 동일한 방식으로 수행되지만 하위 키 사용 순서는 약간 다릅니다.

케이 0, AG, K2, K3, K4, K5, Kb, K7 - 1~8라운드;

K7, K6, K5, K4, K3, K2, K(, K0, K7, Kb등 - 9부터 32까지의 라운드.

모든 블록은 서로 독립적으로 암호화됩니다. 즉, 각 블록을 암호화한 결과는 해당 내용(원본 텍스트의 해당 블록)에만 의존합니다. 원본(일반) 텍스트의 동일한 블록이 여러 개 있는 경우 해당 암호문 블록도 동일하므로 암호를 해독하려는 암호 분석가에게 유용한 추가 정보를 제공합니다. 따라서 이 모드는 주로 암호화 키 자체를 암호화하는 데 사용됩니다(여러 가지 이유로 키가 서로 암호화되는 다중 키 체계가 구현되는 경우가 많습니다). 정보 자체를 암호화하기 위한 다른 두 가지 작동 모드(감마 및 피드백이 있는 감마)가 있습니다.

안에 감마 모드각 일반 텍스트 블록은 64비트 암호 감마 블록에 모듈로 2로 비트 단위로 추가됩니다. 암호 감마 -이는 레지스터를 사용한 특정 작업의 결과로 얻은 특수 시퀀스입니다. N1 그리고 에스 2(그림 6.9):

  • 1. 레지스터에 아니^그리고 1U 2초기 채우기가 기록됩니다(동기화 메시지라고 하는 64비트 값).
  • 2. 레지스터의 내용은 암호화됩니다. N1 그리고 남 2(이 경우 - 동기화 메시지) 단순 교체 모드에서.
  • 3. 내용 등록 아니^상수 C = 2 24 + 2 16 + 2 8 + 2 4를 사용하여 모듈로(2 32 - 1)로 추가되고 추가 결과가 레지스터에 기록됩니다. N1 .
  • 4. 레지스터 CU 2의 내용은 상수 C 2 = 2 24 + 2 16 + 2 8 + 1을 사용하여 모듈로 232로 추가되고 추가 결과는 레지스터 CU 2에 기록됩니다.
  • 5. 레지스터의 내용 N, 그리고 에스 2 64비트 암호 감마 블록으로 출력(이 경우 아니^ VU 2는 스케일의 첫 번째 블록을 형성합니다.

다음 감마 블록이 필요한 경우(즉, 암호화 또는 복호화를 계속해야 하는 경우) 2단계로 돌아갑니다.

복호화를 위해 비슷한 방식으로 감마를 생성한 다음 암호문과 감마 비트에 다시 X(G) 연산을 적용합니다. 이 연산은 가역적이므로 올바르게 생성된 감마의 경우 원본 텍스트를 얻습니다. (표 6.1)

표 6.1.감마 모드의 암호화 및 복호화

감마를 해독하는 데 필요한 암호를 개발하려면 암호를 해독하는 사용자는 정보를 암호화할 때 사용된 동기화 메시지의 키와 값이 동일해야 합니다. 그렇지 않으면 암호화된 텍스트에서 원본 텍스트를 얻을 수 없습니다.

대부분의 GOST 28147-89 알고리즘 구현에서 동기화 메시지는 비밀이 아니지만 동기화 메시지가 암호화 키와 동일한 비밀 요소인 시스템이 있습니다. 이러한 시스템의 경우 알고리즘의 유효 키 길이(256비트)는 비밀 동기화 메시지의 또 다른 64비트만큼 증가하며, 이는 키 요소로도 간주될 수 있습니다.

안에 피드백이 있는 감마 모드두 번째 블록부터 시작하여 L" 및 IU 2 레지스터를 채우기 위해 이전 감마 블록이 사용되지 않고 이전 일반 텍스트 블록을 암호화한 결과가 사용됩니다(그림 6.4). 이 모드의 첫 번째 블록은 다음과 완전히 유사하게 생성됩니다. 이전 것.

모드를 고려하면 모방 접두사 생성,생성 주체의 개념을 정의해야 한다. 모방 접두사 -다음을 사용하여 계산된 암호화 체크섬입니다.

쌀. 6.4.

암호화 키를 호출하고 메시지의 무결성을 확인하도록 설계되었습니다. 모방 접두어를 생성할 때 다음 작업이 수행됩니다. 모방 접두어가 계산되는 정보 배열의 첫 번째 64비트 블록이 ^ 및 A^ 2 레지스터에 기록되고 축소된 단순 대체에서 암호화됩니다. 모드(32라운드 중 처음 16라운드가 수행됨) 획득된 결과는 다음 정보 블록과 모듈로 2로 합산되어 결과를 L"에 저장합니다. S 2.

이 주기는 마지막 정보 블록까지 반복됩니다. A^ 및 A^2 레지스터의 결과 64비트 콘텐츠 또는 그 일부를 모방 접두사라고 합니다. 모방 첨부 파일의 크기는 메시지의 요구되는 신뢰성에 따라 선택됩니다. 즉, 모방 첨부 파일의 길이와 함께 G메시지 변경이 눈에 띄지 않을 확률은 다음과 같습니다. 2~지.

가장 일반적으로 사용되는 것은 32비트 모방 접두사, 즉 레지스터 내용의 절반입니다. 다른 체크섬과 마찬가지로 모방 첨부 파일도 우발적인 정보 왜곡을 방지하기 위한 것이므로 이것으로 충분합니다. 데이터의 의도적인 수정을 방지하기 위해 주로 전자 디지털 서명과 같은 다른 암호화 방법이 사용됩니다.

정보를 교환할 때 모방 접두어는 일종의 추가 제어 수단 역할을 합니다. 정보가 암호화되어 암호문과 함께 전송될 때 일반 텍스트에 대해 계산됩니다. 복호화 후, 모방 접두어의 새로운 값이 계산되어 전송된 값과 비교됩니다. 값이 일치하지 않으면 전송 중에 암호문이 손상되었거나 암호 해독 중에 잘못된 키가 사용되었음을 의미합니다. 모방 접두사는 다중 키 구성표를 사용할 때 키 정보의 올바른 암호 해독을 확인하는 데 특히 유용합니다.

GOST 28147-89 알고리즘은 매우 강력한 알고리즘입니다. 현재 위에서 언급한 "무차별 대입" 방법보다 공개를 위해 더 효과적인 방법이 제안되지 않았습니다. 높은 보안은 주로 256비트의 긴 키 길이로 인해 달성됩니다. 비밀 동기화 메시지를 사용하면 유효 키 길이가 320비트로 늘어나고, 대체 테이블을 암호화하면 추가 비트가 추가됩니다. 또한 암호화 강도는 변환 라운드 수에 따라 달라지며, GOST 28147-89에 따르면 변환 라운드 수는 32입니다(입력 데이터 분산의 전체 효과는 8라운드 후에 달성됩니다).

AES 암호화 표준. 1997년 미국 표준 연구소 NIST(국립 표준 기술 연구소)는 AES(Advanced Encryption Standard)라고 불리는 대칭 암호화 알고리즘에 대한 새로운 표준에 대한 경쟁을 발표했습니다. 전 세계 최대 규모의 암호학 센터가 개발에 참여했습니다. 이 대회의 승자는 실제로 향후 10~20년 동안 세계 암호화폐 표준이 되었습니다.

새로운 AES 표준의 후보인 암호화 알고리즘에 다음 요구 사항이 제시되었습니다.

  • 알고리즘은 대칭이어야 합니다.
  • 알고리즘은 블록 암호여야 합니다.
  • 알고리즘은 128비트의 블록 길이를 가져야 하며 128, 192 및 256비트의 세 가지 키 길이를 지원해야 합니다.

또한 암호화 알고리즘 개발자는 다음을 권장했습니다.

  • 하드웨어(마이크로칩)와 소프트웨어(개인용 컴퓨터 및 서버) 모두에서 쉽게 구현되는 작업을 사용합니다.
  • 32비트 프로세서에 중점을 둡니다.
  • 모든 이해 당사자가 알고리즘의 독립적인 암호 분석을 독립적으로 수행하고 문서화되지 않은 기능이 포함되어 있지 않은지 확인할 수 있도록 암호 구조를 불필요하게 복잡하게 만들지 마십시오.

대회 결과는 2000년 10월에 요약되었습니다. 벨기에 출신의 두 암호학자 Vincent Rijmen과 Joan Daemen이 개발한 Rijndael 알고리즘이 우승자로 선언되었습니다. Rijndael 알고리즘은 새로운 AES 데이터 암호화 표준이 되었습니다.

AES 알고리즘은 "Feistel 네트워크"라고 불리는 구조를 가진 가장 잘 알려진 대칭 암호화 알고리즘과 유사하지 않으며 러시아 GOST 28147-89와 유사합니다. AES 알고리즘은 국내 암호화 표준과 달리 처리된 데이터의 각 블록을 설정된 블록 길이에 따라 4x4, 4x6 또는 4x8 크기의 2차원 바이트 배열 형태로 나타냅니다. 암호화된 정보 블록이 허용됩니다. 또한 적절한 단계에서 변환은 독립 열, 독립 행 또는 개별 바이트에서 수행됩니다.

AES 알고리즘은 특정 수의 라운드(10~14 - 블록 크기 및 키 길이에 따라 다름)로 구성되며 4가지 변환을 수행합니다.

BS(ByteSub) - 배열의 각 바이트에 대한 테이블 교체(그림 6.5)

SR(ShiftRow) - 배열의 행을 이동합니다(그림 6.6). 이 작업을 사용하면 첫 번째 줄은 변경되지 않고 나머지 줄은 배열 크기에 따라 고정된 바이트 수만큼 순환적으로 바이트 단위로 왼쪽으로 이동됩니다. 예를 들어, 4x4 배열의 경우 라인 2, 3, 4는 각각 1, 2, 3바이트씩 이동됩니다.

MS(MixColumn)는 특정 규칙에 따라 각 열에 고정 행렬 c(x)를 곱하는 배열의 독립 열에 대한 연산입니다(그림 6.7).

AK(AddRoundKey) - 키를 추가합니다. 배열의 각 비트는 라운드 키의 해당 비트와 모듈로 2로 추가되며, 이는 차례로 암호화 키에서 특정 방식으로 계산됩니다(그림 6.8).


쌀. 6.5.

State 배열의 각 바이트를 처리하려면

쌀. 6.6. SR(ShiftRow) 변환은 마지막 3개를 주기적으로 이동합니다.

State 배열의 문자열

2 제이

온스로

zz로

쌀. 6.8. AK 변환(AddRoundKey)은 각 키의 XOR 추가를 수행합니다.

키 세트의 단어가 포함된 상태 배열 열

이러한 변환은 "state" 포인터로 주소가 지정되는 State 배열에 영향을 줍니다. AddRoundKey 변환은 추가 포인터를 사용하여 라운드 키를 처리합니다.

BS(ByteSub) 변환은 iS-box 대체 테이블을 사용하여 State 배열의 각 바이트에서 독립적으로 작동하는 비선형 바이트 대체입니다.

각 라운드(일부 예외 포함)에서는 암호화된 데이터에 대해 다음 작업이 차례로 수행됩니다.

변환(그림 6.9). 첫 번째 라운드와 마지막 라운드에는 예외가 적용됩니다. 첫 번째 라운드 이전에는 A K 연산이 추가로 수행되며, 마지막 라운드에는 MS가 없습니다.

쌀. 6.9.

결과적으로 암호화 중 작업 순서는 다음과 같습니다.

AK, (BS, SR, MC, AK)(반복됨) 아르 자형- 1회), BS, SR, AK.

암호화 라운드 수 아르 자형 AES 알고리즘에서는 가변적(10, 12 또는 14라운드)이며 블록 크기와 암호화 키에 따라 다릅니다(키에 대한 고정 크기도 여러 개 있음).

복호화는 다음과 같은 역방향 작업을 통해 수행됩니다. 테이블이 반전되고 테이블이 반전 테이블(암호화에 사용된 테이블과 관련됨)로 대체됩니다. SR의 반대 작업은 행을 왼쪽이 아닌 오른쪽으로 회전하는 것입니다. MS의 역연산은 동일한 규칙을 사용하여 다른 행렬을 곱하는 것입니다. d(x),조건 c(x)를 만족함 d(x) = 1. AK 키를 추가하는 것은 XOR 연산만 사용하기 때문에 그 자체가 반대입니다. 이러한 역방향 작업은 암호화 중에 사용된 것과 반대 순서로 해독 중에 적용됩니다.

AES 암호의 모든 변환에는 엄격한 수학적 기반이 있습니다. 구조 자체와 작업 순서를 통해 이 알고리즘을 8비트 및 32비트 프로세서 모두에서 효과적으로 실행할 수 있습니다. 알고리즘의 구조에는 일부 작업의 병렬 실행 가능성이 포함되어 있어 다중 프로세서 워크스테이션의 암호화 속도를 4배까지 높일 수 있습니다.

AES 알고리즘은 다른 알고리즘에 비해 여러 가지 장점으로 인해 데이터 암호화의 새로운 표준이 되었습니다. 우선, 소프트웨어와 하드웨어 구현 모두 모든 플랫폼에서 높은 암호화 속도를 제공합니다. 또한 작동에 필요한 리소스 요구 사항이 최소화되어 컴퓨팅 기능이 제한된 장치에서 사용할 때 중요합니다.

AES 알고리즘의 유일한 단점은 틀에 얽매이지 않는 디자인입니다. 사실 "Feistel 네트워크"를 기반으로 한 알고리즘의 속성은 잘 연구되어 있는 반면, AES는 널리 사용된 후 일정 시간이 지난 후에야 발견할 수 있는 숨겨진 취약점을 포함할 수 있습니다.

다른 대칭 블록 암호화 알고리즘도 데이터를 암호화하는 데 사용됩니다.

블록 대칭의 기본 작동 모드

연산

대부분의 블록 대칭 암호화 알고리즘은 64비트 입력 일반 텍스트를 64비트 출력 암호문으로 직접 변환하지만 데이터가 64비트로 제한되는 경우는 거의 없습니다.

다양한 암호화 문제를 해결하기 위해 블록 대칭 알고리즘을 활용하기 위해 네 가지 작동 모드가 개발되었습니다.

  • 전자 코드북 EU B(전자 코드북);
  • CBC 암호 블록 체인화(Cipher Block Chaining);
  • CFB(암호 피드백) 암호문 피드백;
  • OFB(출력 피드백) 피드백.

이러한 작동 모드는 원래 DES 블록 알고리즘용으로 설계되었지만 다른 블록 암호화 알고리즘은 이러한 모드에서 작동할 수 있습니다.