-
네트워크 보안 - 6 | 기타 암호 주제컴퓨터 공학/보안 2023. 2. 3. 22:36
비밀 공유
비밀 S가 있고 앨리스와 밥이 이 비밀을 서로 공유하고자 한다. 이때 비밀을 공유한다는 것은 다음의 뜻이다.
- 앨리스와 밥 단독으로는 비밀 S를 알아낼 수 없다.
- 앨리스와 밥이 함께 힘을 합치는 경우에만 비밀 S를 알아낼 수 있다.
이는 언뜻 보기에는 어려운 문제처럼 보일 수 있지만 생각보다 간단한 방법으로 해결할 수 있다.
비밀 S를 가지고 (0, S)를 통과하는 직선을 하나 그린다. 그리고 해당 선 위에 존재하는 두 개의 점을 정해서 하나는 앨리스에게 주고, 하나는 밥에게 주면 된다.
직선은 최소 두 개의 선이 존재해야 그릴 수 있으므로, 둘 중 한 명의 정보만 가지고는 S의 값을 알 수 없다. 하지만 앨리스와 밥이 서로의 값을 공개하여 직선을 그린다면 S의 값을 알아낼 수 있을 것이다.
이러한 비밀 공유 체계는 'n 중의 m'체계로 확장할 수 있다. 이는 n명의 참석자들 중에서 m명이 서로 협조해야 비밀을 알아낼 수 있는 경우를 말한다. 이때 m-1차 다항식을 이용해서 비밀 공유 체계를 구축할 수 있다.
예를 들어 7명 중에서 4명이 서로 힘을 합쳐야 비밀을 알 수 있는 비밀 공유 체계를 만든다고 해보자. 이 경우 3차 방정식을 이용하고, 7개의 점을 정해 서로에게 나눠주는 식으로 구현할 수 있다. 최소 4명 이상이 모여 4개의 점이 준비된다면, 해당 3차 방정식을 만들어 S를 유추할 수 있게 될 것이다.
난수
암호학에서 난수는 굉장히 중요한 기초이다. RSA의 키 쌍을 생성하거나, 디피-헬먼의 지수의 생성, 대칭키의 생성과 같이 암호를 사용함에 있어서 가장 기본이 되는 부분에 항상 난수가 사용된다. 또한 이후에 알아볼 보안 프로토콜에서도 난수가 중요한 역할을 수행한다.
난수는 시뮬레이션이나 통계와 같이 보안과 관계없는 분야에서도 많이 사용되는데, 이렇게 무작위와 구분하기 어렵다는 의미의 난수는 통계학적 무작위성을 만족해야 한다.
하지만 암호학적 난수는 통계학적 무작위성을 만족해야 할 뿐만 아니라 예측도 불가능해야 하는 더욱 엄격한 요구조건을 만족해야만 한다. 실제로 아무렇지 않게 사용하는 난수들이 충분히 무작위적이고 예측이 불가능하다고 생각할 수 있지만, 모든 암호의 기초가 되는 난수에서 약간이라도 예측이 가능한 부분이 발생한다면, 모든 암호체계에 위험이 생길 수 있기 때문에 그만큼 민감한 주제라고 볼 수 있다.
텍사스 홀뎀 포커
실제로 암호학적 난수를 생성하는 잘못된 방법의 좋은 예시인 AFS 소프트사의 텍사스 홀뎀 포커 카드게임에 대해 알아보자. 이 내용에 대해 이해하기 위해 실제 텍사스 홀뎀 포커 카드게임이 어떤 식으로 진행되는 게임인지 알 필요는 없다. 다만 게임의 참가자가 자신의 카드가 아닌 다른 사람의 카드를 예측할 수 있게 된다면 아주 유리해진다는 것만 알면 된다.
해당 카드 게임의 온라인 버전에서는 가상의 카드를 섞기 위해 난수를 사용했는데, 해당 프로그램에서 난수를 생성하는 방법이 완전한 암호학적 난수가 아니어서, 이 원리를 알아챈 참가자는 다른 사람의 카드를 모두 예측할 수 있었다.
먼저 52장의 카드 뭉치를 섞을 수 있는 경우의 수는 52!이다. 이는 $2^{225}$보다 큰 수이지만, 해당 게임 프로그램에서는 셔플을 위해 32비트의 정수를 사용했다. 따라서 총 52!의 경우 중 $2^{32}$만큼의 셔플만을 생성할 수 있었다.
또한 셔플을 생성하기 위해 해당 프로그램이 사용한 파스칼 난수 생성기(PRNG)는 자정부터 밀리세컨드를 계산하는 함수로 시드 값을 계산해 난수를 생성한다. 이때 하루의 밀리세컨드 수는 24×60×60×1000으로 $2^{27}$보다 작은 수이다.
따라서 아무리 잘해봐야 $2^{27}$개 보다 적은 수의 셔플 만을 생성할 수 있었다.
만약 공격자가 자신의 시계를 해당 온라인 게임의 서버 시계와 정확히 맞추어 두었다면, 경우의 수를 $2^{18}$보다 적은 수로 줄일 수 있는데, 게임을 진행하면서 사용되는 카드들을 비교해 봄으로써 현재 게임에 사용된 셔플이 어떤 셔플인지를 알아낼 수 있게 된다.
이러한 예시는 암호학적 난수가 필요한 곳에 예측할 수 있는 난수가 사용되면 발생할 수 있는 극단적인 예시이다. 또한 예측할 수 없는 셔플이라 할지라도 가능한 무작위 셔플의 수가 너무 적을 경우에도 그 체계는 안전하지 못하다.
무작위 비트 생성
그렇다면 진정한 무작위는 도대체 어떠한 방식으로 생성해야 하는 것일까?
소프트웨어 자체로는 완벽한 난수를 생성하는 것이 힘들 수 있다. 따라서 정말로 안전한 난수는 외부에서 생성해서 가져오는 방식이 더 좋을 수도 있다.
예를 들어 방사능 물질의 붕괴는 사실상 완전한 무작위를 가진다고 볼 수 있다. 하지만 방사능 물질을 이용한 컴퓨터를 만들기는 힘들기 때문에 다른 예시를 찾아보자면, 예측하기 어려운 물리적 성질이나 카오스 현상을 이용할 수 있다.
이러한 특수한 장비뿐 아니라 마우스의 움직임, 특정한 네트워크 활동과 같은 예측이 불가능한 영역에서 무작위 비트를 얻을 수도 있다.
아무튼 중요한 것은 무작위 비트를 생성하는 것은 보안의 가장 기본적인 시작이지만, 동시에 완벽하게 구현하기가 어려운 문제 중 하나이다.
정보은닉
이번에는 정보은닉의 두 가지 관점인 스테가노그래피와 디지털 워터마킹에 대해 알아보자.
스테가노그래피(Steganography)
먼저 스테가노그래피는 감추어진 기록이라는 뜻으로, 과거에 암호학이 발전하지 않던 시기에 정보가 전송되는 것을 숨기려 시도한 것이 그 시초라고 볼 수 있다.
헤로도토스가 기록한 내용 중에 다음과 같은 내용이 있다. 한 그리스 장군이 노예의 머리를 면도하고, 그 위에 페르시아 침공에 대한 경고를 메시지로 쓴 다음, 노예의 머리카락이 충분히 자랐을 때 전선을 통과시켜 노예를 다른 장군에게 보냈다는 기록이 있다.
즉, 암호가 충분히 발전하지 않았을 때에는 아예 정보를 전송한다는 사실 자체를 숨기는 것이 더욱 효율적이었다. 그리고 이러한 스테가노그래피는 현대에서도 충분히 사용될 수 있다.
예를 들어 HTML문서에 은밀하게 정보를 은닉한다고 가정해 보자.
겉보기에는 그냥 단순한 HTML문서로 보일 수 있게 작성하지만, 폰트의 색상을 아주 교묘하게 서로 다르게 설정하는 것이다. 그렇다면 단순히 보기에는 숨겨진 정보가 없는 문서처럼 보이겠지만, 사실은 폰트 색상의 차이로 특정한 정보를 숨길 수 있는 것이다.
이러한 스테가노그래피는 정보를 은닉하는 새로운 방법이지만 완전한 암호화가 아니기 때문에 아무래도 여러 가지 문제점이 있다. 다음은 스테가노그래피를 사용했을 때 주의해야 할 문제점이다.
- 숨기려는 정보에 의해 원 정보가 훼손되어서는 안 된다.
- 정보를 공유하려는 상대가 해당 은닉 체계에 대해 이해하고 있어야 한다.
- 공격자가 해당 정보 은닉 체계에 대해 이해하고 있다면, 숨기려는 데이터는 해당 공격자로부터 안전하지 못하다.
디지털 워터마킹
워터마킹 역시 스테가노그래피와 유사하게 특정한 데이터를 숨기는 방식이다. 하지만 스테가노그래피와는 다르게 특정한 식별자를 데이터에 첨가하는데, 이 식별자는 불법적인 재배포의 책임을 식별하기 위해 주로 숨기는 경우가 많다.
이러한 디지털 워터마킹은 다음과 같은 특징을 가지고 있다.
- 투명 워터마킹: 워터마킹이 미디어 내에서 인지되지 않은 상태로 있다.
- 가시 워터마킹: 워터마킹이 알아볼 수 있는 상태로 있다.
- 강한 워터마킹: 공격을 받아도 읽을 수 있는 상태로 남는다.
- 약한 워터마킹: 공격을 받으면 파괴되거나 손상을 받는다.
어떤 미디어나 자료에 디지털 워터마킹을 찍는 경우에 위의 특징들을 잘 고려하여 원하는 형태의 워터마킹을 남길 수 있다.
예를 들어 해적판을 탐지하고자 하는 목적이 있는 경우 강하고 투명한 워터마킹을 사용할 수 있다. 따라서 해당 해적판이 인터넷상에 나타나면 그 근원지를 추적하기 위해 사용할 수도 있다.
또는 약하고 투명한 워터마킹을 사용하여, 데이터가 변형되는 것을 확인하는 무결성 점검의 형태로도 사용할 수 있다.
가시 워터마킹의 경우 인터넷에 떠도는 이미지 중 뒤에 출처가 흐릿하게 표시되어 있는 형태, 또는 문서 자체에 일급비밀이라는 도장이 찍혀있는 것이 그 예시이다.
현재 대부분의 국가에서 사용하는 지폐에도 디지털은 아니지만 워터마킹이 들어있다. 이러한 워터마킹의 경우 가시 워터마킹의 일종으로 위조를 더욱 어렵게 만들기 위해 설계가 되어 있다.