1. 고전 대칭키 암호
(1) 개요
1)기본개념
①대칭키 암호화에서는 암/복호화 과정 모두 동일한 한개의 키(한개의 키 자체가 집한인 경우도 있음)를 사용. 암호/복호 알고리즘은 역관계임.
(2)치환암호(대치암호, SubStitude Ciphers)
1)개요
①하나의 기호를 다른 기호로 대체함.
②단일문자암호(monoalphabetic ciphers)와 다중문자암호(polyalphabetic ciphers)로 분류됨.
2)단일문자 암호
(가)개요
①단일문자 암호에서는 평문속의 하나의 문자 혹은 기호가 위치와 상관없이 암호문에서 항상 같은 문자 혹은 기호로 대체된다.
②평문에서 A가 항상 D로 대체된다면. 모든 A는 D로 대체된다. 1:1대응관계를 갖는다.
③평문에 등장하는 문자의 빈도가 암호문에서도 동일한 빈도로 나타난다는 것이 약점.
(나)덧셈암호(Addictive Cipher)_참고
①가장 간단한 단일문자 암호. 이동함호 또는 시저암호라고도한다.
②평문은 소문자로 구성되고, 암호문은 대문자(A~Z로 구성된다고 가정한다.평문과 암호문에 수학연산을 적용하기위해 각각의 문자에 수치를 대응시킨다.)
③각각의 문자는 Z26의 원소로 대응된다. Alice와 Bob의 비밀키도 Z26의 원소이다. 암호 알고리즘에서 키는 평문문자와 더해지고 복호 알고리즘은 암호문 문자에서 키를 뺀다. 모든 연산은 Z26에서 이루어진다.
(다)곱셈 알고리즘(Multiplicative Ciphers)
①암호 알고리즘은 평문에 키를 곱하고 복호 알고리즘은 암호문을 키로 나눈다.
(라)단일문자 암호 해독(Cryptanalysis)
①어떤 암호에서 사용할 수 있는 모든 키의 집합을 키공간이라 하며 이 키 공간에 속하는 가능한 키의 총 수를 키공간의 크기라 한다. 키 공간이 크면 클수록 무차별 공각은 어려워지게 된다.
②단일 치환 ㅇ마호의 평문에서 사용되는 알파벳 a는 A,B..Z의 26문자 중 하나에 대응된다. b는 a를 제외한 25개중 하나에 대응된다. 이하 동일한 방법으로 단일 치환방법의 총 수는 26!으로 약 4x10^26
③무차별 공격에서 단일치환암호를 해독하는것은 어렵지만 , 빈도분석이라는 암호해석법을 사용하면 단일치환 암호도 해석할 수 있다.
3)다중문자 암호
(가)개요
①다중문자치환(Polyalphabetic substitution)에서는 각 문자가 다른 치환을 가진다. 평문 문자와 암호문 문자와의 관계는 일대 다 대응이다. a는 D로 암호화될수도 G로 암호화 될 수도 있다.
②언어의 문자 빈도를 감추는 장잠이 있다. 단일문자 빈도해독을 사용할 수 없다.
(나)Vigenere암호
(다)Rotor암호
①단일 알파벳 치환에 따른 아이디어를 제공하고 각각의 평문 문자에 대해 평문과 암호문 문자의 사상을 변화시킨다
(라)에니그마(Enigma machine)
①rotor암호원리를 기반으로함
②송/수신자가 같은키를 사용하지 않으면 암호통신은 할 수 없음.
(3)전치암호(Transposition Ciphers)
1)키가 없는 전치암호(keyless Transposition Cipher)
①과거에 사용된 간단한 전치암호는 키가 없다. 텍스트가 열 순서로 표에 기록된 뒤 행 순서로 전송되는 방법, 텍스트가 행 순서로 표에 기록된 뒤 열 순서로 전송된다.
②rail fence암호
- 첫번째 방법을 사용하는 키가 없는 암호의 좋은 예.
- m e m a p r
- e t e t a k
- 이렇게 나누고 횡으로 보내면 암호문이 생성된다.
- 가장 오래된 암호방식으로 대표적인 전치암호방식.
- 막대에 종이를 감아 평문을 횡으로 쓴 암호문. 동일한 막대기를 사용해야함.
2)키가 있는 전치암호(Keyed Transposition Ciphers)
①블록이라고 하는 미리 정해진 크기로 평문을 나눈 뒤 각각의 블록에서 문자를 전치하기 위해 따로 키를 사용한다.
3)전치암호의 암호 해독
①전치암호는 여러 종류의 암호문 단독 공격에 취약함.
②통계적인 공격: 전치암호는 암호문의 문자빈도를 변화시키지않고, 단지 문자를 재정렬한다. 따라서 적용될 수 있는 첫번째 공격은 단일 문자 빈도 분석이다.
③전수조사공격: Eve는 메시지를 복호화하기위해 모든 가능한 키를 시도할 수 있다.
④패턴공격: 키가있는 전치암호로 생성된 암호문은 어떤 반복된 패턴을 갖는다.
2.현대 대칭키 암호
(1)현대 블록암호
1)개요
- n-비트 평문 블록을 암호/복호화한다. 알고리즘은 k비트 키를 이용.
- 복호 알고리즘은 암호알고리즘의 역함수,두 알고리즘은 동일한 키 사용.
- 메시지 길이가 n비트보다 작으면 맞추기위해 padding함.
2)치환(Substitution), 전치(Tranposition)
- 비트로 수행된것을 제외하면 현대나 고전이나 같다함
- 암호가 치환암호로 셜계된다면 평문 비트의 값은 암의의값으로 대체된다. 따라서 평문에서 0,1의개수는 암호문의 0,1의 개수와 다르다.
- 암호가 전치암호로 설계된다면 비트는 재배열된다. 0,1중 하나의 앖을 가질 수 있으므로 n비트 평문 혹은 암호문은 2^n이다. 전치암호의 특성(0,1의 개수 유지)은 전수조사공격에 치명적이므로 현재 블록암호는 치환암호로 설계된다.
3)현대 블록암호의 구성요소
①개요
- 현대 블록암호는 확산과 혼돈과 같은 성질을 만족시키기 위해 전치요소(P-박스)와 치환요소(S-박스),그 밖의 구성요소들을 결합하여 설계한다.
- 공격방지 암호를 제공하기위해 이동요소, 교환요소, 분할요소 조합요소뿐 아니라 전치장치, 치환장치와 XOR연산의 조합으로 만들어진다.
- 문자단위로 암호화를 수행했던 고전 전치암호를 병렬적으로 수행한다. 단순, 확장, 축소의 세가지 P-박스가 있다.
- 축소 P-박스: n비트를 입력받아 m비트 출력. n>m을 만족하기위해 특정 비튼느 소실된다.
- 확장 P-박스: n비트를 입력받아 m비트 출력. n<m을 만족하기위해 특정 비트는 한개이상의 출력비트와 연결된다.
- 역함수 존재성: 단순 P-박스는 역함수 존재, 축소/확장 P-박스는 역함수 없음.
4)S-박스
①개요- S-박스는 치환암호의 축소모형으로 생각할 수 있음. 하지만 입력과 출력의 개수가 달라도 된다.
- 역함수 존재성: 입력과 출력값사이의 관계가 테이블 혹은 수학적 함수 관계로 정의되는 치환암호이다. 역함수는 존재하지 않을수도 존재할수도있는데 입력비트와 출력비트가 동일한경우가 존재하는경우.
- XOR

- 순환이동

- 교환

- 분할, 결합

5) 합성암호(Product Ciphers)
①개요- shannon은 합성암호의 개념 소개. 치환, 전치, 기타 구성요소를 결합한 복합적 암호.
- 확산: 암호문과 평문사이 관계를 숨기는것. 확산은 암호문에 대한 통계테스트를 통해 평문을 찾고자 하는 공격자를 좌절시킴.(평문의 통계적 성질을 암호문 전반에 퍼뜨려 숨김)
- 혼돈: 암호문과 키의 상관관계를 숨김. 암호문을 이용해 키를 찾고자하는 공격자를 좌절시킴. 키의 단일비트가 변하면 암호문의 거의 모든 비트가 변한다.
6) 두 가지 종류의 합성 암호
①Feistel 암호
②Feistel암호의 특징
- 이 구조에서 네트워크라는 이름은 그 구성도가 그물을 짜는 것 같이 교환되는 형태로 구성되어 있기 때문에 붙여짐.
- Feistel network는 원하는 만큼 라운드수를 늘릴 수 있다. 라운드 수ㅡㄹ 아무리 늘려도 복호화할 수 없게 될 염려는 없다.
- 암호/복호 알고리즘 두 가지를 서로 다른 알고리즘으로 구현할 필요가 없다는게 장점
- Feistel network는 많은 블록암호 알고리즘에서 이용되고 있다.
- 역함수가 존재하는 요소만을 사용한다. 암호화에 속하는 한 요소는 복호화의 한 요소에 대응된다.
- S-박스는 동일한 입/출력개수를 가져야 한다. 축소 혹은 확장 P-박스는 허용되지 않는다.(역함수 x)
- Non-Feistel 암호는 Feistel암호에서처럼 평문이 반으로 분리될 필요는 없다.
(2)현대 스트림 암호
①개요
- 현대 스트림 암호에서 암호화와 복호는 동시에 r 비트를 생성한다. 평문 비트 스트림, 암호문 비트 스트림, 키 비트 스트림을 각각 P = pn…p2 p1,
C = cn…c2 c1, K = kn…k2 k1, 이라고 하자. 여기서 pi , ci , ki 는 r-비트 워드이다. - 스트림암호는 블록암호보다 빠를뿐 아니라 하드웨어 구현또한 블록암호보다 더욱 용이함.
- K = kn…k2 k1(키 스트림)를 어떻게 생성하는지가 현대 스트림 암호의 주된 관심사이다. 현대 스트림 암호를 동기식/비 동기식으로 나뉜다.
(가)개요
- 동기식 스트림 암호에서 키 스트림은 평문 혹은 암호문 스트림과 독립적임.
- 키 스트림은 평문 혹은 암호문 비트와 키 비트 사이에 어떠한 관계도 없이 생성되고 사용된다.
- 동기식 스트림암호중 가장 간단하고 안전한 암호. 암호화를 수행할 때마다 랜덤하게 선택된 키 스트림을 사용한다.
- 무조건 안전하며 이론적으로 해독 불가능하다는것도 수학적으로 증명되었다.
- 암호/복호 알고리즘은 각각 XOR연산을 사용함. 연산 성질에 의해 암호 /복호 알고리즘은 서로 역관계이다. 이 암호에서 배타적 논리합 연산이 한번에 한 비트씩 적용된다.
- 이상적인 암호이며 안전하다. 공격자가 키나 평문을 추적할 수 있는 어떠한 방법도 존재하지 않으며 암호문의 통계적 특성 또한 존재하지 않는다. 또한 평문과 암호문 사이에는 아무런 관계도 없다.
- 한가지 문제점은 송신자와 수신자가 통신을 할 때마다 랜덤한 키를 공유해야 한다는 것이다. 완벽하고 이상적이지만 실제적으로 사용되기 어렵다.
(라)선형 귀환 쉬프트 레지스터(Linear Feedback shift Register; LFSR)
(마)비선형 귀환 쉬프트 레지스터(NonLinear Feedback shift Register; NLFSR)
- LFSR은 선형성때문에 공격에 취약하다. NLFSR을 이용해 더 안전한 스트림암호를 설계할 수 있다.
- NLFSR 은bm 이 b0,b1,bm-1 의 비선형 암수로 정의된다는 것을 제외하면 LFSR과 동일한 구조를 갖는다.
- 비동기식 스트림암호에서 키 스트림의 각 비트는 이전의 평문이나 암호문에 종속적으로 결정된다.
- 블록암호에서 다른 운영모드를 생성하기위해 사용되는 두 가지 방법인 CFB모드(cipher feedback mode)는 실제로 스트림암호를 생성한다.
3.DES(Data Encryption Standard)
(1)개요
1)역사
- ㄷ
- DES는 발표된 이후 가장 널리 사용되는 대칭키 블록암호가 되었다.
- 최신 암호표준인 AES는 오랫동안 사용된 DES를 대체하기 위해 표준으로 제정된 알고리즘임.
2)개관
- 평문의 길이는 64비트이고 키의 킬이는 56비트이다. 이보다 긴 평문은 64비트로 나눈다. DES구조는 Feistel Network의 변형된 형태이다. 라운드수는 16개이다. 56짜리 원래키로부터 16개의 서브키를 생성하고 그 서브키를 각 라운드에러 사용한다.
- 복호화과정은 근본적으로 암호화과정과 동일하며 규칙은 암호문을 알고리즘의 입력으로 사용하고 서브키ki는 순서를 뒤집어 적용한다. 키를 다 사용할 때까지 라운드를 반복한다.
(2)DES구조
1)개요
- 암호화 과정은 두 개의 전치(P-박스)와 16개의 Feistel 라운드 함수로 구성된다.
- 각 라운드는 라운드 키 생성기에 의해 암호키로부터 생성된 48비트 라운드 키를 사용한다.
2)라운드함수
①개요
- DES구조. 왼쪽이 한 라운드
- 라운드함수의 경우는 이전 라운드 함수(또는 초기전치박스)의 출력값Ri-1,Li-1을 입력으로 받아 다음라운드 (또는 최종전치 박스)에 입력으로 전송될 R1,L1를 생성한다.
- 각 라운드에는 2개의 암호요소 혼합기와 교환기가 있다. 이런 요소들은 역연산이 가능하다. 교환기는 명백하게 가능하다.
②DES함수
- DES의 핵심은 DES함수임. 라운드 함수에 사용된 f(Ri-1,Ki)를 말함. DES함수는 32비트 출력값을 산출하기 위해 가장 오른쪽의 32비트(Ri-1)에 48비트 키를 적용한다.
- DES함수는 확장 P-박스, 키XOR, 8개의 S-박스 그리고 단순 P-박스의 4개부분으로 구성되어있음 .
(3)DES분석
1)설계기준
①S-박스
- S-박스 각 라운드에서 그 다음 라운드까지 혼돈과 확산 성질을 만족하도록설계되었다.
- S-박스는 선형 함수이다.
- 임력값의 한 비트를 바꾼다면, 출력값에서는 두 비트 이상이 바뀐다.
②P-박스
- 32비트에서 32비트로 가는 하나의 단순 P-박스와 32비트에서 48비트로 가는 하나의 확장 P-박스가 있다. 이런 2개의 P-박스는 동시에 비트들을 확산시킨다.
2)DES취약성
- 비평가들은 DES의 가장 심각한 취약성이 키의 크기(56비트)에 있다고 믿는다. 암호문이 주어졌을 경우, 키에 대한 전수조사를 위해 2^56개의 키를 조사해야 한다.
(4)다중 DES
1)이중 DES
①중간 일치 공격 (meet- in- the-middle Attack)
- 얼핏 보기에, 이중 DES에서는 키를 탐색하기 위한 탐색 획수가 2^56번(하나의 DES)에서 2^112번 (이중 DES)으로 증가하는것처럼 보인다.
- 그러나 중간일치 공격과 같은 기지평문공격을 사용하면 2^112가 아닌 2^57로 략간의 향상만이 있을 뿐이다.
- 이중 DES에 대한 중간일치 공격
3)삼중DES
①두개의 키를 갖는 삼중 DES
②세 개의 키를 갖는 삼중 DES
- 두개의 키를 갖는 삼중 DES에 대한 기지평문공격의 가능성때문에 어떤 응용프로그램은 세개의 키를 갖는 삼중 DES를 사용한다.
- 세개의 키를 갖는 삼중 DES는 PGP와 같은 많은 응용프로그램에서 사용되고있다.
- 3DES의 복호화는 암호화의 역이 된다. 키3,키3,키1의 순으로 복호화-> 암호화-> 복호화를 행한다.
③DES와의 호환성
- 트리플 DES에서 모튼 키를 동일하게 하면 3DES는 보통의 DES와 같아지게 된다. 이것은 최초의 암호화->복호화로 인해 평문으로 돌아가기 때문.
- 과거에 DES로 암호화된 암호문을 3DES를 써서 복호화 할 수 있게 된다. 즉, DES에 대한 상호 호환성을 3DES가 갖도록 하고있다.
- 구분DESTriple DESAES평문 블록 크기(bits)6464128암호문 블록 크기(bits)6464128키 크기56112 또는 168128,192,256
4.AES
(1) 개요
1)역사
- DES대체를 위해 Advanced EnCryption Standard(AES)공모
2)라운드(Round)
- AES는 128비트 평문을128비트 암호문으로 출력하는 알고리즘으로 non-Feistel알고리즘에 속함.10,12,14라운드를 이용하며, 각 라운드에 대응하는 키 크기는 128,192,256비트임.
- 키 크기에 따라 AES는 세가지 버전으로 나뉘며 AES-128, AES-192, AES-256과같이 품번처럼 불린다. 이 셋 모두 키 확장 알고리즘으로부터 생성되는 라운드키 크기는 평문과 암호문 크기와 동일한 128비트이다.
- 구분DESAES년도19761999블록크기64bits128bits키길이56bits128,192,256,bit이상암호화 프리미티브치환, 전치치환,시프트,비트혼합암호학적 프리미티브혼란, 확산혼란,확산설계공개공개설계원칙비공개공개선택과정비밀비밀,공모출처IBM, NSA벨기에 암호학자
5.다른 대칭키 암호들
1)IDEA(International Data Encryption Algorithm)
- DES를 대체하기위해 스위스 연방기관에서 개발한 알고리즘. 128비트 키 이용, 64비트 블록을 암호화, 8라운드를 사용하며 주로 키 교환에 쓰임.
- DES보나 2배 빠르고 무차별공격에 더욱 효육적으로 대응할 수 있는 방식.
- PGP암호화 SW에서 사용함.
2)Blowfish
- DES와 IDEA의 다른 대안으로 대칭형 블록알고리즘이며 32비트에서 448비트까지의 키교환을 지원하는 Feistel구조.
- 특허, 라이센스가 없어 무료사용가능.
- 가장 빠른 블록암호화 알고리즘. 단, 디바이스에 포함하기위해서는 타 모델보다 많은 메모리 필요
3)SEED
- 1999년 한국정보진흥원, 국내 암호전문가들이 개발.
- 128비트 비밀키로부터 생성된 16개의 64비트 라운드키를 사용하여 총 16회의 라운드를 거쳐 128비트의 평문 블록을 128비트 암호문 블록으로 암호화해 출력.
- 암호화를 DES와 유사한 변형된 Feistel구조.f함수의 비선형성 안전도에 의존함.
4)ARIA(Academy Research Institude Agency)
- 국가보안기술연구소주도로 만들어짐.(학계,연구기관, 정부기관)
- 128비트 블록암호, 128비트 192비트 256비트의 3중류 키 사용을 제공하며 키의 길이에 따라 ARIA-128,ARIA-256,ARIA-196으로 구분.
- ARIA의 입출력크기와 사용가능한 키 크기는 미국표준 블록암호인 AES와 동일.
6.현대 대칭키 암호를 이용한 암호화기법
(1)현대 블록암호의 사용
1)개요
①기본개념
- 블록암호를 다양한 응용에 사용하기 위해 NIST에서는 5가지 운용모드를 정의하였다. 이 5가지모드는 사실상 블록암호가 사용되는 모든 암호응용에 적용할 수 있도록 만들어졌다.
- 이 모드는 DES나 AES를 포함한 어떤 태칭 블록암호에도 적용할 수 있다.
- 주요모드
- ECB모드: Electric CodeBook mode(전자 부호표 모드)
- CBC모드: Cipher Block Chaining mode(암호 블록 연쇄모드)
- CFB모드: Cipher-Feedback mode(암호 피드백 모드)
- OFB모드: Output-Feedback mode (출력 피드백 모드)
- CTR모드: CounTeR mode(카운터 모드)
2)Electric CodeBook(ECB) 모드
①개요
②응용
- 데이터베이스에 암호화된 레코드를 저장하거나 암호화된 레코드를 복호화해야하는 분야에서는 암호분블록의 독립성이 유용하다.다른 레코드에 영향을 주지 않고도 수정된 이후의 레코드는 중간에서부터 암호화되거나 복호화될 수 있다.
- ECB모드의 또 다른 장점은 매우 많은 데이터베이스를 암호화할 때 병렬적으로 처리할 수 있다는 것이다.
3)Cipher Block Chaining(CBC) 모드
①개요
- CBC모드에서 각각의 평문 블록은 암호화 되기 전에 이전 암호문 블록과 XOR된다. 블록이 암호화 될 때 암호화된 블록은 전송되지만 다음 블록을 암호화한 때 사용되기 위하여 메모리에 저장되어야 한다.
- 첫번째 블록을 암호화 할 때에는 이전의 암호문 블록이 존재하지 않으므로 초기벡터(IV)라고 불리는 허구의 블록이 사용된다.즉 송신자와 수신자 사이에서 사전에 공유된 IV가 존재하지 않는 C0대신 사용하는 것이다.
②암호화와 복호화
- CBC모드에서는 1단계 전에 수행되어 결과로 출력된 암호문 블록에 평문 블록을 XOR하고 나서 암호화를 수행한다. 따라서 생성되는 각각의 암호문 블록은 현재 평문 블록뿐만 아니라 그 이전의 평문 블록들의 영향도 받게 된다.
- 만약 평문블록1과2의 값이 같은 경우라도 암호문 블록 1과 2의 값이 같아진다고는 할 수 없다.따라서 ECB모드가 갖고있는 결점이 CBC모드에는 없다.
- 암호화 할 때 CBC모드에서는 도중의 평문 블록만들 뽑아내서 암호화할 수는 없다.암호문 블록 3을 만들고 싶다면 적어도 평문블록의 1,2,3까지 갖고 있어야만 한다.
- 복호화할 때 CBC모드의 암호문 블록이 1개 파손된 경우, 암호문 블록의 길이가 바뀌지 않았다면 평문 블록에 미치는 영향은 2개 블록에 머문다. 반면 평문 블록의 한 비트 오류는 출력되는 모든 암호분에 영향을 준다.
③활용
- 인터넷에서 보안을 재공하는 프로토콜 중 하나인 IPSec에서는 통신의 기밀성을 지키기위해 CBC모드를 사용하고 있다.
- 3DES를 CBC모드로 사용한 3DES-CBC, AES를 CBC모드로 사용한 AES-CBC모드 등
- CBC모드는 인증을 수행하는 대칭키 암호 시스템의 하나인 Kerberros Version5에서도 사용중임.
4)Cipher FeedBack(CFB)모드
①개요
- CFB모드를 이용하면 어떤 블록 암호도 스트림 암호로 바꿀 수 있다. 스트림 암호의 경우 메시지의 길이가 블록의 정배수가 되도록 패딩을 할 필요가 없고 실시간으로 사용할 수 있다. 따라서 한 문자를 전송하는 경우 문자 중심 스트림 암호를 이용해 각 문자가 암호화되는 즉시 전송이 가능하다.
②암호화와 복호화
③스트림 암호로서의 CFB모드
5) Output FeedBack(OFB)모드
①개요
- OFB모드는 CFB모드와 매우 유사하나 한가지 차이점을 가진다. OFB모드의 모든 암호문 블록의 각 비트는 이전 암호분 블록의 비트들과 독립적이다.
- 이는 오류 파급의 영향을 피할 수 있음을 의미한다. 만약 암호문 블록전송도중 오류가 발생해도 오류는 다음 블록의 비트에 영향을 주지 않는다.
- OFB모드에서도 CBC모드나 CFB모드와 마친가지로 초기화벡터를 사용한다. IV는 암호화 할 때마다 다른 랜덤 비트열을 이용하는것이 보통이다.
②스트림 암호로써의 OFB모드
①개요
- CTR모드사 ATM(asynchronous tranfer mode) 네트워크 보안과 IPSec(IP Security)에 응용되면서 관심이 최근들어 늘어났지만 이 모드는 오래전부터 제안되어옴.
- CTR모드는 암호화 시 피드백이 존재하지 않는다. 그런지만 키 스트림의 의사난수성은 카운터를 사용함으로써 성취된 수 있다.
- CTR모드는 OFB모드와 마찬가지로 이전 암호문 블록과 독립인 키 스트림을 생성하지만 피드백을 사용하지 않는다. 그리고 ECB모드처럼 CTR모드는 서로 독립인 n비트 암호문 블록을 생성한다.
②카운터 만드는 방법
- 카운터의 초기값은 암호화 때마다 다른 값(비표)을 기초로 해서 만든다. 블록 길이가 128비트(16바이트)인 경우 카운터의 초기값은 다음과 같다.
- 66 1F 98 CD 37 A3 8B 4B00 00 00 00 00 00 00 01nonce블록번호
③스트림 암호로서의 CTR모드
①블록암호 모드 비교
이름
|
장점
|
단점
|
비고
| |
ECB
|
전자 부호표 모드
|
-간단
-고속
-병렬처리가능(암호화 복호화 양쪽)
|
-평문속의 반복이 암호분에 반영.
-암호문 블록의 삭제, 교환에 의한 조작 가능.
-비트 단위의 에러가 있는 암호문을 복호화하면 대응하는 블록이 에러가 난다.
-재전송 공격이 가능
|
사용해서는 안됨.
|
CBC
|
암호 블록 연쇄 모드
|
-평문의 반복은 암호문에 반영되지 않는다.
-병렬 처리 가능(복호화만)
-임의의 암호문 블록을 복호화 가능
|
-암호문 블록 Ci에서 전송도중 함 비트에 오류가 발생하면 평문 블록 Pi에는 대부분 비트에서 오류가 발생하고, 평문블록 Pi+1에서는 Ci의 오류비트 와같은 위치에서 한 비트 오류가 발생한다.
-암호화에서는 병렬처리 불가능
|
권장
|
CFB
|
암호 피드벡 모드
|
-패딩이 필요없음
-병렬처리 가능(복호화만)
-임의의 암호문 블록을 복호화 가능
|
-암호화에서는 병렬처리 불가능
-암호문 블록 Ci에서 전송 도중 한 비트 오류가 발생하면 평문 블록 Pi에는 Ci의 오류비트와 같은 위치에서 한 비트 오류가 발생한다. 하지만 Ci의 비트는 쉬프트 레지스터에 오류가 존재하는한 다음 평문 블록의 대부분의 비트에 오류가 발생한다.(확률적으로 50%)
-재전송 공격 가능
|
CTR사용 권장
|
OFB
|
출력 피드벡 모드
|
-패딩이 필요없음
-암/복호화의 사전준비 가능하고, 같은구조
-비트 단위의 에러가 있는 암호문을 복호화하면 평문의 대응하는 비트만 에러가 난다.
|
-병렬처리 불가능
-적극적 공격자가 암호문 블록의 비트를 반전시키면 대응하는 평문 블록의 비트가 반전된다.
|
CTR권장
|
CTR
|
카운터 모드
|
-패딩이 필요 없다.
-암/복호화의 사전 준비 가능하고, 같은 구조
-비트 단위의 에러가 있는 암호문을 복호화하면 평문의 대응하는 비트만 에러가 난다.
-병렬처리 가능(암/복호화 양쪽)
|
-적극적 공격자가 암호문 블록의 비트를 반전시키면 대응하는 평문 블록의 비트가 반전된다.
|
권장
|
②블록 암호 공격
- 차분 공격에 대한 기본 개념(Differential Cryptanalysis)
- 선택된 평문 공격법. 두 개의 평문 블록들의 비트의 차이에 대응되는 암호문 블록들의 비트의 차이를 이용해 사용된 암호열쇠를 찾아내는 방법
- 선형 공격에 대한 기본 개념(Linear Cryptanalysis)
- 평문 공격법. 알고리즘 내부의 비 선형 구조를 적당히 선형화시켜 열쇠를 찾는 방법
- 전수 공격법(Exhaustive Key Search)
- 암호화할 때 일어날 수 있는 모든 가능한 경우에 대해 조사하는 방법이며 경우의 수가 적을 때는 가장 정확한 방법이지만, 일반적으로 경우의 수가 많은 경우에는 실현 불가.
- 통계적 분석(Statistical analysis)
- 암호문에 대한 평문의 각 단어의 빈도에 관한 자료를 포함하는 지금까지 알려진 모든 통계적인 자료를 이용하여 해독하는 방법.
- 수학적 분석(Mathematical analysis)
- 통계적인 방법을 포함하며 수학적 이론을 이용하여 해독하는 방법.
8)블록 알고리즘의 종류와 특징
- 구분개발국개발년도특징블록크기키 길이라운드 수DES미국1972NIST에서 표준으로 공표645616IDEA유럽1990PGP채택641288Rijndael벨기에AES알고리즘으로선정128128,192,25610,12,14SEED한국1999한국표준 블록암호 알고리즘12812816Crypton한국19981280-25612RC5미국1994알고리즘구현 간단,빠른속도640-25616FEAL일본1987SW구현에 적합64644MISTY일본1996차분/선형공격에 안전성증명구조641288SKIPJACK미국1990Fortezza카드에 사용648032
댓글 없음:
댓글 쓰기