|
|
4번째 줄: |
4번째 줄: |
| 암호화는 [[알고리즘]]을 이용하여 누구든 읽어볼 수 있는 평문으로 저장된 정보를 암호 인증키를 가진 사람만이 볼 수 있도록 암호문으로 변환하는 것을 말한다. 이러한 과정을 통해 암호화된 형태로 정보를 저장하거나 전송할 경우 제3자의 공격에 의해 [[데이터]]가 손실 및 변조되는 것을 예방할 수 있다. 또한 인증키를 소유하지 않은 사람은 데이터에 접근할 수 없기 때문에 일종의 사용자 인증 기법으로서 데이터를 안전하게 보호할 수 있게 된다. 암호화 체계는 [[복호화]] 키와 암호화 키의 일치 여부에 따라 크게 [[대칭키]] 암호화 기법, 비대칭형 [[공개키]] 암호화 기법으로 나뉘며 그 외에도 일방향 암호화 기법인 [[해시]] 암호화 기법이 있다.<ref>이스트시큐리티 공식 홈페이지 - https://www.estsecurity.com/public/product/alyac</ref> | | 암호화는 [[알고리즘]]을 이용하여 누구든 읽어볼 수 있는 평문으로 저장된 정보를 암호 인증키를 가진 사람만이 볼 수 있도록 암호문으로 변환하는 것을 말한다. 이러한 과정을 통해 암호화된 형태로 정보를 저장하거나 전송할 경우 제3자의 공격에 의해 [[데이터]]가 손실 및 변조되는 것을 예방할 수 있다. 또한 인증키를 소유하지 않은 사람은 데이터에 접근할 수 없기 때문에 일종의 사용자 인증 기법으로서 데이터를 안전하게 보호할 수 있게 된다. 암호화 체계는 [[복호화]] 키와 암호화 키의 일치 여부에 따라 크게 [[대칭키]] 암호화 기법, 비대칭형 [[공개키]] 암호화 기법으로 나뉘며 그 외에도 일방향 암호화 기법인 [[해시]] 암호화 기법이 있다.<ref>이스트시큐리티 공식 홈페이지 - https://www.estsecurity.com/public/product/alyac</ref> |
| | | |
− | ==역사== | + | ==특징== |
− | 인류의 수천 년 역사 속에서 위대한 왕과 장군들은 모두 효율적인 통신 수단에 의존해 나라를 다스리고 군대를 움직여 왔다 해도 과언이 아니다. 하지만 동시에 지도자들은 이러한 통신 내용이 적의 손에 들어가 귀중한 비밀이 누설되거나 중요한 정보가 들어가지 않을까 늘 우려했다. 그런 의미에서 적이 중요한 정보를 가로챌 수 있다는 위협이야말로 암호를 발시킨 원동력이었다고 할 수 있다. 이렇듯 비밀 보장이 절실히 필요해짐에 따라 각국 정부는 가능한 한 가장 안전한 암호를 만들어 내고, 이를 이용해 통신의 보안성을 확보하는 부서를 운영하게 된다. 이에 맞서 적국에서는 거기에 담긴 비밀을 빼내려는 암호 해독가를 동시에 양성했다. 암호 해독가들은 언어를 재료로 이용하는 연금술사로, 무작위로 모아놓은 듯한 부호에서 의미를 가진 단어를 뽑아내기 위해 일생을 바치는 신비하고도 특별한 분야의 사람들이다. 암호의 역사는 바로 암호를 만드는 사람들과 이를 해독하려는 사람들이 수백 년에 걸쳐 벌여온 전쟁의 역사이다. 지성을 무기로 한 이 군비 경쟁은 때로는 역사에 극적인 영향을 미치며 그 경로를 바꿔놓기도 했다. 암호의 어원은 그리스어의 비밀이란 뜻을 가진 크립토스(Kryptos)로 알려져 있다. 이는 평문을 해독 불가능한 형태로 변형하거나 암호화된 통신문을 원래의 해독 가능한 상태로 변환하기 위한 모든 수학적인 원리, 수단, 방법 등을 취급하는 기술이나 과학을 말한다. 즉, 암호란 중요한 정보를 다른 사람들이 보지 못하도록 하는 방법을 의미한다. 암호 기술의 발전 역사를 구분할 때 흔히 두 번의 큰 전환점을 기준으로 고대 암호, 근대 암호, 현대 암호 등의 세 단계로 나눠진다. 첫 번째 전환점은 1920년대, 1, 2차 세계 대전에서 무선 통신 기술의 발전을 기반으로 여러 가지 기계적, 전자적 암호 장치를 개발하고 사용한 것이었고, 두 번째 전환점은 1970년대 들어 컴퓨터 사용이 활발해지면서 컴퓨터를 이용한 암호 기술이 발전한 것이다. 이러한 전환점을 기준으로 고대로부터 1, 2차 세계 대전 이전가지 사용된 초보적인 암호 기술들을 고대 암호라고 하면, 1970년대까지 복잡한 기계 장치와 전자 장치들을 이용한 암호 기술을 근대 암호, 컴퓨터가 개발된 이후 컴퓨터를 이용하는 암호 기술을 현대 암호라고 부른다.<ref name="역사"> KISA 암호이용활성화 공식 홈페이지 - https://seed.kisa.or.kr/kisa/intro/EgovHistory.do</ref>
| + | ===암호화 키=== |
| + | 고전 암호의 한계는 암호화 알고리즘을 알아내면 암호문을 해독이 가능하다는 것이며, 컴퓨터의 등장과 발전으로 급상승한 계산 능력 앞에 고전 암호는 무용지물이 되었다. 따라서 현재 암호화 기술의 핵심은 임의의 문자열 값인 '암호화 키'이다. 암호화 키는 난수이다. 정확한 의미로의 난수는 아닌 의사난수지만, 암호학에서 사용하는 통계학 입각 기준에 따라 일정 수준 이상의 의사난수를 난수로 가정한다. 적절한 암호화 키를 사용한다면 암호화 알고리즘이 노출되더라도 키 없이는 해독할 수 없다. 한시적이긴 하나 잠정적으로는 완벽한 현재 암호화 기술의 명세는, 어떤 키를 사용해 메시지 내용을 감추느냐, 즉 키의 성질을 바탕으로 이루어진다. 암호화 키의 동작은 수리 논리학의 '배타적 논리합' 연산에 따라 이루어진다. 이진법으로 표현한 수의 각 비트에 대한 가감산 결과를 비트간 배타적 논리합이라 한다. 비트간 배타적 논리합은 특정 비트의 반전이므로, 반복하면 원래값이 된다. 즉, P 라는 원문을 K 라는 키값을 이용해 연산하면 P + K 라는 암호문이 되는 방식이라고 할 수 있다. 이 암호문을 K 키값을 이용해 연산하면, (P + K) + K = P 원문 P 로 복호화할 수 있다. 예를 들어, 원문 0011 은 키값 0110 을 이용해 연산하면 암호문 0101 이 되고 이는 다시, 0101 + 0110 = 0011 재연산을 거쳐 원문으로 복호화되는 방식이다. 암호화 키의 길이, 키 사용 회수 등에 제한이 없다면 완벽한 암호화를 이룰 수 있다. 하지만 보안이란 보안에 드는 비용이 보안 대상의 가치보다 적을 때 유효하다. 따라서 암호화에 있어 가장 중요한 요소인 암호화 키의 규격에 대한 일정한 표준이 존재한다. 현재 암호화 규격은 양자연산 등 완전히 새로운 컴퓨팅 방식의 등장 이전까지는 안전하다고 볼 수 있다. |
| | | |
− | ===고대 암호=== | + | ===암호화 시스템=== |
− | 고대 봉건 사회에서는 황제나 군주가 지방 관리에게 보내는 비밀문서, 전쟁 중의 작전 지시와 보고, 첩자들과의 통신 등 전쟁이나 첩보 시에 정보를 전달해야 하는 경우에 다양한 비밀 통신 기법들이 사용되었다. 예를 들어, 멀리 기밀 정보를 전달해야 하는 경우에는 사자의 머리를 깎고 메시지를 쓴 후 머리를 길러서 보내면 받는 측에서는 사자의 머리를 깎고 메시지를 읽도록 하였다. 또 종이에 쓴 메시지가 그냥 보이지 않지만 불빛에 약품 처리를 하면 메시지가 나타나도록 하는 방법, 비밀 노출을 방지하기 위해 말로 전달하도록 하는 방법 등이 다양하게 사용되었다. 이러한 비밀 통신 방법을 스테가노그래피(Steganography)라고 하는데 적들도 이 통신 방식을 알고 있으면 비밀을 유지하기 어렵다는 한계를 갖고 있다.
| + | 암호화 기술의 비범함 기준은 비즈니스라고 할 수 있는데, 비즈니스 요건에 따라 암호화를 수행하는 위치나 데이터의 특성이 달라진다. 그러므로 암호화 기술은 시스템과 비즈니스 전반에 걸친 이해가 필수적이다. 사업적 필요에 따른 여러 환경에서의 암호학 원론의 기술적 적용을 암호화라고 할 수 있고, 암호화의 예로는 최근 설계하고 구축된 모바일 메신저 애플리케이션을 들 수 있다. 최초 요구는 메신저로 통신한 대화 내용이 저장되는 DBMS의 데이터 암호화였다. 하지만 보안 침해 사고의 일반적 행태에 비추어 보면 위 구성으로는 충분한 보안성을 이룰 수 없다. 실제 필요한 웹 애플리케이션 암호화의 요구사항은 아래와 같다. |
| | | |
− | * 스키테일 암호 : 기원전 400년경 고대 그리스의 군사들은 스키테일 암호라고 불리는 전치 암호(Transposition cipher, 문자의 위치를 서로 바꾸는 암호)를 사용한 기록이 있다. 특정 지름을 갖는 막대에 종이를 감고 평문을 횡으로 쓴 다음 종이를 풀면 평문의 각 문자는 재배치되어 정보를 인식할 수 없게 되는데, 암호문 수신자가 송신자가 사용한 막대와 지름이 같은 막대에 종이를 감고 횡으로 읽으면 평문을 읽을 수 있다. 여기서 막대의 지름은 송신자와 수신자 사이에 공유된 비밀키가 된다.
| + | {| class="wikitable" width=650 style="color:balck; text-align: center; background-color:#F8F9FA;" |
− | | + | ! Client || WAS || DBMS |
− | * 시저(Caesar) 암호 : 로마의 황제였던 줄리어스 시저(Julius Caesar)는 시저 암호라고 불리는 환자 암호(substitution cipher, 문자를 다른 문자로 치환하는 암호)를 사용하였다. 시저는 가족과 비밀 통신을 할 때 각 알파벳순으로 세자씩 뒤로 물려 읽는 방법으로 글을 작성했다. 즉 A는 D로, B는 E로 바꿔 읽는 방식이었다. 수신자가 암호문을 복호화하려면 암호문 문자를 좌측으로 3문자씩 당겨서 읽으면 원래의 평문을 얻을 수 있다. 송신자와 수신자는 몇 문자씩 이동할지를 비밀키로 하여 바꿔가면서 사용할 수 있다. 시저는 브루투스에게 암살당하기 전 가족들로부터 다음과 같은 긴급 통신문을 받았다. 시저가 받은 편지에는 'EH FDUHIXO IRU DVVDVVLQDWRU'라 되어 있었다. 3글자씩 당겨서 읽어보면 뜻은 'BE CAREFUL FOR ASSASSINATOR', 즉 '암살자를 주의하라'는 것이었다. 당시 시저의 권세를 시기했던 일당은 시저를 살해할 암살 음호를 꾸미고 있었으며 시저 자신도 이를 어느 정도 눈치 채고 있었다. 하지만 시저는 구체적으로 암살자가 누구인지 알 수 없었다. 결국 암호문을 전달받은 당일 시저는 원로원에서 전혀 생각지도 못했던 브루투스에게 암살당하면서 "브루투스, 너마저……."라는 말을 남겼다.
| |
− | | |
− | * 악보 암호 : 악보 암호는 전설적인 스파이 마타하리(본명 : 마그레타 G. 젤러, Margaretha Geertruida Zelle)가 사용했던 방식이다. 마타하리는 일명 '첩보원 H21'이란 이름으로 프랑스 장교에 접근해 군사 기밀 정보를 독일에 빼돌렸는데, 이때 비밀 통신에 사용된 암호가 악보였다. 일정한 형태의 음표에 알파벳 하나씩을 대응시킨 형태로 얼핏 보기에 평범한 악보처럼 보이지만, 실제로 연주하면 전혀 음악이 되지 않는다. 마타하리의 첩보 활동은 20여만 명에 달하는 프랑스군을 죽음으로 몰고 갔다. 그녀는 제 1차 세계 대전이 끝나기 1년 전 프랑스 정보부에 체포돼 사형 당했다.<ref name="역사"></ref>
| |
− | | |
− | ===근대 암호===
| |
− | 17세기 근대 수학의 발전과 함께 암호 기술도 발전하기 시작했는데, 프랑스 외교관이었던 비게네르(Vigenere)가 고안한 키워드를 이용한 복수 시저 암호형 방식, 플레이페어(Playfair)가 만든 2문자 조합 암호 등 다양한 암호 방식으로 발전하였다. 20세기 들어서는 통신 기술의 발전과 기계식 계산기에 대한 연구를 바탕으로 두 차례의 세계 대전을 통해 암호 설계와 해독에 대한 필요성이 높아지면서 암호에 대한 연구가 더욱 활발하게 진행되었다. 근대 암호의 이론적 기초가 된 논문은 1920년 프리드먼(Freidman)이 발표한 일치 반복률과 암호 응용과 1949년 섀넌(Shannon)이 발표한 비밀 시스템의 통신 이론을 들 수 있다. 섀넌은 논문에서 일회성 암호 체계가 안전함을 증명했고, 암호 체계 설계의 두 가지 기본 원칙인 혼돈과 확신 이론을 제시하였다. 암호 체계를 설계함에 있어 혼돈(Confusion)은 평문과 암호문 사이의 상관관계를 숨기는 반면, 확산(Diffusion)은 평문의 통계적 성격을 암호문 전반에 확산시켜 숨기는 역할을 한다. 혼돈과 확산이라는 두 가지 개념은 오늘날의 암호 체계 설계에도 여전히 적용되고 있다. 프리드먼은 2차 세계 대전 중 독일군이 사용하던 에니그마(Enigma) 암호와 일본군이 사용하던 무라사끼 암호를 해독한 사람으로 유명하다. 에니그마 암호는 각기 다른 몇 개의 암호판을 전기적으로 연결하여 원문을 입력하면 전기적 연결에 의해 새로운 암호문을 출력하는 방식으로 이 기계가 존재하지 않으면 암호를 풀 수 없다.
| |
− | | |
− | * 미드웨이 해전에서의 암호 전쟁 : 태평양 전쟁 당시 일본의 진주만 공습으로 큰 피해를 입고 전력이 약화됐던 미국은 일본의 그 다음 공격 목표가 어디인지를 알아내야 했다. 1942년 4월, 하와이 주둔 미국 해군 정보부의 암호 해독반 블랙 챔버는 일본군의 무전이 증가하고 있음을 발견했다. 이미 일본 해군의 암호 체계인 JN-25를 해독하고 있던 해독반은 AF라는 문자가 자주 나타난다는 사실에 주목했다. 암호 해독반의 지휘관이었던 조셉 로슈포르 중령은 AF를 미드웨이 섬이라고 생각했다. 일본의 정찰기가 'AF 근처를 지나고 있다'는 내용의 무선 보고를 해독한 적이 있었던 그는 정찰기의 비행경로를 추정해본 결과 AF가 미드웨이 섬일 것이라는 심증을 갖게 된 것이다. 로슈포르 중령은 체스터 니미츠 제독에게 일본군의 침공이 임박했다는 것과 AF가 자주 언급된다는 점, 그리고 AF가 미드웨이 섬일 것이라는 보고를 한 후, 미드웨이 섬의 담수 시설이 고장 났다는 내용의 가짜 전문을 하와이로 평문 송신하게 하자고 건의했다. 3월에 미드웨이 섬 근처에 일본 해군의 비행정이 정찰 왔던 것을 알고 있던 니미츠 제독은 이 건의를 받아들였다. 사실 미드웨이 섬의 정수 시설은 아무런 문제가 없었다. 이틀 후, 도청된 일본군 암호 중 'AF에 물 부족'이라는 내용이 해독되었다. 이로써 일본군의 다음 공격 목표가 미드웨이 섬이라는 것이 분명해진 것이다. 미군은 암호 해독을 통해 일본의 공격 목표가 미드웨이라는 사실을 알아낸 후 전투에 대비하고 반격을 준비하여 일본의 태평양 함대를 격파하고 전쟁을 승리로 이끌 수 있었다.<ref name="역사"></ref>
| |
− | | |
− | ===현대 암호===
| |
− | 현대 암호는 1970년대 후반 스탠퍼드 대학과 MIT 대학에서 시작되었다. 1976년 스탠퍼드 대학의 디피(Diffie)와 헬먼(Hellman)은 '암호의 새로운 방향(New Directions in Cryptography)'이라는 논문에서 처음으로 공개키 암호의 개념을 발표하였다. 종래의 관용 암호 방식 또는 대칭키 암호 방식에서는 암호화키와 복호화키가 동일한 비밀키를 사용하기 때문에 송신자와 수신자는 비밀 통신을 하기 전에 비밀키를 공유하고 있어야 한다. 반면 공개키 암호 방식에서는 하나의 쌍이 되는 공개키와 비밀키를 생성하여 암호화에 사용되는 공개키는 공개하고, 복호화에 사용되는 비밀키는 사용자가 안전하게 보관하도록 한다. 공개키 암호 방식에서는 송신자와 수신자가 사전에 키를 공유할 필요가 없기 때문에 불특정 다수 사용자 간에 사전 준비가 없이도 암호 통신망을 구축하는데 유용하게 사용할 수 있다. 이어 1978년 MIT 대학의 리베스트(Rivest), 샤미르(Shamir), 애덜먼(Adleman)은 소인수 분해 문제에 기반을 둔 RSA 공개키 암호를 개발했는데, 이것은 오늘까지도 가장 널리 사용되는 공개키 암호 방식이다. 공개키 암호의 도입은 현대 암호의 발전에 중요한 계기가 되었다. 한편, 1977년 미국 상무성 표준국(NBS, 현 NIST)은 전자계산기 데이터 보호를 위한 암호 알고리즘을 공개 모집하여, IBM 사가 제안한 DES (Data Encryption Standard)를 표준 암호 알고리즘으로 채택했다. DES의 표준화를 계기로 하여 금융 시스템을 중심으로 상업용 암호화의 이용이 증가하게 되었고 컴퓨터 통신망을 이용한 문서 전송, 전자 자금 이체 등이 활성화되었으며 암호 방식이 일반인들에게 알려지고 널리 사용되는 계기가 되었다. 이전의 암호 방식에서는 사용하는 키뿐만 아니라 암호 알고리즘도 비밀로 하여 암호문의 비밀을 지키려고 하는 경우도 있었으나, 현대 암호에서는 암호 알고리즘을 공개하도록 하고 있다. 1883년 어거스트 케르크호프(Auguste Kerckhoff)는 암호 시스템의 안전성에 대해 '키 이외에 암호 시스템의 모든 것이 공개되어도 안전해야 한다'고 했는데 이것을 케르코프의 원리(Kerckhoff’s principle)이라고 한다. 이렇게 함으로써 암호 방식의 안전성을 공개적으로 검토하게 하여 안전성을 확인하는 것이다. 표준화된 암호와 표준화된 컴퓨팅 기기들을 사용하는 현대 암호에서는 암호 알고리즘을 감추기가 매우 어렵다. 또한 암호 알고리즘을 감춘다고 해서 암호의 보안성이 높아지는 것도 아니다. 비밀로 다루어진 암호 알고리즘이 일단 공개되고 나면 그 안전성에 문제가 발견되는 사례가 많다. 그러므로 암호 분야에서는 어떤 암호 알고리즘이 많은 암호 학자들에 의해 장기간 세부적으로 수행된 분석에서도 잘 견디어 낼 때까지는 그 알고리즘을 안전하다고 인정하지 않는다. 즉, 암호 체계는 무죄가 증명될 때까지는 유죄이다.<ref name="역사"></ref>
| |
− | | |
− | ===차세대 암호===
| |
− | 양자 기반 알고리즘인 Shor알고리즘은 인수분해 문제의 해결 속도를 감소시켜 RSA, ECC 등 인수분해 및 이산대수 기반의 공개키 암호 알고리즘을 더 이상 사용할 수 없게 한다. 또한, Grover알고리즘은 정렬되지 않은 데이터베이스의 원소를 검색하는 속도를 향상시켜 대칭키 암호는 키 사이즈를 2배, 해시 함수의 출력길이를 3배 증가시켜야 기존의 안전성을 가질수 있게 된다.
| |
− | {| class="wikitable" width=950 style="color:balck; text-align: center; background-color:#F8F9FA;" | |
− | ! 알고리즘 || 특징 || 암호 || 영향 | |
| |- | | |- |
− | ! Shor
| + | | 사용자 인증 암호화 || 사용자 인증 암호화 || 사용자 인증 암호화 |
− | | style="text-align:left;" | 인수분해 문제 해결 속도 감소 | |
− | ! 공개키
| |
− | | style="text-align:left;" | 더 이상 안전하지 않음 | |
| |- | | |- |
− | ! rowspan="2" | Grover
| + | | 주요 파일 암호화 || · || · |
− | | style="text-align:left;" rowspan="2" | 정렬되지 않은 데이터 베이스의 원소를<br>검색하는 속도 향상 | |
− | ! 대칭키
| |
− | | style="text-align:left;" | 키 사이즈 증가 필요 | |
| |- | | |- |
− | ! 해시
| + | | 전송 구간 암호화 || 전송 구간 암호화 || · |
− | | style="text-align:left;" | 암호 알고리즘의 출력 길이 증가 필요 | |
| |- | | |- |
− | |} | + | | · || 메시지(대화) 암호화 || 메시지(대화) 암호화 |
− | 이러한 환경의 변화같이 특정 상황에서 기존 현대 암호기술(RSA, ECC 등)이 해결하지 못하는 경우를 대비하여, 새로운 암호기술들에 대한 연구가 활발히 진행되고 있다. 양자컴퓨팅 환경에서도 안전하게 사용할 수 있는 공개키 암호 기술인 양자내성암호와 더불어, 동형암호(암호화된 상태로 연산 가능한 암호), 형태보존암호(암호문이 평문과 동일한 형태를 가지는 암호), 경량암호(계산능력이 떨어지는 IoT 환경 등에서 효율적으로 사용할 수 있는 암호) 등이 있다.
| |
− | {| class="wikitable" width=950 style="color:balck; text-align: center; background-color:#F8F9FA;"
| |
| |- | | |- |
− | ! rowspan="6" | 양자내성암호<br>(Post Quantum Cryptography,PQC)
| + | | · || 주요 파일 암호화 || · |
− | ! 종류 || 내용
| |
| |- | | |- |
− | | 격자 기반<br>(Lattice-based) || style="text-align:left;" | 격자(Lattice) 위에서 계산하는 문제의 어려움에 기반하는 암호 시스템 | + | | · || · || 개인정보 암호화 |
| |- | | |- |
− | | 코드 기반<br>(Code-based) || style="text-align:left;" | 일반적인 선형 코드(Linear Code)를 디코딩하는 어려움에 기반하는 암호 시스템 | + | | · || · || 암호화 데이터 접근제어 |
| |- | | |- |
− | | 다변수 기반<br>(Multi-variate) || style="text-align:left;" | 유한체(Finite Field) 위에서 계산하는 다변수함수 문제의 어려움에 기반하는 암호 시스템 | + | | 암호화 키 안전한 관리<br>(저장 및 접근제어) || 암호화 키 안전한 관리<br>(저장 및 접근제어) || 암호화 키 안전한 관리<br>(저장 및 접근제어) |
| |- | | |- |
− | | 해시 기반<br>(Hash-based) || style="text-align:left;" | 해시 함수의 안전성을 기반으로 한 전자 서명 시스템 | + | |} |
− | |-
| + | |
− | | 아이소제니 기반<br>(Isogeny-based) || style="text-align:left;" | 순서(Order)가 같은 두 타원 곡선 사이에 존재하는 아이소제니(Isogeny)를 구하는 문제의<br>어려움에 기반하는 암호 시스템
| + | 사용자 인증 암호화, 구간 암호화, 메시지 암호화, 파일 암호화 그리고 키 관리가 포함된 구성이다. 모든 종류의 보안 시스템 구성은 안전한 IT 시스템 설계 원칙을 따른다. 따라서, 완벽한 암호화 기술 적용을 위해서는 시스템의 모든 계층과 모든 영역을 고려해야 한다. 애플리케이션 – 시스템 – 네트워크, 3개 계층 모두 적절한 암호화가 적용되고, 안전한 키 관리와 권한 관리 및 접근 제어를 통해 완벽한 암호화를 이룰 수 있다. |
− | |-
| + | |
− | ! 동형암호<br>(Fully Homomorphic Encryption)
| |
− | | style="text-align:left;" colspan="2" |
| |
− | * 암호문을 이용하여 계산을 할 수 있도록 해주는 공개키 암호화 방식. 암호화된 데이터들을 이용하여 게산한 결과를<br>복호화하면 암호화되지 않은 상태로 계산한 값과 일치하는 암호화 방식이다.
| |
− | * 국내에서는 정수 환(Ring) 기반의 동형암호 알고리즘이 개발되었으며, 국외 IBM, Microsoft 등은 다수의 동형암호<br>알고리즘을 개발하고 의료 분야 등 다양한 응용 서비스 적용 기술을 개발 중이다.
| |
− | |-
| |
− | ! 형태보존암호<br>(Format Preserving Encryption)
| |
− | | style="text-align:left;" colspan="2" |
| |
− | * 암호문이 평문이 가지고 있는 형태를 그대로 유지한 암호화 방식. 암호화된 데이터들을 이용하여 계산한 결과를 복호화하면 암호화되지 않은 상태로 계산한 값과 일치하는 암호화 방식이다.
| |
− | * 작은 크기의 평문에 대한 암호화가 가능하며, 안전성에 문제가 발생하지 않도록 추가적인 입력 정보인 트윅(Tweak)을<br>사용한다.
| |
− | * 데이터의 길이가 보존되어 추가적인 저장 공간 구매가 불필요하며, DB 스키마 변경도 불필요하기 때문에 암호화 시스템 구축 비용이 절감된다.
| |
− | * 신용카드, 주민등록번호, 사회보장번호 (Social Security Number, SSN) 등과 같이 특정 형태의 암호화에 효율적으로<br>사용할 수 있다.
| |
− | |-
| |
− | ! 경량암호<br>(Lightweight Cryptography)
| |
− | | style="text-align:left;" colspan="2" |
| |
− | * 경량 암호는 사물인터넷(IoT) 등을 스마트 디바이스 상에 탑재, 운용하기 위해 개발된 암호화 방식이다.
| |
− | |-
| |
− | |}<ref name="역사"></ref>
| |
| ==종류== | | ==종류== |
| * '''대칭키 암호화''' | | * '''대칭키 암호화''' |
암호화(encryption)란 일상적인 문자로 쓰이는 평문을 암호키를 소유하지 않은 사람이 알아볼 수 없도록 암호문으로 변환하는 것이다.
개요
암호화는 알고리즘을 이용하여 누구든 읽어볼 수 있는 평문으로 저장된 정보를 암호 인증키를 가진 사람만이 볼 수 있도록 암호문으로 변환하는 것을 말한다. 이러한 과정을 통해 암호화된 형태로 정보를 저장하거나 전송할 경우 제3자의 공격에 의해 데이터가 손실 및 변조되는 것을 예방할 수 있다. 또한 인증키를 소유하지 않은 사람은 데이터에 접근할 수 없기 때문에 일종의 사용자 인증 기법으로서 데이터를 안전하게 보호할 수 있게 된다. 암호화 체계는 복호화 키와 암호화 키의 일치 여부에 따라 크게 대칭키 암호화 기법, 비대칭형 공개키 암호화 기법으로 나뉘며 그 외에도 일방향 암호화 기법인 해시 암호화 기법이 있다.[1]
특징
암호화 키
고전 암호의 한계는 암호화 알고리즘을 알아내면 암호문을 해독이 가능하다는 것이며, 컴퓨터의 등장과 발전으로 급상승한 계산 능력 앞에 고전 암호는 무용지물이 되었다. 따라서 현재 암호화 기술의 핵심은 임의의 문자열 값인 '암호화 키'이다. 암호화 키는 난수이다. 정확한 의미로의 난수는 아닌 의사난수지만, 암호학에서 사용하는 통계학 입각 기준에 따라 일정 수준 이상의 의사난수를 난수로 가정한다. 적절한 암호화 키를 사용한다면 암호화 알고리즘이 노출되더라도 키 없이는 해독할 수 없다. 한시적이긴 하나 잠정적으로는 완벽한 현재 암호화 기술의 명세는, 어떤 키를 사용해 메시지 내용을 감추느냐, 즉 키의 성질을 바탕으로 이루어진다. 암호화 키의 동작은 수리 논리학의 '배타적 논리합' 연산에 따라 이루어진다. 이진법으로 표현한 수의 각 비트에 대한 가감산 결과를 비트간 배타적 논리합이라 한다. 비트간 배타적 논리합은 특정 비트의 반전이므로, 반복하면 원래값이 된다. 즉, P 라는 원문을 K 라는 키값을 이용해 연산하면 P + K 라는 암호문이 되는 방식이라고 할 수 있다. 이 암호문을 K 키값을 이용해 연산하면, (P + K) + K = P 원문 P 로 복호화할 수 있다. 예를 들어, 원문 0011 은 키값 0110 을 이용해 연산하면 암호문 0101 이 되고 이는 다시, 0101 + 0110 = 0011 재연산을 거쳐 원문으로 복호화되는 방식이다. 암호화 키의 길이, 키 사용 회수 등에 제한이 없다면 완벽한 암호화를 이룰 수 있다. 하지만 보안이란 보안에 드는 비용이 보안 대상의 가치보다 적을 때 유효하다. 따라서 암호화에 있어 가장 중요한 요소인 암호화 키의 규격에 대한 일정한 표준이 존재한다. 현재 암호화 규격은 양자연산 등 완전히 새로운 컴퓨팅 방식의 등장 이전까지는 안전하다고 볼 수 있다.
암호화 시스템
암호화 기술의 비범함 기준은 비즈니스라고 할 수 있는데, 비즈니스 요건에 따라 암호화를 수행하는 위치나 데이터의 특성이 달라진다. 그러므로 암호화 기술은 시스템과 비즈니스 전반에 걸친 이해가 필수적이다. 사업적 필요에 따른 여러 환경에서의 암호학 원론의 기술적 적용을 암호화라고 할 수 있고, 암호화의 예로는 최근 설계하고 구축된 모바일 메신저 애플리케이션을 들 수 있다. 최초 요구는 메신저로 통신한 대화 내용이 저장되는 DBMS의 데이터 암호화였다. 하지만 보안 침해 사고의 일반적 행태에 비추어 보면 위 구성으로는 충분한 보안성을 이룰 수 없다. 실제 필요한 웹 애플리케이션 암호화의 요구사항은 아래와 같다.
Client |
WAS |
DBMS
|
사용자 인증 암호화 |
사용자 인증 암호화 |
사용자 인증 암호화
|
주요 파일 암호화 |
· |
·
|
전송 구간 암호화 |
전송 구간 암호화 |
·
|
· |
메시지(대화) 암호화 |
메시지(대화) 암호화
|
· |
주요 파일 암호화 |
·
|
· |
· |
개인정보 암호화
|
· |
· |
암호화 데이터 접근제어
|
암호화 키 안전한 관리 (저장 및 접근제어) |
암호화 키 안전한 관리 (저장 및 접근제어) |
암호화 키 안전한 관리 (저장 및 접근제어)
|
사용자 인증 암호화, 구간 암호화, 메시지 암호화, 파일 암호화 그리고 키 관리가 포함된 구성이다. 모든 종류의 보안 시스템 구성은 안전한 IT 시스템 설계 원칙을 따른다. 따라서, 완벽한 암호화 기술 적용을 위해서는 시스템의 모든 계층과 모든 영역을 고려해야 한다. 애플리케이션 – 시스템 – 네트워크, 3개 계층 모두 적절한 암호화가 적용되고, 안전한 키 관리와 권한 관리 및 접근 제어를 통해 완벽한 암호화를 이룰 수 있다.
종류
- 대칭키 암호 알고리즘을 사용하여 전송하고자 하는 평문을 암호화하고 복호화하는데 동일한 키를 사용하는 방식이다. 대칭키 암호화 방식은 공개키 암호화 방식에 비해 빠른 처리속도를 제공하고, 암호키의 길이가 공개키 암호화 방식보다 상대적으로 작아서 일반적인 정보의 기밀성을 보장하기 위한 용도로 사용되고 있다. 반면에 정보 교환 당사자가 동일한 키를 공유해야 하므로 여러 사람과의 정보 교환 시 많은 키를 유지 및 관리해야 하는 어려움이 있다. 대표적인 대칭키 암호 알고리즘은 국내의 SEED, ARIA, LEA, HIGHT 국외의 AES, 블로피시(Blowfish), 카멜리아(Camellia) 등이 있다.[2]
- 공개키 암호 알고리즘을 사용하여 암호화하며 공개키와 개인키의 키 쌍이 존재하여 평문을 암·복호화 하는데 서로 다른 키를 사용하는 방식으로 비대칭키 암호화 방식이라고도 불린다. 공개키 암호화 방식은 데이터 암호화 속도가 대칭키 암호화 방식에 비해 느리기 때문에 일반적으로 대칭키 암호화 방식의 키 분배나 전자서명 또는 카드번호와 같은 작은 크기의 데이터 암호화에 많이 사용되고 있다. 대표적인 공개키 암호 알고리즘으로는 국외의 RSA, 엘가멜(ELGamal), ECC 등이 있다.[2]
- 해시함수를 이용하여 암호화된 값을 생성하며 복호화 되지 않는 방식이다. 해시함수는 임의의 길이를 갖는 메시지를 입력으로 하여 고정된 길이의 해시값 또는 해시 코드라 불리는 값을 생성하며, 동일한 입력 메시지에 대해 항상 동일한 값을 생성하지만 해시값만으로 입력 메시지를 유추할 수 없어 비밀번호와 같이 복호화 없이 입력 값의 정확성 검증이 필요한 경우 등에 사용되고 있다. 대표적인 해시함수로는 국외의 SHA-2(224/256/384/512), SHA-3, RIPEMD-160, 월풀(Whirlpool) 등이 있다.[2]
각주
참고자료
같이 보기
이 암호화 문서는 암호 알고리즘에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.
|
블록체인 : 블록체인 기술, 합의 알고리즘, 암호 알고리즘 □■⊕, 알고리즘, 블록체인 플랫폼, 블록체인 솔루션, 블록체인 서비스
|
|
암호기술
|
개인키 • 경량암호 • 다자간 계산(MPC) • 다중서명(멀티시그) • 동형암호 • 디지털서명 • 링서명 • 배타적 논리합(XOR) • 복호화 • 블랙박스 암호 • 서명 • 소수 • 소인수분해 • 슈노르서명 • 스케인 • 스키테일 • 스테가노그래피 • 안전한 다자간 계산(SMPC) • 암호 • 암호경제학 • 암호문 • 암호키 • 암호학 • 암호화 • 이산로그 • 전자봉투 • 전자서명 • 전치암호 • 종단간 암호화 • 치환암호(대체암호) • 키 • 패딩 • 패스워드 • 평문 • 합성수 • 해독 • 해시 • 형태보존암호 • 혼돈 • 화이트박스 암호 • 확산
|
|
논리연산
|
논리곱(AND) • 논리연산 • 논리합(OR) • 배타적 논리합(XOR) • 부울곱 • 부울대수 • 부울합 • 부정논리곱(NAND) • 부정논리합(NOR) • 부정연산(NOT)
|
|
SHA
|
SHA • SHA0 • SHA1 • SHA2 • SHA224 • SHA256 • SHA384 • SHA512 • SHA512/224 • SHA512/256 • SHA3 • SHA3-224 • SHA3-256 • SHA3-384 • SHA3-512
|
|
MD
|
MD • MD2 • MD4 • MD5 • RIPEMD • RIPEMD-128 • RIPEMD-160 • RIPEMD-256 • RIPEMD-320
|
|
기타 해시
|
CRC-16 • CRC-32 • CRC-64 • Keccak-256 • Keccak-384 • Keccak-512 • Shake-128 • Shake-256 • 베이스32 • 베이스32 파일 • 베이스58 • 베이스64 • 베이스64 파일 • 순환중복검사
|
|
대칭키
|
AES • ARIA(아리아) • DES • HIGHT(하이트) • LEA • SEED(시드) • 대칭키 • 대칭키 암호 알고리즘 • 디피-헬만 • 디피-헬만 키교환 • 레인달 • 블로피시 • 블록암호 • 스트림 암호 • 에스박스(S-Box) • 트리플 DES
|
|
비대칭키
|
PKI • RSA • 공개키 • 공개키 암호 알고리즘 • 비대칭키 • 엘가말 • 타원곡선 • 타원곡선 디지털서명 알고리즘 • 타원곡선암호
|
|
영지식증명
|
영지식 상호 증명(ZKIP) • 영지식 스나크 • 영지식 스타크 • 영지식증명
|
|
양자암호
|
BB84 프로토콜 • E91 프로토콜 • B92 프로토콜 • 비밀키 오류율 • 안전성 증명 • 양자난수생성기 • 양자내성암호 • 양자암호 • 양자얽힘 • 양자역학 • 양자중첩 • 양자컴퓨터 • 양자키 • 양자키분배 • 양자통신 • 연속 변수 프로토콜
|
|
암호해독
|
기지평문공격(KPA) • 선택암호문공격(CCA) • 선택평문공격(CPA) • 암호공격 • 암호문 단독공격(COA) • 암호해독
|
|
암호학 인물
|
라이언 플레이페어 • 레너드 애들먼 • 로널드 리베스트 • 마틴 헬만 • 블레즈 드 비즈네르 • 아디 샤미르 • 앨런 튜링 • 웨슬리 피터슨 • 찰스 휘트스톤 • 휫필드 디피
|
|
위키 : 자동차, 교통, 지역, 지도, 산업, 기업, 단체, 업무, 생활, 쇼핑, 블록체인, 암호화폐, 인공지능, 개발, 인물, 행사, 일반
|
|