근대 암호 중 하나인 Affine 암호입니다. 해당 압호는 Shift 암호를 개선한 형태라고는 하지만 Shift 암호보다 약합니다. 해당 암호의 원리를 알기전에 Shift 암호에 대해 간단히 설명하겠습니다.
- Shift 암호는 시저 암호의 발전된 형태입니다. 시저암호는 단순히 알파벳에 +3 형태였습니다. 즉 [abc]라는 평문을 상대방에게 암호화하여 전달하게 되면 [def]가 됩니다. 그럼 해당 암호문을 받은 상대방은 알파벳에 -3을 해주면 [abc]라는 평문을 알 수 있게됩니다. 즉 키값이 3입니다. shift 암호는 고정된 키값 3이 아닌 유동적인 여러 키값을 사용이 가능합니다. 하지만 알파벳의 개수는 26개 즉 키값을 여러개를 사용하여도 키값이 26이 되면 원래의 평문이 출력되게 됩니다. 이는 mod 연산 내에서 mod 26의 형태입니다. 27 mod 26 = 1, 28 mod 26 = 2 이런식으로 덧셈에 대한 역원을 적용하게 됩니다. 즉 26의 배수가 되면 어떤 수가 나오든 원래의 평문 즉 키값이 0인 상태와 동일하다는 의미가 됩니다. 그리하여 shift 암호의 키값의 개수는 25개 입니다.
- 이러한 shift 암호를 개선했다고 하는 affine 암호는 shift 암호가 mod에 덧셈에 대한 역원을 구했다면 affine 암호는 곱셈에 대한 역원을 구하는 방식입니다. mod 연산에서 곱셈에 대한 역원을 구하는 방법은 아래 링크에서 자세히 설명합니다.
https://ohs-o.tistory.com/12?category=893328
- 이러한 복잡함에도 불구하고 shift 암호에 비해 약하다라는 이유는 키값의 개수에 문제가 있습니다. shift 암호는 암호화시 키값을 총 25개 까지 적용이 가능하지만 affine 암호에 경우 곱샘에 대한 역원이 없는 경우도 존재하기 때문에 총 사용할 수 있는 키값의 개수는 12개가 됩니다. 사용할 수 있는 키의 개수 차이가 2배 이상이 나기 때문에 약하다고 할 수 있습니다.
'Crypto' 카테고리의 다른 글
스트림암호와 블록암호 [Crypto] (0) | 2020.02.20 |
---|---|
Feistel 암호 시스템 [Crypto] (0) | 2020.02.17 |
Pigpen 암호 [Crypto] (0) | 2020.02.15 |
정보보호 역사(근대 암호) [Crypto] (0) | 2020.02.12 |
정보보호 역사 (고대암호) [Crypto] (0) | 2020.02.09 |