디지털암호학 전문블로그
http://delock.tistory.com
[2023.7.17일자 중앙일보 기사 발췌]
구슬이 서말이라도 꿰어야 보배다.
북한에서 100번이나 지령문을 받고 해외 공작원과 접선한 혐의로
재판에 넘겨진 석모 전 민주노총 조직쟁의국장을 붙잡은 숨은 공신은
라는 평범한 우리 속담이었던 것으로 전해졌다.
동남아 국가에서 북측 인사들과 접촉해 지령을 받고 활동한 혐의를 받는 경남진보연합 관계자들이 지난 1월 31일 오후 영장실질심사를 받기 위해 서울 서초구 서울중앙지법에 출석
11일 중앙일보 취재를 종합하면 이 사건을 수사하던 국가정보원과 경찰은 지난 1월 민주노총과 산별노조 압수수색을 통해 석 씨가 쓰던 PC를 확보했지만 암호자재를 찾지 못해 당황했다고 한다. 북한 지령문은 ▶암호가 걸린 문서가 담긴 USB에다가 ▶USB 자체 암호 ▶다른 매체에 별도 저장된 문자·숫자·기호 등 장문의 ‘암호자재’를 동시에 복사·붙여 넣기를 해야 열리는 삼중잠금장치가 걸려있었다고 한다.
이 때문에 국정원 등이 압수수색 할 때 석 씨는 수사관들에게 “별 거 없죠”라며 태연한 태도를 보였다고 한다. 공안 수사에 정통한 한 정부 부처 관계자는 “사안마다 암호자재가 다른 데다 배열도 정교해 슈퍼컴퓨터로 돌려도 보통 1만 년이 걸리는 수준”이라고 말했다.
북한 지령문을 해독하기 위해선 단순히 암호만 입력하는 방식이 아닌 USB 삽입, 각 프로그램 실행 등의 순서까지 지켜야 한다고 한다. 또 공작원들이 정기적으로 암호자재를 교환하는 만큼 ‘구버전’ 암호자재일 경우 확보해도 소용이 없다고 한다. 이 때문에 국정원은 압수수색으로 자료를 확보하고도 한 달 반 가량을 암호해독과 씨름했다고 한다.
실마리는 우연한 계기로 풀렸다. 새벽까지 야근을 하던 한 국정원 직원이 석 씨 책상 위에 놓여있던 다른 저장매체 속 문서파일을 살펴보다가 어느 문서파일 중간에 ‘rntmfdltjakfdlfkeh…’라고 적힌 32자의 글자열을 발견한 것이다. 국정원 직원들이 키보드 자판을 한글로 놓고 영문 일부를 입력하자 ‘구슬이 서 말이라도 꿰어야 보배다.’라는 속담이었다. 지령문을 해독하는데 필요한 암호자재가 드러나는 순간이었다. 국정원과 검찰은 이후 지령문이 담긴 USB의 별도 암호까지 뚫고 북한의 스테가노그래피(기밀 정보를 파일·메시지·이미지 등에 숨기는 심층 암호기술)를 해독해 냈다.
출처: 허정원ㆍ이창훈ㆍ김정민 기자 heo.jeongwon@joongang.co.kr
스테가노그래피(Steganography)
스테가노그래피는 "steganos(은밀한)"와 "graphia(쓰기)"라는 그리스어에서
파생된 용어로 "은밀하게 쓰는 기술"이라는 의미를 갖고 있다.
이 데이터 은폐 기술은 데이터나 메시지를 다른 미디어나 파일에 숨기기 위해 사용한다.
스테가노그래피의 목적은 숨겨진 데이터의 존재를 감추는 것으로, 특정한 방식으로 숨겨진 데이터를 추출해 내는 것을 제외하고는 보이지 않는다.
데이터를 감추는 장소(파일)는 이미지, 오디오, 비디오, 텍스트 파일에 모두 감출 수 있다.
소프트웨어 프로그래밍에 얇은 지식이 있어
국정원이 발견한 32열 문자열(구슬이....) 실제로 동작하는지 궁금해서
256bit로 실제 암호문을 만들고 암호문을 해독하는 코드를
아래처럼 만들어봤다.
★ 악용될 우려가 있어 이 해독 기술의 방법에 대해서는 설명하지 않겠으며,
★ 코드의 암호화 부분은 공개하지 않고, 해독화하는 부분도 일부는 삭제하였다.
Imports System.IO
Imports System.@@@@@.$$$$$$$$
Imports System.Text
Public Sub Decrypt(inputFilePath As String, outputFilePath As String, key As Byte(), iv As Byte())
Using inputStream As FileStream = File.OpenRead(inputFilePath)
Using outputStream As FileStream = File.Create(outputFilePath)
Using aes As New AesCryptoServiceProvider()
aes.Key = key
aes.IV = iv
Dim decryptor As ICryptoTransform = aes.CreateDecryptor()
Using cryptoStream As New CryptoStream(inputStream, decryptor, CryptoStreamMode.Read)
cryptoStream.CopyTo(outputStream)
End Using
End Using
End Using
End Using
End Sub
End Module
Private Sub ***************************
'Dim key As Byte() = New Byte(31) {}
'Dim iv As Byte() = New Byte(15) {}
Dim keyString As String = $$$$$$$$$$$$
Dim ivString As String = $$$$$$$$$$$$
Dim key As Byte() = Encoding.UTF8.GetBytes(keyString)
Dim iv As Byte() = Encoding.UTF8.GetBytes(ivString)
FileEncryption.DecryptFile("C:\암호원본.doc", "C:\암호해복본", $$$, $$$)
End Sub
코드를 만들어 본 이유는 국정원이 만든 256bit 해독 사실이 맞는 것인지
검증하고 싶었고, 북한이 암호문 작성에 사용한 기술이 어떤 기술인지 확인하고
싶은 개인적인 궁금증 그리고 기사의 내용이 맞는 것인지 검증하고 싶어서다.
결론을 말하자면 북한이 우리가 상상하는 그 이상의 대단한 기술을 사용하는 것은 아니지만
국정원이 암호를 해독하기 위해 노력한 방법은 국가와 민족을 위한 사명감 없이는 할 수 없었다는거다.
대한민국을 위해 음지에서 양지를 지향하는 분들께 깊은 감사를 드린다.
첨단의 기술로 만들어진 술발효 프로파일러 Sani4
디지털암호학 전문블로그
http://delock.tistory.com
- 안산술공방 이정욱 의학전문작가
reference image source: