[정보보호이론] Chapter 1 고전암호
정보보호 개요
정보보호에는 세 가지 원칙이 있습니다.
- Confidentiality 기밀성
- 정보의 소유자가 원하는 대로 정보의 비밀이 유지 되어야 한다.
- 허가되지 않은 사용자에게 정보가 노출되서는 안된다.
- 반드시 인가된 자에 의해서만 접근이 가능해야 한다.
- Ex) 접근통제, 암호화
- Integrity 무결정
- 허가되지 않은 사용자에 의한 정보의 변경,삭제, 생성등으로부터 보호해야한다.
- 정보의 정확성 및 완전성이 보장되어야 한다는 원칙이다.
- Ex) 물리적인 통제, 접근 통제
- Availability 가용성
- 허가된 사용자에게 정보서비스를 거부해서는 안된다.
- 데이터의 백업, 중복성 유지, 물리적 위협으로부터 보호
보안 공격의 유형에는 4가지가 있습니다.
- interruption 방해
- 시스템 일부가 파괴되거나 사용할 수 없게되는 경우
- 시스템 가용성에 대한 공격
- interception 가로채기
- 비인가자들이 불법적인 접근
- 신뢰성에 대한 공격
- Midification 변조
- 비인가자들이 불법적인 접근 + 전송되는 데이터에 대한 불법적인 변경
- 무결정에 대한 공격
- Fabrication 위조
- 비인가자들의 시스템에 대한 위조물 삽입(없는 데이터를 삽입)
- 인증에 대한 공격
관용 암호 방식 : 고전적 기법
암호란 통신 당사자들끼리만 아는 비밀스런 신호나 부호를 말합니다. 또는 암호화와 복호화를 위한 원리, 수단, 방법 등을 취급하는 기술이나 과학을 의미합니다.
고전적인 방법을 그림으로 나타내면 위와 같습니다. 다른 사람이 보고 들을 수 있는 개방통신로에서 plain text를 주고 받는 모습입니다. 이 때 crytography를 통해서 plaintext를 보호합니다.
cryto의 과정을 자세히 보면 위와 같습니다. 먼저 송신자가 평문을 보냅니다. 그리고 공개키 디렉토리에서 암호화를 위한 키를 선택해서 암호알고리즘에 넣어줍니다. 암호화된 평문은 공격을 피할 수 있습니다. 암호문을 복호화키를 통해서 복호화하면 다시 평문이 됩니다. 여기서 암호화키는 plaintext를 cypertext로, 복호화키는 반대로 바꾸기 위한 알고리즘에 사용되는 key입니다.
단순한 형태에서는 암호화키와 복호화키가 동일합니다. 그래서 복호화하는 과정은 암호화하는 과정의 역으로 진행됩니다. 이처럼 암호화키와 복호화키가 같은 경우를 대칭키 암호 시스템
이라고 부릅니다. 또는 단일키 암호 시스템
, 관용 암호 방식
이라고도 부릅니다.
이러한 암호화를 지키기 위해서는 대칭키의 비밀성을 보장해야 합니다. 장접은 복호화 과정은 암호화 과정의 역으로 진행되기 때문에, 다양한 알고리즘을 만들고 적용할 수 있습니다. 또 하나의 키로 동작하기 때문에 빠릅니다.
하지만 암호화키를 관리하고 분배하는 것이 어렵고, 디지털 서명의 어려움이 있습니다. 디지털 서명은 ‘그것을 보낸 사람이 나다.’라는 것을 증명하는 것인데, 여러 사람이 같은 암호화키를 가지고 있으면 평문을 누가 암호화를 진행한 것인지 알 수 없습니다. 만약 사람마다 암호화/복호화키가 다르다면 이 암호문을 누가 보낸 것인지 구분할 수 있습니다. 관용 암호방식에서는 DES를 알아볼 계획입니다.
암호시스템의 영역
연산자 유형
평문을 암호화하기 위해서는 두 가지 연산자를 사용합니다.
- substitution 치환
- 평문의 각 원소르 다른 원소로 사상합니다.
- trasposition 전치
- 평문의 각 원소를 재배열합니다.
대부분의 혼합 시스템은 다단계의 치관과 전치를 사용해서 암호화를 진행합니다. 이때 모든 연산은 역전이 가능해야(복화하를 할 수 있어야) 합니다.
- 사용된 키의 수
- 관용키 : 송수신자가 같은 키를 사용하는 경우(하나의 키)
- 공개키 : 송수신자가 다른 키를 사용하는 경우(두개의 키)
- 평문 처리 방법
- 블록 암호화 : 연산을 블럭단위로 처리
- 스트림 암호화 : 입력을 연속적으로 처리
- 안정성
- 절대안정성
- 암호 기법이 그 기법으로 생성된
암호문
을 마루이 많이 주어도 그 암호에 대한 평문을 유일하게 결정해 낼 수 있는 충분한 정보를 포함하고 있지 않은 경우 - 예) 일회용 암호 - 계산상 안전성 - 암호 해동 비용이 암호화된 정보의 가치를 초과 - 암호 해독 시간이 정보의 유효 기간 초과
- 전사 공격 brute force
- 가능한 모든
키
를 시도 - 가장 기본적인 공격으로서
키 사이즈
에 비례 - 평문에 일반적인 지식이 있다고 가정
- 모든 키 탐색을 위해 요구되는 평균 시간
- 32비트의 경우 가능한 키의 수는 2^32개
- 하나의 키를 판단하는데 1 micro second가 걸린다면, 1024 * 1024 * 1024 * 2 / 1,000,000 / 60 = 35.8분
- 백반개의 키를 판단하는데 1micro second가 걸린다면, 35.8 / 1,000,000 = 2.15 * 1000 s = 2.15ms
- 가능한 모든
- 평문 메시지의 은닉 방법
- steganography : 메시지의 존재 자체를 은폐
- 암호 방법 : 다양한 원문의 변환에 의해 외부인이 그 의미를 알지 못하도록 메시지를 변형
Steganography
- 특징
- 메시지의 존재 자체를 은폐
- 원문 내의 단어나 문자를 적당히 배열함으로써 실제 메시지를 나타냄
- 예제
- 문자 마킹 : 원문의 문자에 연필로 덧써서 표시를 해 빛을 적당한 각도로 비춰양만 보임
- 보이지 않는 잉크 : 종이에 열이나 화학처리를 해야만 보이는 잉크를 사용
- 핀 구멍 : 빛을비춰야만 보이는 작은 구멍을 원문에 넣는 방법
- 타자 수정 리본 : 흑색 리본으로 타자된 줄 사이에 강한 빛에서만 보이는 수정리본을 이용하여 타자하는 방법
- 장점 : 비밀 통신에 대한 사실이 발견되면 안되는 사용자들에 의해 이용됨
- 단점 : 상대적으로 적은 정보비트를 은닉하는데 많은 오버헤드 요구 + 방법 노출시 재사용 불가
치환 암호
시이저 암호법
- 쥴리어스 시저에 의해 개발
- 치환 암호 방식을 가장 먼저 사용
- 각 알파벳 문자를 두 문자 건너의 세 번쨰 문자로 치환
- 예제
- 평문 : meet me after the toga party
- 암호 : phhw ph diwhu wkh wrjd sduwd
- 코드
- 암호화 :C = E(P) = (p+3) mod 26
- 복호화 :C = E(P) = (p-3) mod 26
- 단점
- brute force attack이 가능
- 암호화 및 해독 알고리즘을 알고 있다.
- 가능한 키가 25개 Qnsdlek.
- 평문의 언어를 알고 있으면 쉽게 인식할 수 있다.
단일 치환 암호법 Monoalphabetic Cipher
- 각 문자에 26자의 치환 가능
- 시이저 암호의 키 공간을 급ㄱㄱ히 증가
- 시이저 암호의 키 공간은 25
- 단일 치환 암호법 : 26!
출현 빈도수
를 이용해 평문 유추가능- 영어 문장에는 t,e,a,h 등이 많이 나타남
- 암호문에서도 그에 상응하는 문자가 같은 빈도로 나타남
다중 문자 치환 암호법
- playfair가 만든 cipher 암호방식, playfair cipher
- 알고리즘은 5 * 5 행렬에 기초
- 한번에 2자씩 암호화
- 키워드가 monarchy인 행렬
- 키워드 중복 문자를 제외하고 좌에서 우로, 상에서 하로 문자를 채운다.
- I와 J는 한 문자로 취급한다.
- 5 * 5 행렬에 26개의 문자를 하나씩 넣는 26!개의 경우 중, 키워드를 알고 있으면 키워드의 길이만큼 5 * 5를 채울 수 있다.
5x5 행렬 구조로 알파벳을 적을 때, 칸의 개수를 맞춰주기 위해 I와 J는 한칸에 써야합니다.
이제 이것을 이용하여 HI PLAYFAIR 라는 평문을 암호화 해보겠습니다.
- 먼저, 평문을 2개의 알파벳 묶음으로 분리해줍니다.
- HI PL AY FA IR
- 만약 연속으로 같은 알파벳이 나올경우에는 사이에 임의의 알파벳을 끼어 넣어 준 뒤, 치환을 해주시면 됩니다.
- 또한, 2개의 묶음으로 나눠 떨어지지 않는 홀수개의 평문일 경우에는 맨 끝에 임의의 알파벳을 붙인 뒤, 치환을 해주시면 됩니다.
- 이제 묶여진 두개의 알파벳을 위에 만든 행렬을 이용하여 치환을 해줍니다.
- 묶인 두개의 알파벳이 같은 행에 있을 경우, 위에 만든 행렬을 이용하여 오른쪽으로 한칸씩 밀어주시면 됩니다.
- ex) H와 I는 같은 행에 있으므로, 암호화를 하면 IK가 됩니다.
- 묶인 두개의 알파벳이 사각형 모양을 그릴 경우에는 그 사각형을 기준으로 왼쪽과 오른쪽에 있는 알파벳으로 치환해 주시면 됩니다.
- ex) P와 L은 사각형 모양을 그리므로 CQ가 됩니다.
- 묶인 두개의 알파벳이 같은 열에 있을 경우, 아래쪽으로 한칸씩 밀어주시면 됩니다.
- ex) E와 K는 KS가 됩니다.
- 예시
- ex) HELLO -> HE LX XL OX ( 임의의 알파벳 X를 넣어보았습니다.)
- ex) HI PLAYFAIR -> IK CQBRGOGP
다중 단일 문자 치환 암호법
- 단순 단일 문자 치환 방법을 개량
- 공통점
- 하나의 단일 문자 치환 규칙 집합을 사용
- 주어진 변환에 사용될 규칙은 키에 의해 결정
- 키워드 : deceptive
- 평문: we are discovered save yourself
- 키 : deceptivedeceptivedeceptive
- 평문: wearediscoveredsaveyourself
- 암호문: zicvtmqngrzgvtmavzhcqyglmgj
- 장점
- 평문자에 대한 암호 문자가 유일한 키워드에 따라서 여러 개 존재한다.
- 문자 빈도수에 대한 정보가 불분명해진다.
- 단점
- 평문 구조에 대한 정보가 모두 은폐되지는 않는다.
- 단일 문자나 vigenere로 암호화 되었는지 아는 것은 쉽다. -> 빈도수에 따라
- 키워드의 길이를 유추할 수 있다. 암호문에서 VTW이 나타나므로 3이나 9로 유추가 가능하다.
전치 암호
- 평문자의 순서를 바꿈
- 평문자나 비트의 순서를 절차에 따라 위치를 재조정
rail fence 기법
- 깊이 : 2
- 평문 : meet me after the toga party
- m e m a t r h t g p r y
- e t e f e t e o a a t
- 암호문 : mematrhtgprtetefeteoaat
사각 행렬 사용
- 키 : 4 3 1 2 5 6 7
- 평문: a t t a c k p
- : o s t p o n e
- : d u n t i l t
- : w o a m x y z
- 암호: ttnaaptmtsuoaodwcoixkniypetz
전치 암호기법은 두 단계 이상의 전치를 행함으로써 더 안전성을 높일 수 있다.
- 평문 메시지의 문자들을 그 위치를 나타내는 숫자로 표시하면;
- a t t a c k p o s t p o n e d u n t i l t w o a m x y z
- 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
- 첫 번째 전치 후의 결과
- 03 10 17 24 04 11 18 25 02 09 16 23 01 08 15 22 05 12 19 26 06 13 20 27 07 14 21 28
- 규칙적인 구조 발견 : 4문자씩 증가순열
- 동일한 방식의 2차적 전치후의 결과
- 17 09 05 27 24 16 12 07 10 02 22 20 03 25 15 13 04 23 19 14 11 01 26 21 18 08 06 28
- 규칙적인 구조가 파괴되었고 더욱 해독하기 어렵다.
- 다중단계 재 암호화
- 두 단계 이상의 다중전치와 치환을 하는 것은 일정한 주기를 회피하고 암호문 해독을 더욱 어렵게 만드는 효과
회전자 기계
- 다단계 암호화의 원리를 적용
- 특징
- 독립적으로 회전하는 실린더 집합을 사용
- 각 실린더는 26개의 입력핀과 출력핀 가지고 있음
- 한 문자는 실린더의 회전 상태에 따라 정해진 단일 문자로 치환
- 26개의 평문자를 사용한 후에는 실린더가 초기의 위치로 와서 주기가 26인 다중 단일 문자 치환
- 실린더의 갯수는 상황에 따라서 늘어날 수 있음
- 3개의 실린더를 사용하는 경우 26 * 26 * 26 = 17576가지의 다른 알파벳 치환이 가능해짐