Affine Cipher (어파인 암호)

고전적인 수기 암호 중 하나로, 수학적으로 F(x) = ax + b (mod n)로 표현되며, 0이 아닌 항이 이 방정식을 아핀으로 만듭니다.

수학적 반전이 있는 고전적인 수기 암호

아핀 암호는 수 세기 동안 사용되어 온 매혹적인 암호화 기술입니다. 간단한 수학 공식을 사용하여 비밀 메시지를 해독 불가능한 코드로 변환한다고 상상해 보세요!

작동 방식은 다음과 같습니다.

  • 메시지의 각 문자는 숫자로 표현됩니다 (A=0, B=1, C=2 등).
  • 그런 다음 이 숫자는 아핀 암호 공식에 대입됩니다.

F(x) = ax + b (mod n)

공식에 겁먹지 마세요! 자세히 살펴보겠습니다.

  1. x는 암호화하려는 문자의 숫자 값입니다.
  2. a는 x에 곱하는 비밀 키 (선택하는 숫자)입니다. 중요: ‘a’와 ‘n’은 서로소여야 합니다. 즉, 공통 약수가 1이어야 합니다. 이를 통해 고유한 복호화가 보장됩니다!
  3. b는 결과에 더해지는 또 다른 비밀 키 (선택하는 숫자)입니다.
  4. n은 알파벳의 총 문자 수를 나타냅니다 (일반적으로 영어의 경우 26).
  5. mod n (모듈로 n)은 결과를 ‘n’으로 나누고 나머지를 취한다는 의미입니다. 이를 통해 결과가 항상 알파벳 범위 내에 있도록 합니다.

이 공식의 결과는 암호화된 문자를 나타내는 새로운 숫자입니다. 메시지를 해독하려면 공식의 역을 사용하여 프로세스를 반대로 수행하면 됩니다.

아핀 암호는 단순해 보이지만 그 우아함은 수학적 기초에 있습니다. 기본적인 수학 개념조차도 강력한 암호화 방법을 만드는 데 어떻게 사용될 수 있는지 보여주는 증거입니다.

아핀 암호는 고전적인 수기 암호 중 하나입니다. 수학적으로 F(x) = ax + b (mod n)로 설명할 수 있으며, 여기서 0이 아닌 항은 방정식을 아핀으로 만듭니다.

실제 사례를 통한 이해:

  • 예 1: 알파벳에서 글자 이동:
  • 알파벳의 각 문자를 숫자 (A=0, B=1, C=2, …, Z=25)로 생각한다면, a=5 및 b=8을 사용하여 아핀 암호를 적용하면 각 문자가 다른 위치로 이동합니다. 예를 들어:

    • A (0)는 I (8)가 됩니다.
    • B (1)는 N (13)이 됩니다.
    • C (2)는 S (18)가 됩니다.
  • 예 2: 메시지 암호화:
  • a=7 및 b=3으로 아핀 암호를 사용하여 “HELLO”를 암호화하려는 경우:

    1. ‘H’는 7 -> F(7)=7*7+3 mod 26 -> ‘U’
    2. ‘E’는 4 -> F(4)=7*4+3 mod 26 -> ‘V’

    암호화된 메시지는 “UV…”가 됩니다.F(x) = (ax + b) (mod n)

    여기서:

    • x는 평문 문자
    • ab는 암호의 키
    • n은 알파벳의 크기 (일반적으로 영어의 경우 26)
    • (mod n)은 모듈로 연산을 의미하며 결과가 알파벳 범위 내에 있도록 보장합니다.

    “아핀”이라는 용어는 암호가 암호화 및 복호화에 선형 함수(ax + b)를 사용한다는 사실에서 비롯됩니다. “0이 아닌” 항은 키 “a“를 나타내며, 모듈로 n에 대한 곱셈 역수가 있어야 합니다. 이를 통해 암호를 되돌릴 수 있고 복호화가 가능합니다.

    장점:

    • 간단한 구현: 수학 공식이 간단하여 손으로도 쉽게 이해하고 구현할 수 있습니다.
    • 빠른 암호화 및 복호화: 관련된 계산이 비교적 간단하여 암호화 및 복호화 프로세스가 빠릅니다.

    단점:

    • 취약한 보안: 암호는 알려진 평문 공격에 매우 취약합니다. 몇 개의 알려진 평문-암호문 쌍으로 키를 쉽게 추론할 수 있습니다.
    • 제한된 키 공간: 가능한 키의 수는 알파벳 크기와 “a“가 “n“과 서로소여야 한다는 요구 사항에 의해 제한됩니다. 이는 무차별 대입 공격을 가능하게 합니다.

    용도:

    단순성과 취약성 때문에 아핀 암호는 안전한 통신을 위해 실제로 사용되지 않습니다. 그러나 모듈러 산술 및 기본 암호화 원리와 같은 개념을 소개하는 데 훌륭한 교육 도구 역할을 합니다.