암호화와 복호화
이 세상에는 길이 있습니다. 그 길을 통하여 교통이 흐릅니다. 사람과 짐승이 오고 가며, 질병도 흘러 다닙니다.
요새는 디지털 편지도 오고 갑니다. SNS가 바로 디지털 편지 입니다.
조선시대 한명회는 수양대군에게 세상이 자기 손바닥 안에 있다고 했습니다.
손바닥 안에 있는 스마트폰과 인터넷이 SNS의 길입니다.
사람과 짐승이 다니는 길은 지구의 지표에 뚫어 놓은 평평한 통로입니다.
평지길도 있고 경사길도 있으며 다리도 있습니다. 절벽에 사다리 모양새로 매달아 놓은 잔도(棧道)도 있습니다.
하늘에는 항공로(航空路)가 있고, 바다에는 항해로(항海路)가 있습니다.
질병은 공기라는 길을 통하여 흐르는 세균과 바이러스가 옮깁니다.
요즈음은 디지털 정보가 유선통로와 무선통로를 타고 흘러 다닙니다. 유선통로는 구리전선이나 광케이블로 깔아져 있습니다. 구리전선에는 전자기파(전기)가 흐르고, 광케이블에는 레이저 광선이 흐릅니다. 무선통로는 공기 속 전파 주파수의 흐름입니다. 전파의 일정 주파수 대역을 잘 잡으면 전파가 정보를 담고 흘러 갑니다.
4G Lte, 5G 및 미래의 6G가 전파의 통로입니다. 와이파이(Wifi)는 한국 정부가 깔아놓은 무료 통로입니다. 이게 없는 곳에는 3대 통신사가 깔아 놓은 5G 유로 통로를 사용해야 합니다.
육상의 도로는 모든 길은 로마로 통한다는 명언에 함축되어 있고, 긴 설명이 없어도 그 자체로 명약관화 합니다. 역마차와 파발마는 소식과 사람을 싣고 오가는 교통 수단이었습니다. 항공로와 항해로도 마찬가지 입니다.
디지털 정보는 어떻게 흘러 갈까요? 이 정보는 인터넷을 통하여 흘러갑니다. <www.>가
상징하는 구리전선, 광케이블 및 무선통신망으로 연결된 통로를 말합니다.
인터넷은 지구상에 거미줄(web)처럼 얽혀서 뻗어 나갑니다. World wide web 이라고 이름 지었습니다. 인터넷을 웹이라고도 부릅니다.
송수신 정보는 서로 멀리 떨어져 있는 도로를 통하여 보내는 자와 받는 자 간에 소통하는 어떤 목적을 가진 의사의 흐름입니다.
전쟁 전략은 첩자(諜者)를 이용하여 먼 거리에 있는 상대방의 모략을 캐내어, 역공함으로써 승리를 도모합니다. 봉화는 멀리 떨어진 지역간에 흘리는 어떤 목적의 소식입니다. 조선시대 동래성 봉화가 왜놈 쳐들어 오는 소식을 한양 조정에 알렸지요.
웹을 통한 디지털 정보 흐름이 On line 금융을 열었습니다. 온라인 금융에는 그 돈의 소유주의 본인확인과 암호(Cipher)가 있어야 안전성이 확보됩니다.
암호는 무언가요?
암호는 온라인 거래의 송신자와 수신자를 확인하여 보장하는 정보입니다. 그 정보는 중간에서 가로채 가더라도 알 수 없고, 오직 보내는 자와 받는 자만이 알 수가 있도록 알고리즘으로 조치한 것입니다.
온라인 금융을 통하여 예금도 하며 지불도 합니다.
온라인 금융 거래는 암호만으로는 완전하지가 않습니다. 암호로 금융거래를 하는 은행 시스템의 보안도 동시에 이루어져야 합니다. 온라인 은행 거래는 <Client- Server System>입니다. 고객이 클라이언트이고 은행이 서버입니다. 서버가 침입을 당하면 클라이언트의 암호도 소용이 없게 됩니다. 또한 서버는 클라이언트 암호를 인증(Identification)도 해줍니다. 은행 서버의 보안 대책도 매우 어렵기는 마찬가지입니다. 여기서는 설명을 생략합니다.
Client-Server System 위에서 작동하는 ID(Identification)라는 본인 확인과 패스워드(Password)라는 암호를 믿고, 안심하며 온라인 금융 거래를 하는 것입니다.
그런데 패스워드는 어떻게 믿게 하나요?
암호의 원리를 알아야 합니다. 암호의 원리를 알기 쉽게 설명합니다.
인류 최초의 암호는 로마시대 시저 암호 입니다. 예를 들면 로마 알파벳을 두 벌 두어 여벌의 로마자를 4자정도 돌립니다. A를 4자 우로 돌리면 BCDE를 지나서 F가 됩니다. T를 4자 우로 돌리면 VWXY를 지나 Z가 됩니다. FZ 암호를 편지에 써서 보내면 AT로 알아 먹게 됩니다.
또한 숫자의 연산을 잘 활용하면 제3자가 풀지 못하는 암호를 생성할 수 있습니다.
이런 문자와 숫자 활용 암호화 원리를 활용하여, 아주 어렵게 암호를 만들어 왔습니다.
알파벳 Disc, ECB(Electronic Code Book), MAC(Message Authentigication Code), DES(Data Encryption Standard), AES(Advanced Encryption Standard) 등이 있습니다.
이를 모두 설명하지는 않습니다.
암호로 남몰래 통신을 하려면 송신자가 평문을 암호문으로 만드는 열쇠(Key)가 있어야 합니다. 이런 알고리즘을 암호화라고 합니다. 암호화 키를 공개해도 무방합니다. 공개키라고 합니다.
수신자는 그 받은 암호문을 평문으로 풀어내는 키가 역시 있어야 합니다. 이를 복호화 키라고 부릅니다. 복호화 키는 절대로 공개해서는 안됩니다.
불가피하게 공개 되더라도 절대로 풀려서는 안됩니다 비밀키라고 부릅니다.
암호 시스템은 잠을쇠로 잠그고 열쇠로 여는 방법을 말합니다.
이 중 열쇠 즉, 비밀키는 제3자가 탈취하더라도 암호문을 절대로 열 수 없는 은닉성과 보안성이 확보되어야 합니다. 이렇게 잠을쇠와 열쇠 즉, 공개키와 비밀키로 짝을 이루어 운용하는 암호 체제를 대칭키 시스템이라고 합니다.

비록 공개를 하지만 특히 열쇠만은 보안이 보장되는 Key 시스템이 과연 있을까요?
암호문의 잠을쇠와 열쇠는 숫자의 원리를 이용합니다. 또한 문자를 요리조리 비틀어서 사용합니다. Key 공개 과정에서 열쇠는 비록 탈취 되더라도, 보안성이 유지되는 암호 방법이 정말로 있을까요?
숫자를 이용한 잠을쇠 열쇠의 알고리즘은 인수분해와 최소공배수 원리를 이용합니다. 학창시절 인수분해는 2차함수를 1차함수 곱으로 풀어내는 수리입니다. 3차함수는 좀 어렵고 4차함수는 매우 어렵습니다.
인수분해는 두 소수(Primre number)의 곱으로 된 최소공배수를 풀어내는 원리 입니다.
어떤 최소공배수가 몇 조 단위의 소수곱이면 인간의 두뇌는 전연 풀 수 없고, 슈퍼컴퓨터로도 풀수가 없습니다. 이 경우 최소공배수 곱셈은 쉽고 인수분해는 어렵습니다.
암호작성 방법에는 Modulus라는 나머지 정리도 활용합니다. 이 방법은 비록 암호문의 잠을쇠가 공개되더라도 그 암호문을 절대로 풀 수없는 알고리즘을 사용합니다.
예를 들면 257을 23으로 나누면 몫11과 나머지 4가 나옵니다. 이를 수학식으로
<257 mod 23>으로 표기하고 <나머지(Modulo) 4>라고 해석합니다.
Modulus를 설명하려면 아주 어렵기 때문에 상세 설명은 생략합니다.
실제로 암호화에는 수천억 단위 숫자의 모둘러스를 활용 합니다.
이처럼 나머지 정리로 작성된 잠을쇠가 공개되더라도, 그 암호문은 절대로 풀 수가 없다는 원리만 알고 넘어갑니다.
최근 온라인 금융거래는 RSA 암호문 알고리즘을 적용합니다. 대단위 숫자를 사용한 인수분해 및 최소공배수 연산과, Modulus 연산으로 암호화를 합니다.
이런 탄탄한 암호를 금융거래 암호(Finance Password)라고 합니다. Password 보안성을 믿고 안심하면서, 온라인 금융 거래를 할 수가 있습니다.

세상에는 창과 방패 장사 얘기가 있습니다. 무엇이든지 뚫는 창과 절대로 뚫지 못하는 방패를 파는 장사의 얘기 입니다. 이를 모순(矛盾)이라고 말합니다.
양자컴퓨터 쇼어 알고리즘이 대단위 숫자 최소공배수를 인수분해 하는 방법으로, RSA 인수분해 연산을 풀어낸다고 합니다. 온라인 금융거래에 적신호가 떴습니다.
암호는 이 단어가 의미하는 바 대로 길고 어려운 언어와 수학 놀이 입니다. 그래서 이 글이 아주 길고 매우 어려운 것입니다.