교환법칙 (Commutative)

고급암호학수정일

교환법칙(commutative law)은 이항 연산에서 두 피연산자의 순서를 바꿔도 결과가 같은 성질입니다. 집합 위의 연산 ∗가 모든 원소 a, b에 대해 a ∗ b = b ∗ a를 만족하면 그 연산을 교환적이라고 합니다(예: a + b = b + a).

일상의 예

  • 덧셈: 사과 5개가 있고 3개를 더 받았다면, 5 + 3으로 계산하든 3 + 5로 계산하든 결국 사과 8개가 됩니다.
  • 곱셈: 의자가 한 줄에 6개씩 4줄 있는 것과 한 줄에 4개씩 6줄 있는 것은 모두 24개입니다(4 × 6 = 6 × 4).

두 비트코인 금액을 더할 때도 1 BTC + 3 BTC와 3 BTC + 1 BTC는 모두 4 BTC입니다. 요소의 순서가 결과에 영향을 주지 않는 이 성질이 교환법칙입니다.

교환 여부 확인하기

교환법칙은 두 원소를 하나로 결합하는 이항 연산에 대한 성질입니다. 연산이 교환적인지 확인하려면 “두 원소의 위치를 바꿔도 결과가 같은가?”를 물어보면 됩니다.

  • 교환적인 연산: 수의 덧셈(a + b = b + a), 수의 곱셈(a × b = b × a), 비트 단위 XOR(a ⊕ b = b ⊕ a)
  • 교환적이지 않은 연산: 뺄셈(5 − 3 ≠ 3 − 5), 나눗셈(10 / 2 ≠ 2 / 10), 행렬의 곱셈(일반적으로 AB ≠ BA), 함수의 합성(일반적으로 f∘g ≠ g∘f), 문자열 이어 붙이기(“ab” ≠ “ba”)

추상 대수학에서의 교환법칙

교환법칙은 대수 구조를 분류하는 기준이 됩니다.

  • 아벨 군(가환군): 연산이 교환적인 군입니다. 정수의 덧셈군, 0이 아닌 유리수의 곱셈군, 타원곡선 위의 점들이 이루는 군이 그 예입니다.
  • 가환환: 곱셈까지 교환적인 환입니다. 정수환 ℤ, 정수를 n으로 나눈 나머지의 환 ℤn, 유한체 등이 있습니다. 반면 n × n 정사각행렬의 환(n ≥ 2)은 곱셈이 교환적이지 않습니다.

암호에서 교환법칙의 역할

여러 공개 키 암호 방식은 연산의 교환성에 기대어 작동합니다. 대표적인 예가 디피-헬만 키 교환입니다. 앨리스는 비밀 값 a로 ga를, 밥은 비밀 값 b로 gb를 계산해 서로에게 보냅니다. 그러면 앨리스는 (gb)a를, 밥은 (ga)b를 계산하는데, 지수의 곱 ab = ba가 성립하므로 두 사람은 같은 공유 비밀 gab를 얻습니다. 타원곡선 디피-헬만(ECDH)에서도 a(bG) = b(aG)라는 같은 원리가 쓰입니다.

반대로 비교환 구조가 의도적으로 쓰이기도 합니다. 예를 들어 AES 같은 블록 암호에서는 라운드 연산의 순서가 결과를 좌우하므로, 암호화할 때와 반대 순서로 역연산을 적용해야 복호화됩니다. 이처럼 어떤 연산이 교환적인지 아닌지를 아는 것은 알고리즘의 설계와 안전성 분석에 직접 영향을 줍니다.

블록체인에서 볼 수 있는 예

  • 교환적인 경우: 타원곡선 위의 점 덧셈은 교환적이므로, 여러 공개 키를 단순히 더해 하나의 키를 만들 때 더하는 순서는 결과에 영향을 주지 않습니다. 다만 슈노르 서명 기반의 다중 서명 방식인 MuSig2(BIP-327)는 키 목록 전체를 해시해 각 키의 계수를 정하므로 목록 순서가 결과에 영향을 주며, 그래서 키를 미리 정렬해 순서를 맞추는 방법을 함께 정의합니다.
  • 교환적이지 않은 경우: 데이터를 이어 붙인 뒤 해시하는 연산은 순서에 민감해, 일반적으로 H(a‖b)와 H(b‖a)는 다른 값이 됩니다. 그래서 머클 트리에서 증명을 검증할 때는 형제 노드를 왼쪽에 붙일지 오른쪽에 붙일지를 정확히 지켜야 합니다.

결합법칙과의 차이

교환법칙은 피연산자의 순서에 관한 성질이고, 결합법칙은 (a ∗ b) ∗ c = a ∗ (b ∗ c)처럼 연산을 묶는 방식에 관한 성질입니다. 두 성질은 서로 독립적입니다. 예를 들어 행렬의 곱셈은 결합법칙은 만족하지만 교환법칙은 만족하지 않습니다.

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