추출기 (Extractor)

고급암호학수정일

추출기(extractor)는 암호학적 맥락에서 결합기(combiner)의 반대 효과를 내는 메커니즘입니다. 결합기가 평문 데이터와 키 스트림 같은 비밀 값을 섞어 암호문을 만들면, 추출기는 같은 비밀 값을 이용해 암호문에서 원래 데이터를 다시 꺼냅니다. 즉 데이터는 결합기에서 암호화되고 추출기에서 해독됩니다. 배타적 OR(XOR)의 경우처럼 추출기가 결합기와 똑같은 연산일 때도 있습니다.

추출기는 무엇을 합니까?

비밀 메시지를 키와 섞어 다른 사람이 읽을 수 없게 만드는 장치를 “결합기”라고 할 수 있습니다. 이것이 암호화입니다. 이 메시지를 다시 읽으려면 결합기의 반대 역할을 하는 추출기가 필요합니다. 추출기는 결합에 쓰인 것과 같은 키(또는 같은 키 스트림)를 사용해 메시지를 해독하고 원래 정보를 복원합니다. 예를 들어 이메일 암호화 도구가 메시지를 읽을 수 없는 형태로 바꾸면, 수신자 쪽의 복호화 과정이 추출기 역할을 해 메시지를 다시 읽을 수 있는 텍스트로 되돌립니다.

추출기의 안전성은 짝을 이루는 결합기와 키에 직접 달려 있습니다. 결합 방식이 약하거나 키가 노출되면 추출기가 아무리 정확하게 동작해도 보안은 유지되지 않습니다.

배타적 OR의 사례

경우에 따라서는 하나의 연산으로 암호화와 해독을 모두 수행할 수 있습니다. 배타적 OR(XOR) 연산이 그런 예입니다. XOR은 키 비트가 1인 자리의 데이터 비트를 뒤집는 연산이어서, 같은 키로 한 번 적용하면 암호화되고 다시 적용하면 원래대로 돌아옵니다. 그래서 XOR에서는 결합기와 추출기가 동일합니다.

  • 데이터 비트 1을 키 비트 1과 XOR하면 암호화된 비트 0이 나옵니다: XOR(1,1)=0
  • 암호화된 비트 0을 같은 키 비트 1로 다시 XOR하면 원래 비트 1로 복원됩니다: XOR(0,1)=1

XOR의 안전성 조건

XOR은 빠르고 단순하지만, 키가 메시지만큼 길고 완전히 무작위이며 한 번만 쓰이는 경우(일회용 패드, one-time pad)가 아니면 단독으로는 안전하지 않습니다. 같은 키를 반복해 쓰면 두 암호문을 XOR해 키를 지울 수 있으므로 비교적 쉽게 해독될 수 있습니다. 실제 스트림 암호는 짧은 키로 긴 의사난수 키 스트림을 만들고, 이를 XOR 결합기와 추출기에 사용합니다.

다른 뜻의 “추출기”와 구별하기

암호학에는 이름이 비슷한 무작위성 추출기(randomness extractor)라는 개념도 있습니다. 이것은 편향되거나 불완전한 난수원에서 고르게 분포된 난수를 뽑아내는 함수로, 결합기의 짝인 여기서의 추출기와는 다른 개념입니다. 문맥에서 결합기와 함께 쓰였다면 해독 메커니즘을 뜻한다고 보면 됩니다.

정리하면, “추출기”는 결합기와 짝을 이루는 해독 메커니즘이며, 그 보안은 결합 방식과 키 관리에 따라 결정됩니다.

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