안녕하세요?


암호..... 이건 정보의 보안을 위해서 상당히 중요한 요소라고 할 수 있는데, 과학동아 2018년 5월호를 읽다 보니 '동형 암호'라는 것에 대해서 나와 있는 내용이 있었습니다. 지난번에는 'RSA암호'에 대해서 포스팅을 한 적이 있었는데, 그 때만 하더라도 '양자 컴퓨터'가 나오지 않는 이상, 소수를 이용해서 역으로 푸는 데만 어마어마한 시간이 걸리는 암호가 있었습니다.


링크 : 신용카드 번호가 소수를 이용해서 암호가 된다고 합니다.


그래서 처음에는 이게 왜 중요한 기술인지를 몰랐는데, 기사의 내용에 의하면 이게 무려, 암호화된 상태에서 '계산'을 해도, 암호화하지 않은 상태에서의 결과와 '동일'한 계산 결과가 나오기 때문에, 정보 유출에 따른 걱정 없이 그대로 계산-암호를 푸는 과정을 거치지 않고도 데이터를 분석한 결과가 '같다'는 의미로 '동형'이라는 이름이 붙었다고 합니다.




저는 그 원리까지는 자세히는 모르지만, 대게의 정보 유출이 암호를 풀고, 다시 암호화하는 사이에 벌어진다는 점을 생각해 보면, 이런 '동형 암호'는 암호를 풀어서 어떻게 '원본 데이터'를 보는 과정을 생략하고 '계산결과'를 얻을 수 있기 때문에 '정보유출'을 막을 수 있다고 합니다.



위 그림의 묘사와 같이 동형 암호는 암화화가 된 데이터의 원본을 데이터 분석자가 보지 않고도 원래의 데이터로 계산 했을 때 처럼 같은 결과를 내도록 해주는 안호로서, 흔히 4세대의 암호 통신 방법이라고 합니다. 일단 여기서 세대에 따른 암호의 변천사를 먼저 짚고 넘어 가고자 합니다.



1세대의 암호인 암구호는 흔히 군인들이 아군을 확인하기 위해 특정한 질문에 정해진 답을 하는 방식으로 이루어져 있다고 합니다. 그래서 예전 강원도 '삼척 무장공비 침투 사건' 때는 아군인척 다가가서 질문문을 알아내고, 이번에는 질문문으로 국군 장병에게 질문을 던지는 것으로 질문문에 대한 '답변'을 알아낼 수 있었다고 합니다.



이제 여기서 현재 사용중이라고 해야 할까요? 신용카드 등에 많이 쓰이는 RSA암호와 같은 이런 암호들을 통칭 '공개키 암호'로, 다양한 수학 이론을 동원해서, 원본 데이터를 암호화 하는 방식과 같, 암호를 다시 원본으로 복호화 시키는 방식이 다르다고 합니다. 문제는 엄청난 연산 속도가 있는 '양자 컴퓨터'가 등장하면, 대다수 3세대 암호가 무력화 된다고 합니다.




그런데 4세대 암호인 이 '동형 암호(Homomorphic Encryption)'이라는 암호는 '격자 기반 암호'라고 해서, 수학계에서는 절대로 답을 찾아 낼 수 없다는 '격자문제(Lattice Problem)'을 기반으로 해서, 풀수 있음이 증명되지 않은 문제라고 합니다. 즉, 간단하게 요약을 하자면, '푸앵카레 추측'이라고 하는 '추측'만 가능하기에, 양자 컴퓨터로도 못 푸는 문제로 보인다고 합니다.



그럼 도데체 어떤 원리인가 하고서 한번 원리에 대해서 살펴보니, 암호문으로 만드는 원리 자체는 아래의 그림과 같이 매우 단순한 편에 속다는 것을 알 수 있었습니다.



즉, 여기서 암호화 비밀키 숫자에 임의의 수를 곱해서 더 하기만 하면, 원본 데이터인 10은 사라지게 됩니다. 그럼 여기까지는 별로 특별해 보이지는 않지만, 다음의 그림에서처럼 10과 15라는 원본 데이터의 함이 25라는 것을 간단하게 알 수 있습니다.




각각 원본 데이터인 10과 15를 암호화 한 다음에 더하면 98785라는 수가 나오게 됩니다. 하지만 비밀키를 가지고서 암호를 해독하면 아래와 같이 나오게 됩니다.



즉, 비밀키인 12345를 가지고서 최종 계산 결과물인 98785를 해석하면, 25라는 결과를 얻는데, 여기서 중요한 것은 '각각의 데이터'는 모른채 '해답'만 알 수 있다는 것 입니다. 즉, 개인 한명 한명의 '개인정보'는 모르고, 집단 '전체의 합계'와 같은 계산이 끝난 값만을 얻을 수 있기에 '정보유출'같은 걱정은 없다고 합니다. 물론 저 '암호화 비밀키'를 가지고서 개인 정보를 일일히 열람하는 것을 누군가는 할 수 있지만, 그마저도 보완책이 있으리라 생각합니다.

+ Recent posts

티스토리 툴바