이항 연산 (Dyadic)

고급암호학수정일

이항 연산(dyadic operation)은 정확히 두 개의 입력(피연산자, 인수)을 받는 연산 또는 함수입니다. 두 값 x, y를 받아 하나의 결과 f(x, y)를 내며, 입력이 하나인 단항(monadic) 연산과 구별됩니다. dyadic은 그리스어 dyad(둘, 한 쌍)에서 온 말로, 두 입력을 받는 성질을 뜻합니다.

기본 예

  • 산술 연산: 덧셈 x + y, 곱셈 x × y는 대표적인 이항 연산입니다.
  • 논리·비트 연산: AND, OR, XOR은 두 비트를 받아 한 비트를 냅니다. 반면 NOT은 입력이 하나뿐인 단항 연산입니다.
  • 프로그래밍 언어: APL 계열 언어에서는 같은 기호라도 인수가 하나면 monadic, 둘이면 dyadic 함수로 동작해 이 용어가 특히 자주 쓰입니다.

암호학에서의 이항 연산

  • XOR: 스트림 암호와 일회용 패드는 평문 비트와 키 스트림 비트를 XOR해 암호문을 만듭니다. 같은 키 스트림을 다시 XOR하면 평문이 복원됩니다(x ⊕ k ⊕ k = x).
  • 모듈러 덧셈과 곱셈: (x + y) mod 232 같은 덧셈은 SHA-256, ChaCha20 등 해시 함수와 암호의 내부 연산에 쓰이고, 모듈러 곱셈은 RSA와 타원곡선 암호의 기초가 됩니다.
  • 키 결합: AES의 AddRoundKey처럼 데이터 블록과 라운드 키를 결합하는 단계도 두 입력을 받는 이항 연산입니다.

이항 연산의 성질

이항 연산은 교환법칙(x ∘ y = y ∘ x)과 결합법칙((x ∘ y) ∘ z = x ∘ (y ∘ z))을 만족하는지에 따라 성질이 달라집니다. XOR과 모듈러 덧셈은 두 법칙을 모두 만족하고 항등원(0)과 역원이 있어 군을 이루지만, 뺄셈은 교환법칙을 만족하지 않습니다. 암호 설계에서는 이런 대수적 성질이 계산을 되돌릴 수 있는지, 서로 다른 연산을 섞었을 때 분석이 얼마나 어려워지는지를 결정합니다. 예를 들어 덧셈, 회전, XOR을 섞는 ARX 구조는 서로 다른 대수 구조의 연산을 조합해 비선형성을 얻습니다.

「두 당사자」라는 의미

dyadic은 연산뿐 아니라 두 당사자 사이의 관계를 가리키는 데도 쓰입니다. 예를 들어 각자 비공개 입력을 가진 두 당사자가 서로의 입력을 공개하지 않고 함께 함수를 계산하는 2자간 안전 계산(2PC) 프로토콜이 이런 경우에 해당합니다.

정리하면 dyadic은 「둘」을 뜻하며, 암호학과 컴퓨터 과학에서는 주로 XOR이나 모듈러 덧셈처럼 두 입력을 받아 하나의 결과를 내는 이항 연산을 가리킵니다.

이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.