본문 바로가기

교육 및 자격증/정보보안기사 : 필기

Part02 - 암호학

728x90

sec2 개요 - 개념 / 암호기법 분류 / 주요 암호기술에 대한 개괄 / 암호 분석(암호 해독) / 암호 알고리즘의 안전성 평가 / 지적 재산권 보호

sec3 대칭키 - 현대 대칭키 / DES / AES / 기타 대칭키 /  현대 대칭키

sec4 비대칭키 - 비대칭키 / 하이브리드

sec5 해시함수와 응용 - 일방향 해시함수 / 암호학적 예시 / 메시지 인증 코드(mac)

sec6 전자서명과 PKI - 전자서명 /  PKI(공개키 기반 구조)

sec7 키, 난수

 

개요

1. 암호학의 개념

암호학(cryptology) : 평문을 다른 사람이 알아볼 수 없는 형태의 암호문으로 만들고 특정한 비밀키를 알고 있는 사람만이 다시 평문으로 복원시킬 수 있도록 하는 암호기술과 이를 제3자가 해독하는 방법을 분석하는 암호해독에 관해 연구하는 학문이다.

 

 - 암호화와 복호화의 기호적 표현

평문 : M

암호문 : C

암호 알고리즘 : E

복호화 알고리즘 : D

키 : K

 

2. 암호기법의 분류

 - 치환 암호와 전치 암호

(가)치환 암호(대치 암호, Substitution Cipher)

 비트, 문자 또는 문자의 블록을 다른 비트, 문자 또는 블록으로 대체한다.

치환 암호의 엄밀한 의미는 평문에서 사용하는 문자의 집합과 암호문에서 사용하는 집합이 다를 수 있다.

 

(나)전치 암호(Transposition Cipher)

원문을 다른 문서로 대체하지 않지만 원문을 여기저기 움직이게 한다. 자리를 바꾸는 규칙

 

 - 블록 암호와 스트림 암호

(가) 블록 암호(Block Cipher)

 : 어느 특정 비트 수의 집합을 한 번에 처리하는 암호 알고리즘. 블록의 비트 수를 블록 길이라고 한다.

평문을 일정한 크기의 블록으로 잘라낸 후 암호화 알고리즘을 적용하여 암호화한다. 일반적으로 블록의 크기는 8비트(ASCII) 또는 16비트(Unicode)에 비례한다.

스트림 암호화와는 다르게 round를 사용하고 반복적으로 암호화 과정을 수행해 암호화 강도를 높인다.

 

(나) 스트림 암호(Stream cipher)

 : 한번에 1비트 혹은 1바이트의 데이터 흐름(=스트림)을 순차적으로 처리해가는 암호 알고리즘으로 평문과 키 스트림을 XOR하여 생성한다.

블록 암호는 블록 단위로 처리되므로 어디까지 암호화가 진행되었는가 하는 내부 상태를 가질 필요 없다. 이동통신 등의 무선 데이터에 적합

 

 - 장,단점

구분 스트림 암호 블록 암호
장점 암호화 속도가 빠름, 에러 전파현상 없음 높은 확산, 기밀성, 해시함수 등 다양
단점 낮은 확산 느린 암호화, 에러 전달
사례 LFSR, MUX generator DES, AES, SEED, RC5, IDEA
암호화 단위 비트 블록
주요 대상 음성, 오디오/비디오 스트리밍 일반 데이터 전송, 스토리지 저장

#선형 되먹임 시프트 레지스터(LFSR,Lineer feedback shift Register)

 : 선형 피드백을 사용하여 순서화된 2진 비트열을 생성하는 회로.

클럭의 주기에 여러 개의 시프트 레지스터 내용이 하나씩 스프트되고 동시에 출력 값과 시프트 레지스터의 배타적 논리 연산값이 시프트 레지스터의 입력으로 인가되는 회로다.(의사랜덤시퀸스를 생성하거나 암호 등의 회로에 응용된다.)

 

 - 위치에 따른 암호화의 구분

(가) 링크 암호화(Link Encryption)

 : 모든 정보는 암호화되고 패킷은 라우터나 다른 중간에 있는 장비가 이 패킷을 다음에 어디로 보내야 하는지 알아야 하기 때문에 각 홉에서 해독되어야 한다.

라우터는 패킷의 헤더 부분을 해독하고 헤더 내의 라우팅과 주소 정보를 읽고 그것을 다시 암호화하여 진행 방향으로 보낸다.

링크 암호화는 데이터 링크 또는 물리적 계층에서 일어나 하드에어 암호화 장치들은 물리적 계층과의 인터페이스를 가지고 그것을 통과하는 모든 데이터를 암호화한다.

 

(나) 종단간 암호화(End - to - End)

종단간 암호화에서는 헤더와 트레일러가 암호화되지 않기 때문에 패킷을 각 홉에서 해독하고 암호화할 필요없다.

 

 - 구분

구분 링크 암호화 종단간 암호화
특징 isp나 통신업자가 암호화
헤더를 포함한 모든 데이터를 암호화
유저가 알고리즘 통제 불가
사용자가 암호화
헤더는 암호화하지 않음
알고리즘에 대한 통제는 사용자가 함
장점 user-transparent하게 암호화되므로 운영이 간단
트래픽분석을 어렵게 함
온라인으로 암호화
사용자 인증 등 높은 수준의 보안 서비스를 제공 가능
중간노드에서도 데이터가 암호문으로 존재
단점 중간 노드에서 데이터가 평문으로 노출
다양한 보안서비스를 제공하는데 한계
모든 노드가 암호화 장비를 갖춰야 하므로 네트워크가 커지면 비용과다
트래픽 분석이 취약
오프라인으로 암호화

 

3. 주요 암호기술에 대한 개괄

1) 대칭키 암호와 비대칭키 암호

대칭키는 암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 동일.

비대칭키는 암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 서로 다른 암호 알고리즘.[송신자도 한쌍의 키, 수신자도 한 쌍의 키]

 

2) 하이브리드 암호 시스템

 : 대칭키 암호와 공개키 암호를 조합한 암호 방식이다.

 

3) 일방향 해시함수(one-way hash function)[무결성]

문서의 무결성을 확인할 수 있다.

 

4) 메시지 인증 코드(message authentication code)[무결성, 인증]

무결성과 인증을 제공하는 암호 기술

 

5) 전자 서명[무결성, 인증, 부인방지]

 : 오프라인세계에서 사용하는 도장이나 종이 위에 하는 서명, 날인의 개념을 온라인세계에 적용한 것이다.

거짓행세(spoofing), 변경, 부인이라는 위협을 방지하는 기술이다.

무결성을 확인하고 인증과 부인방지를 하기 위한 암호 기술이다.

 

6) 의사난수 생성기(PRNG, Pseudo random number generator)

키 생성역할을 담당

 

4. 암호 분석(암호 해독)

암호해독(Crypttanalysis) : 제 3자가 암호문으로부터 평문을 찾으려는 시도, 공격.

 

#복호화와 해독의 차이점

복호화 - 정상적으로 복호화키를 알고 있는 수신자가 암호문을 평문으로 복원하는 과정.

해독 - 복호화키를 모르는 적 또는 암호분석가가 복호화키를 찾아내거나 평문 내용을 알아내는 비정상적인 과정.

 

#고무호스 암호분석(Rubber-Hose Cyptanalysis)

 : 암호분석가가 키를 얻을 때까지 키를 가진 사람을 공갈, 협박, 고문하여 키를 획득하는 방법.

 - 암호 분석의 분류

(가)암호문 단독 공격(COA, Ciphertext Only Attack)

 : 통계적 성질, 문장의 특성 등을 추정하여 해독하는 방법

암호해독자에게 가장 불리한 방법으로 도청자가 어떤 암호문을 얻어 대응되는 평문과 키를 찾는 것.

[알고리즘은 알고있는 상태에서 암호문을 가로챌 수 있다고 가정]

 

(나)기지 평문 공격(알려진 평문 공격, KPA, Known Plaintext Attak)

: 암호문에 대응하는 일부 평문이 사용가능한 상황에서의 공격

도청자는 해독하려는 암호문 외에 추가로 여러 개의 평문/암호문 쌍을 얻는다. 평문/암호문 쌍은 공격자에게 미리 주어진다.

[A->B에게 비밀 메시지를 보냈지만 그 내용을 공개한다면 평문/암호문 쌍을 사용해 다음 메시지를 알아낸다.]

 

(다)선택 평문 공격(CPA, Chosen Plaintext Attack)

 : 평문을 선택하면 대응하는 암호문을 얻을 수 있는 상황에서의 공격. 암호해독자가 암호기에 접근할 수 있어 평문 P를 선택하면 그 평문 P에 해당하는 암호문 C를 얻어 키 k나 평문 P를 추정하여 암호를 해독하는 방법.

공격자가 어던 평문을 선택하고 이에 대응되는 암호문을 얻는다.

 

(라) 선택 암호문 공격(CCA, Chosen Ciphertext Attack)

 : 암호문을 선택하면 대응하는 평문을 얻을 수 있는 상황에서의 공격

 

5. 암호 알고리즘의 안전성 평가

CMVP

워크팩터 : 공격작 암호화 방법을 깨는데 걸리는 노력.

 

6. 지적 재산권 보호

 - 디지털 저작권 관리

1)스테가노그래피(Steganography)

 : 감추어진 기록으로 다른 무언가로 감추어 메시지 자체를 은폐하는 것.

 

2)디지털 워터마킹(Digital watemarking)

 : 지폐의 제조과정에서 위조지폐를 가려내기 위해 물에 젓은 상태에서 특정 그림을 인쇄하고 말린 후 불빛에 비췄을 때 그림이 보이도록 하는 기술에서 유래.

현재는 원본의 내용을 왜곡하지 않는 범위 내에서 혹은 사용자가 인식하지 못하도록 저작권 정보를 디지털 콘텐츠에 삽입하는 기술을 말한다.

 

3)핑거프린팅

 : 디지털 콘텐츠를 구매할 때 구매자의 정보를 삽입하여 불법 배포 발견 시 최초의 배포자를 추적할 수 있게 하는 기술이다.

 

4) 디지털 저작권 관리(DRM, Digital Rights Management)

 : 디지털 콘텐츠 소유자가 자신의 콘텐츠에 대한 접근을 자신 또는 자신의 위임자가 지정하는 다양한 방식으로 제어할 수 있게 하는 기술적인 방법.

실행, 보기, 복제, 출력, 변경 등을 포함하고 디지털 콘텐츠는 오디오, 비디오, 이미지, 텍스트, 멀티미디어, 컴퓨터 소프트웨어 등을 포함한다.

 - 구성요소

  • 메타데이터
  • 패키저
  • 시큐어 컨테이너
  • 식별자
  • DRM 제어기

 - DRM 모델

 

대칭키

1. 현대 대칭키 암호

(1)현대 블록 암호

현대 블록 암호는 확산과 혼돈과 같은 성질을 만족시키기 위하여 전치 요소(P-박스로 불린다)와 치환 요소(S-박스로 불린다) 그리고 그 밖의 구성 요소를 결합하여 설계된다.

공격 방지 암호를 제공하기 위해 현대의 블록 암호는 이동요소(shift), 교환요소(swap), 분할요소(split), 조합요소 뿐만 아니라 전치 장소(transposition, P-box)와 치환장치(substitution, S-box)와 XOR 연산의 조합으로 만들어진다.

 

#확산과 혼돈

혼돈 : 암호문과 키의 상관관계를 숨김

확산 : 평문의 통계적 성질을 암호문 전반에 퍼뜨려 숨김

 

1) P-박스

 : 문자 단위로 암호화를 수행하였던 고전 전치 암호를 병렬적으로 수행한다.

단순, 확장, 축소 P-박스가 있다.

  • 축소 P-박스 = n비트를 입력받아 m비트를 출력하는 P-박스로서 n>m을 만족하고 비트를 치환하고 동시에 다음 단계를 위한 비트의 수를 줄이고자 할 때 사용한다.
  • 확장 P-박스 = n비트를 입력 받아 m비트를 출력하는 P-박스로서 n<m을 만족하고 비트를 치환하고 동시에 다음 단계에서 비트의 양을 증가시키고자 할 때 사용한다.
  • 역함수의 존재성 = 단순 P-박스만 역함수가 존재한다.

 

2) S-박스

 치환 암호의 축소 모형으로 p박스와 달리 임력과 출력의 개수가 달라도 된다.

 

3)합성 암호

shannon의 정보이론

확산은 암호문과 평문 사이의 관계를 숨기는 것.

혼돈은 암호문과 키의 관계를 숨기는 것.

 

 - 라운드

확산과 혼돈은 각 반복이 S, P 그리고 기타 구성 요소의 결합을 의미하는 반복적 합성 암호를 사용하여 얻어진다.

 

4) 두 가지 종류의 합성 암호

(가) Feistel 암호

 - 페이스텔 구조에서 네트워크라는 이름은 그 구성도가 그물을 짜는 것과 같이 교환되는 형태로 구성되어 있기 때문에 붙여졌다.

암호강도를 결정짓는 요소는 평문 블록의 길이, 키 K의 길이, 라운드의 수이다. 그래서 안전성을 보장받기 위해서는 평문 블록의 길이는 64비트 이상, 키 K의 길이는 64비트 내외, 라운드 수 16회 이상..

 

 - 특징

입력 n비트를 두 개의 블록 (L,R)으로 나눠 라운드 함수를 F, 라운드 키를 K라 할 때 i번째 라운드 과정

 

 - SPN(Substitution-permutation network) 구조

SPN : 여러 개의 함수를 중첩하면 개별 함수로 이뤄진 암호보다 안전하다는 shannon의 이론에 근거하여 고전 암호의 일종인 Substitution Cipher와 Permutation Cipher를 중첩하는 형태로 개발한 암호다.

입력을 여러 개의 소블록으로 나누고 각 소블록을 S-Box로 입력하여 대치시키고 S-box의 출력을 전치하는 과정을 반복하는 식이다.

 

5) 블록암호에 대한 공격

(가) 차분 분석(차분 해석법, Differential Crytanalysis)

 : 선택 평문 공격법으로, 두개의 평문 블록들의 비트의 차이에 대해 대응되는 암호문 블록들의 비트의 차이를 이용하여 사용된 암호키를 찾아내는 방법이다.

 

(나) 선형 분석(선형 해독법, Linear Cryptanalysis)

마츠이에 의해 개발된 기지 평문 공격의 한 종류로 알고리즘 내부의 비선형 구조를 적당히 선형화시켜 키를 찾는 방법이다.

 

(다) 전수 공격법 (Exhaustive key search)

암호화할 때 일어날 수 있는 가능한 모든 경우에 대하여 조사하는 방법이다.

 

(라) 통계적 분석(Statistical analysis)

 : 암호문에 대한 평문의 각 단어별 빈도에 관한 자료와 더불어 지금까지 알려진 모든 통계적인 자료를 이용하여 해독하는 방법이다.

 

(마) 수학적 분석(Mathmatical analysis)

 : 통계적인 방법을 포함하며 수학적 이론을 이용하여 해독하는 방법이다.

(2)현대 스트림 암호

 

2) 동기식 스트림 암호

 - One-Time Pad(Venom)

암호화를 수행할 때마다 랜덤하게 선택된 키 스트림을 사용한다.

암호화 알고리즘과 복호화 알고리즘은 각각 배타적 논리합 연산을 사용한다.

 

#OTP 안전성을 위한 조건

패드는 한 번만 사용되야 한다.

패드는 메시지 길이만큼 길어야 한다.

패드는 목적지로 안전하게 배포되고 보호되어야 한다.

패드는 순수하게 임의값으로 만들어져야 한다.

 

 - 귀환 시프트 레지스터(Feedback Shift Register)

 

 - 선형 귀환 시프트 레지스터(LFSR, linear feedback shift register)

 : 하드웨어로 수비게 구현되며 몯든 스트림 암호는 아니지만 많은 스트림 암호가 LFSR을 사용한다.

 

  - 비선형 귀환 시프트 레지스터(NLFSR, Nonlinear Feedback Shift Register)

 

3) 비 동기식 스트림 암호

 : 키 스트림이 평문 또는 암호문과 관계를 갖는 작 동기식 스트림 암호 시스템은 키 스트림이 평문 혹은 암호문으로부터 함수 관계에 의해 생성되는 방식 CFB 모드

 

2. DES(Data Encryption Standard)

(2) DES 개관

평문의 길이는 64비트이고 키의 길이는 56비트다. 이보다 긴 평문은 64비트 블록으로 나눈다. DES 구조는 Feistel 네트워크의 변형된 형태이다. 라운드 횟수는 16회. 원래 키로부터 16개의 서브키를 생성하고 그 서브키를 각 라운드에서 사용한다.

 

복호화 과정은 근본적으로 암호화과정과 동일하다.

첫번째 라운드에 k16을 사용하고 다음 라운드에 k15를 사용하며 마지막엔 k1을 사용한다.

 

 - 구조

두 개의 전치(P-박스)와 16개의 Feistel 라운드 함수로 구성된다. 하나는 초기 전치, 다른 하나는 최종 전치다. (48비트 라운드 키를 사용)

 

(3) DES 분석

 

 - DES 취약점

키의 작은 변화가 암호문에 변화를 만드는 쇄도효과가 크고 암호문의 각 비트가 평문의 많은 비트들에 의존하는 완비성이 높은 것으로 증명되어 평문을 추론하기 어렵다.

하지만 56비트 키를 사용하므로 최대 키 공간의 크기는 2의 56승이 되고계산 능력이 발달되어 안전하지 못하다.

 

(4) 다중 3DES

 

3. AES(Advanced Encryption Standard)

  - 라운드 

 Aes에서는 128비트 평문을 128비트 암호문으로 출력하는 알고리즘으로 non-Feistel알고리즘에 속한다.

10,12,14라운드를 사용하며 키 크기는 128,192,256비트이다.

 

 - AES 암호화 과정

각 라운드는 비 선형성을 갖는 S-Box를 적용하여 바이트 단위로 치환을 수행하는 SubBytes() 연산, 행 단위로 순환 시프트를 수행하는 ShiftRows() 연산, 높은 호가산을 제공하기 위해 열 단위로 혼합하는 MixColumns() 연산과 마지막으로 라운드 키와 stat를 EX-OR 하는 AddRoundKey()연산으로 구성된다.

암호화 마지막 라운드에서는 MixColumns()연산을 수행하지 않는다.

 

Feistel : DES, LOKI, CAST, Blowfish, MISTY, RC5, RC6, CAST256, E2, Twofish, Mars

spn : SAFER, SHARK, Square, CRYPTON, Rijndael, SAFER, Serpent, PRESENT

비교 AES DES
년도 1976 1999
블록크기 64bits 128bits
키 길이 56bits 128,192,256 bits이상
암호화 프리미티브 치환, 전치 치환, 시프트, 비트 혼합
암호학적 프리미티브 혼돈, 확산 혼돈, 확산
설계 공개 공개
설계 원칙 비공개 공개
선택 과정 비밀 비밀, 공모
출처 IBM, NSA 벨기에 암호학자

 

4. 기타 대칭키 암호 알고리즘

(1) 국제 암호 알고리즘

1) IDEA(International Data ENcryption Algorithm)

 : DES를 대체하기 위해 스위스에서 128비트, 64비트 블록 암호로 Feistel 구조를 변형.(Feistel과 SPN의 중간 형태)

8라운드에 걸쳐 데이터를 변환하고 마지막에 한 번 더 키를 작용시켜 64비트 암호문을 생성하기 때문에 보통 8.5라운드라고 말한다.(S-BOX를 사용하지 않음)

PGP(Pretty Good privacy)의 데이터 암호 알고리즘으로 채택되어 사용되고 있다.

 

2) RC5

 : 미국에서개발했고 입출력, 키, 라운드 수가 가변인 블록 알고리즘은 32/64/128 비트의 블록을 가지며 속도는 DES의 10배이다.

 

(2) 국내 암호 알고리즘

1) SEED

 : 전자상거래, 무선 통신 등에서 공개될 경우 민감한 영향을 끼칠 수 있는 중요 정보 및 개인 정보를 보호하기 위한 대칭키 알고리즘이다.

128비트 비밀키의 평문 블록을 128비트 암호문 블록으로 암호화하여 출력하는 방식이다.

 seed의 f함수는 수정된 64비트 Feistel형태로 구성된다.

 

2)ARIA(Academy Research Institute Agency)

국가 보안 기술연구소(NSRI)주도로 만든  알고리즘으로 ISPN(Involutional SPN)구조의 128비트 블록 암호로 128비트, 192비트, 256, 3종류의 키 사용을 제공한다.

 

3) HIGHT(HIGh security and light weigHT)

 : 저전력경량화를 요구하는 컴퓨팅 환경에서 기밀성을 제공하기 위해 개발한 64bit블록암호이다.

 

4) LEA(Lightweight Encryption Algorithm)

 : 128bit 경량 고속 블록 암호 알고리즘은 현재 가장 많이 쓰이는 AES보다 2배정도 빠르다.

 

5. 현대 대칭키 암호를 이용한 암호화 기법

 - 블록 암호의 사용 방식

 : 고정된  n 비트 블록을 n비트 블록으로 변환시키는 함수이다. 임의 길이의 평문을 암호화시키기 위해서 평문을 특정한 길이로 분할하여 블록 암호에 입력시켜야한다.

블록 암호를 이용하여 평문을 암호화할 때에는 단순히 암호 알고리즘만이 있으면 해결되는 것이 아니고 사용 방식도 규정해야 한다.

 

 -  NIST에서 정한 5가지 운영 모드

  • ECB : Electronic CodeBook(전자 부호표 모드)
  • CBC : Cipher Block Chaining mode(암호 블록 연쇄 모드) - 각각의 평문 블록은 암호화되기 전에 이전 암호문 블록과 XOR된다. 그리고 첫 번째블록을 암호화할 때는 이전의 암호문 블록이 전재하지 않으므로, 초기 벡터(IV)라고 불리는 허구의 블록이 사용된다.

암호문에 누락이 생겨 한 비트씩 밀려나면 암호문 블록을 전부 복호화할 수 없게 된다.

IPSec에서 통신의 기밀성을 지키기 위해 CBC모드를 사용하고 있다. 또한 인증을 수행하는 대칭키 암호 시스템의 하나인 케르베로스 v5에서도 사용되고 있다.

  • CFB : Cipher-Feedback mode(암호 피드백 모드)

 - 암호화와 복호화

복호화 과정은 평문 블록과 암호문 블록의 역할만 바뀌었을 뿐 동일하고 암호 함수는 DES, AES를 사용한다.

  • OFB : Output-Feedback mode(출력 피드백 모드) - 평문 블록이 동일하면 암호문이 같아지는 ECB 모드의 단점과 오류 전파가 발생하는 CBC모드와 CFB 모드를 개선한 동작모드이다. 

동작은 암호기의 출력과 평문을 EX-OR하여 암호문을 생성하고 있으므로 오류 전파가 발생하지 않는다.그러나 암호문 송신자와 수신자 사이에 동기를 조절해야 한다.

특징

초기치가 바뀌면 암호문은 모두 바뀐다.

암호 알고리즘의 출력은 평문과 무관하다.

전송 중의 비트 오류가 전파되지 않는다.

 

  • CTR : CounTeR mode(카운터 모드)

 

 - 정리

  이름 장점 단점 비고
ECB 전자 부호표모드 간단
고속
병렬처리
평문 속의 반복이 암호문에 반영된다.
암호문 블록의 삭제나 교체에 의해 평문의 조작 가능
비트 단위의 에러가 있는 암호문을 복호화하면 대응하는 블록이 에러가 난다.
재전송 공격 가능
사용 해서는 안된다.
CBC 암호 블록 연쇄 모드 평문의 반복은 암호문에 반영되지 않는다.
병렬 처리 가능(복호화만). 임의의 암호문 블록을 복호화 가능
암호문에서는 병렬 처리 불가능
전송 도중 암호문 블록 C에서 한 비트 오류가 발생하면 평문 블록 P에는 C의 오류 비트와 같은 위치에서 한 비트 오류가 발생한다. 하지만 C의 비트는 시프트 레지스터에 오류가 존재하는 한 다음 평문 블록의 대부분 비트에 오류가 난다.
Practical Crypto-graphy 권장
CFB 암호 피드백 모드 평문의 반복은 암호문에 반영되지 않는다.
병렬 처리 가능(복호화만). 임의의 암호문 블록을 복호화 가능
암호문에서는 병렬 처리 불가능
재전송 공격이 가능
전송 도중 암호문 블록 C에서 한 비트 오류가 발생하면 평문 블록 P에는 C의 오류 비트와 같은 위치에서 한 비트 오류가 발생한다. 하지만 C의 비트는 시프트 레지스터에 오류가 존재하는 한 다음 평문 블록의 대부분 비트에 오류가 난다.(확률50%)
 
OFB 출력 피드백 모드 패딩이 필요 없다.
암,복호화의 사전 준비 가능
암,복호화가 같은 구조
비트 단위의 에러가 있는 암호문을 복호호하면 평문의 대응하는 비트만 에러가 난다.
병렬처리 불가능
적극적 공격자가 암호문 블록의 비트를 반전시키면 대응하는 평문 블록의 비트가 반전된다.
 
CTR 카운터 모드 패딩이 필요 없다.
암,복호화의 사전 준비 가능
암,복호화가 같은 구조
비트 단위의 에러가 있는 암호문을 복호호하면 평문의 대응하는 비트만 에러가 난다.
병렬처리 가능(암,복호화 양쪽)
적극적 공격자가 암호문 블록의 비트를 반전시키면 대응하는 평문 블록의 비트가 반전된다. Practical Crypto-graphy 권장

 

비대칭키

1. 비대칭키 암호

(1)키 배송 문제

대칭키 암호 사용 시 키 배송 문제를 해결하기 위한 방법

  • 1) 키의 사전 공유에 의한 해결
  • 2) 키배포 센터에 의한 해결(온라인 키 분배)
  • 3) Diffie-Hellman 키 교환에 의한 해결
  • 4) 공개키 암호에 의한 해결

 

1)키의 사전 공유에 의한 해결

키 사전 분배 : 키 관리기관(TA, trusted authority)이 사전에 임의의 두 사용자(A,B)에게 비밀 경로를 통하여 임의 키(K{a,b}=K{b,a})를 선택하여 전달하는 방법[단점 : 많은 키를 관리해야 한다.]

 

2) 키배포 센터에 의한 해결

키 배포센터(KDC, key distribution center=TA)라는 신뢰받는 제 3자에 의뢰해서 개인과 키배포 센터 사이에서만 키를 사전에 공유하는 것.

 

3) Diffie-Hellman 키 교환에 의한 해결[최초의 비밀 교환 프로토콜]

kdc없이 대칭 세션키를 생성

대칭키를 만들기 전에 양쪽은 두 개의 소수 p, g를 선택.[p는 매우 큰 소수로 300자리가 넘는 10진수]

 

 - 절차

1. A는 임의의 큰 수 x를 0<= x <= p-1 안에서 선택하고, R1 = g^x mod p를 계산

2. B는 임의의 큰 수 y를 0<= y <= p-1 안에서 선택하고, R2 = g^y mod p를 계산 

3. A는 R1을 B에게 보낸다.

4. B는 R2를 A에게 보낸다.

5. A는 k=(R2)^x mod p를 계산

6. B는 k=(R1)^x mod p를 계산

7. 이렇게 구한 K가 세션에 사용될 대칭키이다.

 -> DoS공격과 중간자 공격에 취약

 

4) 공개키 암호에 의한 해결

(2)공개키 암호

송신자 = 수신자의 암호화키를 사용하여 메시지를 암호화

수신자 = 송신자의 복호화키를 사용하여 암호문을 복호화한다.

 

 - 공개키 암호의 중간자 공격

 : 공개키 암호에서 중간자 공격은 기밀성에 대해 매우 유효한 공격 방법이다.

 

 - 대칭키 vs 비대칭키

구분 대칭키 공개키
장점 암호화/복호화 속도가 빠름
키의 길이가 짧음
키의 분배가 용이함
사용자의 증가에 따라 관리해야 할 키의 개수가 상대적으로 적음
키 변화의 빈도가 적음
여러 가지 분야에서 응용이 가능함
단점 키의 분배가 어려움
사용자의 증가에 따라 관리해야 할 키의 개수가 상대적으로많음
키 변화의 빈도가 많음
응용 분야가 제한적임
키의 길이가 긺
암호화/복호화 속도가 느림

 

(3)RSA 암호시스템

Rivest-Shamir-Adleman

인수분해 문제

 

 - 암호화와 복호화

1. RSA에서는 두 개의 지수 e[공개하는 값]와 d를[비밀로 유지하는 값] 사용한다. p[평문], C[암호문]

2. A는 C=p^e mod n을 이용하여 평문 P에서 암호문 C를 생성

B는암호문 C에서 C=p^d mod n을 이용하여 A가 보낸 평문을 얻는다.

 

 - 키 생성

  1. p와 q라고 하는 두 개의 서로 다른  소수를 고른다
  2. 두 수를 곱하여 N = pq를 찾는다.
  3. (N) = (p-1)(q-1)을 구한다.
  4. N보단 작고, (N)과 서로소인 정수 e를 찾는다.
  5. 확장된 유클리드 호제법을 이용하여 d*e를 (N)으로 나눴을 때 나머지가 1인 정수 d를 구한다.

2) RSA 예

  1. p=17, q=11
  2. N=17*11 = 187
  3. 16*10 = 160
  4. 160> 서로소 ->e=7
  5. d<160 de mod160 = 1인 d는 23
  6. PU={7, 187}이고 개인키는 PR = {23, 187}

3) RSA에 대한 공격

 - 수학적 공격(소인수분해)

개인키 d가 크면 클수록 안전

 

 - 타이밍 공격(시간 공격)

복호화 알고리즘의 실행 시간에 따라 달라진다(선택-암호문 공격)

소요되는 시간이 드러나지 않게 막아 키 길이를 추측하는 공격을 막을 수 있다. ex)랜덤 지체

 

4) 최적 비대칭키 암호 패딩(OAEP, Optimal Asymmetric Encryption Padding)

복호화에서는 평문 해시값과 정해진 개수의 '0' 등으로 만들어진 [인증정보]를 평문의 앞에 추가하고 RSA로 암호화한다. -> 패딩

올바른 인증 정보가 나타나지 않으면 비정상으로 보고 오류 메시지 회신(정확히 어떤 오류인지 알려주지 않음)

선택 암호문 공격으로부터 안전하게 됨.

 

5) 권장사항

 

(4)Rabin 암호시스템

 : RSA의 변형으로 p, q가 크기만 하면 안전하다.

 

(5)ElGamal 방식

 : 이산 대수 문제에 근거해서 만든 시스템.[오픈소스를 기초로 하여 키분배 방식 및 공개키 암호방식을 실현]

디지털 서명, 암호화, 키 교환에 사용될 수 있는 공개키 알고리즘.[Diffie-Hellman의 확장]

암호문의 길이가 길어 느리다.

(6) 타원 곡선 암호(ECC, Elliptic Curve Cryptosystem)

 : 키의 길이가 짧아도 괜찮은 보안성을 제공하는 암호[타원곡선 군에서의 이산대수의 문제에 기초]

항목 ECC방식 RSA 방식
기반구조 WPKI(무선) PKI(유선)
속도 우수 느림
키 크기 상대적으로 작은 키 ECC에 비해 큰 키
적용 소형 mobile 인프라가 다소 구현된 환경

 

(7) 대칭키 방식과 비대칭키 방식의 비교

 

2.하이브리드 암호시스템

 - 특징

메시지는 대칭키 암호로 암호화

대칭키 암호의 암호화에서 사용한 세션키는 의사난수생성기로 생성

세션키는 공개키 암호로 암호화

 

해시함수와 응용

1. 일방향 해시함수

 : 임의의 길이를 갖는 메시지를 입력으로 하여 고정된 길이의 해시값 또는 해시 코드라 불리는 값을 출력하는 함수다.

 

 - 특징

  1. 임의 길이의 메시지로부터 고정 길이의 해시값을 계산한다. - 어떤 길이의 메시지를 입력으로 주더라도 항상 짧은 해시값을 생성하지 않으면 의미가 없다.
  2. 해시값을 고속으로 계산할 수 있다.
  3. 일방향성을 갖는다. - 해시값으로부터 메시지를 역산할 수 없다.
  4. 메시지가 다르면 해시값도 다르다 - 무결성을 확인하기 위해 사용된다.[2개의 다른 메시지가 같은 해시값을 갖는 것을 충돌이라 한다.]

 

(2) 해시함수의 분류와 보안 요구사항

프리이미지 저항성, 제2프리이미지 저항성, 충돌 저항성 3가지 기준을 충족해야 한다.

  • 프리이미지 저항성(역상 저항성)

: 주어진 해시함수 h와 y=h(M)에 대해 도청자가 메시지를 찾아내는 것은 매우 힘들어야 한다는 성질.

해시값 h=H(x)에 대해 x는 h의 선 이미지(preimage)라고 한다

 

 

  • 제2프리이미지 저항성(두 번째 역상 저항성, 약한 충돌 내성)

 : 메시지를 쉽게 위조할 수 없도록 하는 성질

 

  • 충돌 저항성(충돌 회피성, 강한 충돌 내성)

 : 동일한 메시지를 갖지 못하도록 하는 것

 

2) 전자서명에 이용되는 해시 함수의 특성

  • 해시값을 고속으로 계산할 수 있다.
  • 약 일방향성 - 해시값H로부터 h(M)=H가 되는 서명문 M을 찾는 것은 불가능해야 한다.
  • 강 일뱡향성 - M과 그 해시값 H=h(M)이 주어졌을 떄 h(M')=H가 되는 서명문 M'=/M을 찾는 것이 불가능해야 한다.
  • 충돌회피성 - h(M)=h(M')가 되는 서명문 쌍(M,M')을 찾는 것이 불가능해야 한다.

 

(3) 키가 없는 해시함수와 키를 사용하는 해시 함수

1) 반복 해시함수

 

 

 

2) 키가 없는 해시함수

 

3) 키를 사용하는 해시함수

 

 

 

 

(4) 암호학적 해시함수의 응용

1) 무결성 점검

 

 

2)s/w변경 검출

 

 

3) 메시지 인증 코드

 

 

4) 전자서명

 

 

 

 

(5) 랜덤 오라클 모델과 해시함수에 대한 공격

1) 랜덤 오라클 모델

 

 

 

 

2) 일방향 해시함수에 대한 공격

 

 

 

(6) 일방향 해시함수로 해결할 수 없는 문제

 

2. 암호학적 해시함수의 예

(1) SHA-512

 

 

 

(2) SHA-3

 

 

 

 

3. 메시지 인증코드(MAC)

(1)개요

 

 

 

(2) MAC의 구현 사례

 

 

 

(3) MAC에 대한 공격

 

 

 

 

(4) MAC으로 해결할 수 없는 문제

 

 

 

 

 

전자서명과 PKI

1. 전자서명

 

 

2. PKI(공개키 기반 구조)

 

 

 

키, 난수

1. 키

 

 

 

2. 난수

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'교육 및 자격증 > 정보보안기사 : 필기' 카테고리의 다른 글

Part05 - 네트워크 보안  (0) 2022.09.01
Part04 - 시스템 보안  (0) 2022.09.01
Part03 - 접근 통제  (0) 2022.09.01
Part01 - 정보보호 개요  (0) 2022.09.01
목차  (0) 2022.09.01