아핀 (Affine)
아핀(affine)은 일차(선형) 변환에 상수 이동을 더한 f(x)=ax+b 꼴의 변환을 뜻합니다. 암호학에서는 이를 이용한 고전 암호인 아핀 암호, 현대 블록 암호 S-박스의 아핀 변환, 아핀 불 함수 등의 개념으로 쓰입니다. 트레이딩 용어가 아닙니다.
자세히 알아보기
아핀 암호는 알파벳 26글자를 0~25의 숫자로 바꾼 뒤 E(x) = (a·x + b) mod 26으로 암호화합니다. 복호화하려면 a의 모듈러 역원이 있어야 하므로 a는 26과 서로소(gcd(a, 26) = 1)여야 합니다. 가능한 a는 12개, b는 26개이므로 키는 312가지뿐이고, 한 글자씩 바꾸는 단일 알파벳 치환이라 빈도 분석이나 전수 조사로 쉽게 풀립니다. a = 1이면 시저 암호가 됩니다.
현대 암호에서 아핀성은 오히려 피해야 할 성질입니다. 출력이 입력의 아핀 함수이면 연립방정식으로 쉽게 풀리기 때문입니다. 그래서 불 함수와 S-박스의 '비선형성'은 가장 가까운 아핀 함수와 얼마나 다른지로 측정합니다. 다만 비선형 연산 뒤에 아핀 변환을 붙이는 것은 흔한 설계입니다. AES의 S-박스는 GF(2⁸)에서 역원을 구한 뒤 GF(2) 위의 아핀 변환을 적용해 만듭니다.
아핀 변환은 벡터와 행렬로도 표현됩니다. n비트 입력 벡터 x에 대해 y = A·x ⊕ b(A는 가역 행렬, b는 상수 벡터)로 쓰며, AES S-박스의 마지막 단계가 바로 이런 GF(2) 위 8×8 아핀 변환입니다. 행렬 부분만 있으면 선형 변환, 상수 덧셈이 더해지면 아핀 변환이라고 구분합니다. 선형 암호 분석은 암호 전체를 이런 선형·아핀 관계로 근사할 수 있는지를 찾는 공격이므로, 설계자는 아핀 근사가 거의 통하지 않도록 비선형 요소를 배치합니다.
블록체인 분야에서는 타원곡선 계산의 '아핀 좌표'라는 말로도 이 단어를 만납니다. 타원곡선 위의 점을 (x, y) 두 좌표로 나타내는 일반적인 방식이 아핀 좌표이고, 계산 속도를 높이려고 쓰는 (X, Y, Z) 표현은 사영(야코비안) 좌표라고 부릅니다. secp256k1 공개 키도 최종적으로는 아핀 좌표로 변환해 저장합니다.
쉽게 말하면
"두 배 한 다음 3을 더하라"처럼 곱하고 더하기만 하는 규칙입니다. 계산이 쉬운 만큼 거꾸로 풀기도 쉬워서, 그것만으로는 좋은 암호가 되지 못합니다.
예시
a = 5, b = 8일 때 'A'(0) → 8 → 'I', 'C'(2) → 18 → 'S'. 복호화는 5의 역원 21(5·21 = 105 ≡ 1 mod 26)을 써서 x = 21·(y − 8) mod 26으로 합니다.
이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.