난수라는 용어를 들어보셨나요? 난수는 생소하지만 우리 생활 속에서 많이 쓰이고 있는 기술입니다. 은행 보안카드와 사이트에 로그인 시 비밀번호도 난수로 암호화 처리를 거칩니다. 오늘은 난수와 난수 발생기에 대해 알아보겠습니다.
Q:난수란 무엇인가요?
A:난수는 여러 숫자가 있을 때 무작위로 뽑은 숫자가 나올 확률이 모두 같은 것을 의미합니다. 예를 들어 상자에 1부터 10까지 숫자를 적어 놓고 하나를 뽑았을 때 그 숫자는 10분의 1 확률로 뽑혔고 다른 숫자를 뽑더라도 그 확률은 10분의 1로 모두 동일할 것입니다. 확률은 난수를 정의하는 가장 기본적인 성질입니다. 하나의 수를 선택했을 때 다음 번 발생하는 난수를 예상할 수 없어야 합니다. 앞에 예를 조금 변형하여 보면 한 가지 숫자를 뽑고 다시 상자로 넣지 않으면 뽑기를 계속할수록 어떤 숫자가 나올지 예측하기 쉽습니다. 앞에 뽑힌 숫자가 다음에 다시 나오지 않기 때문에 나중에 뽑히는 숫자에 영향을 주게 됩니다. 이런 경우에 뽑히는 숫자를 난수라고 말할 수 없습니다.
Q:난수는 어디에 쓰이나요?
A:우리는 생활 속에서 알게 모르게 많은 부문에서 난수를 사용합니다. 예를 들어 게임을 할 때 주사위를 사용하죠, 주사위를 던질 때마다 1~6까지의 숫자가 나타나는데 이 숫자가 난수입니다. 축구경기에서 동전을 던져 공격방향을 결정하죠? 이때 동전의 앞뒤 면도 난수입니다. 인터넷 뱅킹으로 송금할 때 보안코드 4~6자리를 입력하는데 이때 사용하는 보안카드에 적힌 4자리 숫자나 OTP라는 장치에서 발생하는 숫자가 모두 난수입니다. 또 인터넷상에서 어떤 사이트에 로그인할 때 아이디와 패스워드가 노출되지 않도록 암호화해서 전송해야 하는데 이때 난수를 사용해서 같은 비밀번호라도 매번 다른 내용으로 암호화가 되도록 해 안전하게 데이터를 전송할 수 있도록 해 줍니다.
Q:난수는 어떻게 생성하나요?
A:난수를 생성하는 방법은 크게 두 가지로 나뉩니다. 주기가 무한히 긴 함수가 주어지고 계산에 의해서 나온 결과 값을 난수로 사용하는 방법과 자연계에 존재하는 물리적인 현상을 숫자로 바꾸어 난수를 생성하는 방법이 그것입니다. 첫째 방법은 컴퓨터에서 소프트웨어만으로 구현이 가능하고 전용 하드웨어를 만들기도 쉽습니다. 하지만 이 방법은 주기가 긴 함수에 시작 값을 넣어 만들기 때문에 시작 값을 알면 다음에 발생할 난수를 예측할 수 있습니다. 따라서 진정한 의미의 난수라고 말하기는 어렵습니다. 구현이 간단하고 시작 값이 노출되지 않는다면 경제적으로 난수를 생성할 수 있는 방법입니다.
둘째 방법은 자연계에 존재하는 물리적 현상 중에 난수의 성격을 가지는 것을 이용하는 것입니다. 예를 들어 전기가 흐를 때 전기가 잘 흐르지 못하도록 하는 저항이 발생하는데 이 저항이 항상 같은 값이 아니라 시간과 온도에 따라 일정 범위에서 변화합니다. 이 변화량을 증폭해 숫자로 변환해 보면 난수의 성질을 가지고 있습니다. 디지털 카메라는 빛이 전자로 바뀌는 현상을 이용해서 빛의 밝기와 색 정보를 얻어내 사진을 만들어 냅니다. 카메라는 빛을 충분히 모아서 사진을 만들지만, 사진을 찍는 시간의 100분의 1 또는 1000분의 1 동안 빛이 전자로 변환된 것을 모아보면 사진이 아닌 군데군데 흰점들만 나온 것처럼 보입니다. 이 점의 위치를 숫자로 변환해 보면 난수의 성질을 가지고 있습니다. 첫째 방법은 별도의 장치가 없이 간단히 난수를 생성할 수 있는 반면에 둘째 방법은 물리적 현상을 측정하고 숫자로 변환하기 위한 장치 ‘난수발생기’가 필요합니다.
Q:함수를 이용해 계산으로 생성한 난수는 사용할 수 없는 것인가요?
A:계산에 의한 난수는 태생적 한계로 인해 게임머신, 추첨 등 영역에서 사용하지 않습니다. 계산에 의한 난수는 시스템을 만든 사람이 충분히 조작이 가능하기 때문에 사용하지 못하는 것이죠.
Q:물리적 현상을 이용한 난수 생성방법이 진정한 난수라면 왜 이것을 잘 사용하지 않나요?
A:물리적 현상을 이용한 난수 생성방법은 난수의 성질을 완벽하게 가지고 있으나 난수를 생성하기 위해서 물리적 현상을 측정해서 난수로 바꾸는 장치가 필요해 특수 분야가 아니고서는 잘 사용되지 않습니다. 또 몇몇 현상들은 주변 온도 등 환경에 따라 영향을 많이 받기 때문에 일상생활에서 쓰이지 못하고 실험실 등에서만 쓰입니다.
하지만 최근 구현이 간편하고 주변 환경에 영향을 덜 받는 물리적 현상이 연구되고 상용화가 진행되고 있어 앞으로 계산으로 생성한 난수를 대체할 것으로 예상됩니다. 양자물리학을 이용한 양자 난수 생성기(Quantum Random Number Generator)가 대표적입니다.
◇암호학과 네트워크 보안. BEHROUZ A FOROUZAN 지음. 손승원, 이재광, 임종인 옮김. McGraw Hill Korea 펴냄
정보보호 기본개념을 소개하고 암호화에 대한 전문적인 지식을 전달한다. 전체 4개 부문으로 나눠 암호화를 설명한다. 파트1에서는 대칭키 암호화, 파트2에서는 비대칭키 암호화, 파트3에서는 무결성, 인증, 키관리, 파트4에서는 네트워크 보안을 소개한다. 컴퓨터, 전자, 정보통신, 수학, 경영, 정보보호 관련 분야 학부 또는 대학원 교재로 사용된다. 현업에서 활동하는 정보보호와 보안 분야 전문직 종사자들에게도 많은 도움을 줄 수 있는 자습서로 활용이 가능하다.
◇컴퓨터 보안과 암호. WILLIAM STALLINGS 지음. 최용락, 전정훈, 김윤정 옮김. 그린 펴냄
‘컴퓨터 보안과 암호’는 네트워크를 이용한 각종 암호화 응용과 현업에서 필요한 정보보호 서비스를 제공하기 위한 핵심 기술들을 다루고 있다. 과거의 전통적인 암호 기술에서부터 최근의 각종 암호 알고리즘들까지 체계적으로 상세히 설명해 준다.
김시소기자 siso@etnews.com