현대 블록 암호
:(이동, 교환, 분할, 조합), 전치 장치(Permutation, P-box), 치환 장치(Substitution, S-box), XOR연산의 조합으로 만들어진다.
S-box(혼돈,비선형 함수)
:입력비트와 출력비트의 개수가 같지 않아도 된다.
:역함수가 존재할 수 있고, 존재하지 않을 수도 있다.
:역함수가 존재하는 S-box는 입력 비트 == 출력 비트 개수가 동일
P-box(확산)
단순(Straight) P-box : 입력 비트와 출력비트는 일대일 대응, 역함수가 존재한다.
축소(Compression) P-box : 입력 비트 중 특정 비트는 소실되어 출력되지 않는다, 역함수 X
확장(Expansion) P-box : 입력 비트 중 특정 비트는 한 개 이상의 출력비트와 연결된다, 역함수 X , 비트 증가
혼돈과 확산
혼돈 : 암호문과 키 사이의 관계를 숨긴다.
확산 : 암호문과 평문 사이의 관계를 숨긴다. 평문의 통계적 성질을 암호문 전체에 퍼뜨려 숨긴다.
혼합 암호(Product Cipher)
:치환(Substitution) 암호와 전치(Permutation) 암호의 2가지 방법을 모두 사용하는 암호화 방법이다.
라운드(Round)
:반복적으로 사용되는 혼합 암호를 라운드라고 한다.
양자 암호
:하이젠베르크의 불확정성 원리를 응용한 암호화 방식이다.
파이스텔 암호(Feistel Cipher)
:블록 암호의 일종으로, 암호화 방식이 라운드 함수의 반복으로 이루어 진다.
:키 순서를 제외한 암호화 방식과 복호화 방식이 동일하다.
:파이스텔 구조(파이스텔 네트워크)는 3라운드 이상이며, 짝수 라운드로 구성된다.
:파이스텔 구조는 많은 블록 암호 알고리즘 (MARS, RC6, Twofish)에서 사용되고 있다.
방식
암호화하려는 정보를 길이가 같은 두 개의 정보로 쪼갠다. 이를 이라고 하고, 라운드 에서 사용되는 키를 , 그리고 라운드 함수를 로 놓는다.
암호화 과정에서는 각 라운드에서는 다음과 같은 연산이 이루어진다.
모든 라운드가 끝난 후, 최종적으로 가 암호화된 값이 된다.
복호화 과정에서는 반대의 연산이 이루어진다. 가 주어졌을 때, 각 복호화 라운드에서는 다음과 같은 연산이 이루어진다.
최종적으로 원래 값 를 얻는다.
출처:https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%B4%EC%8A%A4%ED%85%94_%EC%95%94%ED%98%B8
SPN 구조(Substitution-Permutation Network)
:평문을 여러 개의 작은 블록으로 나누고 각 블록을 S-box로 입력하여 치환하고 나온 출력값을 P-box로 전치하는 과정을 반복하는 방식이다.
:라운드 함수가 역변환이 된어야 한다.
:많은 병렬성을 제공하기 때문에 암·복호화 알고리즘의 고속화를 요구한다.
현대 스트림 암호
:동기식과 비동기식 두 가지 종류로 분류된다.
동기식 스트림 암호
:키 스트림은 평문 or 암호문 스트림과 독립적이다.
-One-Time Pad(가장간단하고 안전한 암호, 키의 전달과 보관이 문제)
-FSR(귀환 함수, 시프트 레지스터로 구성)
-LFSR(하드웨어로 쉽게 구현, 선형성 때문에 공격에 취약)
-NLFSR(LFSR보다 안전한 스트림 암호)
-OFB(Output FeedBack)모드
비동기식 스트림 암호
:키 스트림은 평문 or 암호문 스트림에 종속적이다.
-CFB(Cipher FeedBack)모드는 스트림 암호 생성
DES(Data Encryption Standard)
:64bit 블록 암호 알고리즘
:Feistel 구조
키의 크기 : 64bit(56bit 비밀키 + 8bit parity bit), 56bit 비밀키를 사용해 라운드 키 생성기로 48bit 라운드 키 16개 생성
암호화 과정 : P-box 2개, 16 라운드의 파이스텔 구조
DES 함수 구조 : 확장 P-box, 키 XOR, S-box 8개, 단순 P-box 4개
취약점 : 키의 크키가 작음
3DES(Triple-DES)
:하드웨어에서 매우 효율 적, 소프트웨어에서는 비효율적이다.
키의 개수 | 암호화-복호화-암호화 |
키의 크기 |
라운드 |
2개 |
DES-EDE2 |
112 |
48 |
3개 |
DES-EDE3 |
168 |
48 |
AES(Advanced Encrypiton Standard)
:128bit 블록 암호 알고리즘
:SPN 구조
:AES 알고리즘으로 선택된 것은 라인달(Rijndael)이다.
버전 : AES-128, AES-192, AES-256
키의 크기 : 128bit, 192bit, 256bit, 키 확장 알고리즘으로 부터 생성되는 라운드 키의 크기는 128bit 이다.
암호화 과정 : SubBytes(바이트 치환), ShiftRows(행의 이동), MixColumns(열의 혼합), AddRoundkey(라운드 키와 XOR)
라운드 : 10라운드-128bit, 12라운드-192bit, 14라운드-256bit
기타 대칭키 암호 알고리즘
IDEA : 64bit 블록, 128bit 키, 파이스텔 구조 변형, 8라운드, S-box 사용X, DES에 비해 안전, PGP 채택
Skipjack : 64bit, 80bit 키, 32라운드, Fortezza Card에 사용
RC5 : 입출력,키,라운드 수가 가변인 블록 알고리즘, 빠른 암·복호화
SEED : 128bit 블록, 128bit 키, 16라운드, 파이스텔 구조 변형, 한국표준 블록암호 알고리즘
AIRA : 입출력 크기와 키 크기는 AES와 동일
HIGHT : 64bit 블록, 저전력·경량화를 요구하는 컴퓨팅 환경
LEA : 128bit 블록, 경량 고속 블록 암호 알고리즘, AES보다 1.5~2배 빠름, 스마트폰 보안, 사물인터넷 등 저전력 암호화에 쓸 수 있음
Feistel , SPN 알고리즘
Feistel구조 알고리즘 종류
:DES, LOKI, CAST, CAST256, Twofish, Blowfish, MISTY, RC5, RC6, E2, MARS
SPN구조 알고리즘 종류
:SAFER, SAFER+, SHARK, Square, CRYPTON, PRESENT, Serpent, Rijndael
블록 알고리즘 종류
구분 |
개발국가 |
개발년도 |
특징 |
블록크기 |
키의 크기 |
라운드 |
DES |
미국 |
1972 |
NIST에서 표준으로 공표(1977년) |
64 |
56 |
16 |
FEAL |
일본 |
1987 |
S/W구현에 적합 |
64 |
64 |
4 |
IDEA |
미국 |
1990 |
PGP 채택 |
64 |
128 |
8 |
SKIPJACK |
미국 |
1990 |
Fortezza카드에 사용 |
64 |
80 |
32 |
RC5 |
미국 |
1994 |
알고리즘 간단, 빠른 암·복호화 |
64 |
0-256 |
16 |
MISTY |
일본 |
1996 |
차분/선형공격에 안정성증명구조 |
64 |
128 |
8 |
CRYPTON |
한국 |
1998 |
128 |
0-256 |
12 |
|
SEED |
한국 |
1999 |
한국표준 블록암호 알고리즘 |
128 |
128 |
16 |
Rijndael | 벨기에 |
| 2000년 AES알고리즘으로 선정 | 128 | 128,192,256 | 10,12,14 |
블록 암호 모드
모드 이름 |
장점 |
단점 |
비고 |
ECB 모드 |
간단/고속/패딩O 병렬 처리 가능(암/복호화 양쪽) |
동일한 평문은 동일한 암호문 블록을 갖음 암호문의 한 블록에서 에러가 발생하면 대응되는 평문 블록에서 에러 발생 암호문 블록의 삭제나 교체에 의한 평문의 조작 가능 재전송 공격이 가능 |
비권장 |
CBC 모드 |
동일한 평문은 동일한 암호문 블록을 갖지 않음 병렬 처리 가능(복호화만) |
암호화에서 병렬 처리 불가능 암호문 에서 오류가 발생하면 평문 와 에서 에러가 발생 평문 블록의 한 비트 오류는 출력되는 모든 암호문에 영향을 미침 |
권장 |
CFB 모드 |
패딩X 병렬 처리 가능(복호화만) |
암호화에서 병렬 처리 불가능 재전송 공격이 가능 |
CTR모드사용이 나음 |
OFB 모드 |
패딩X 암/복호화의 사전 준비 가능 암/복호화가 같은 구조 비트 단위의 에러가 있는 암호문을 복호화하면 평문에 대응하는 비트만 에러가 난다 |
병렬 처리 불가능 암호문 에서 에러가 발생하면 그 다음에 오는 평문은 모두 에러가 발생 |
CTR모드 사용이 나음 |
CTR 모드 |
패딩X 암/복호화 사전 준비 가능 암/복호화가 같은 구조 비트 단위의 에러가 있는 암호문을 복호화하면 평문에 대응하는 비트만 에러가 난다 병렬 처리 가능(암/복호화 양쪽) |
공격자가 암호문 블록의 비트를 반전시키면 대응하는 평문 블록의 비트가 반전된다. |
권장 |
블록 모드 : ECB, CBC
스트림 모드 가능한 블록 모드 : CFB, OFB, CTR
블록 암호 공격
-차분공격 : 선택 평문 공격법, 두 개의 평문 블록들의 비트의 차이에 대응되는 암호문 블록들의 비트의 차이를 이용하여 사용된 키를 찾는 방법
-선형공격 : 평문 공격법, 알고리즘 내부의 비선형 구조를 적당히 선형화시켜 키를 찾는 방법
-전수공격법 : 암호화할 때 일어날 수 있는 가능한 모든 경우에 대하여 조사하는 방법, 경우의 수가 많은 경우에 실현 불가능한 방법
-통계적 분석 : 암호문에 대한 평문의 각 단어별 빈도에 관한 자료와 지금까지 알려진 모든 통계적인 자료를 이용하여 해독하는 방법
-수학적 분석 : 통계적인 방법을 포함하며 수학적 이론을 이용하여 해독하는 방법
'보안서적 > 정보보안기사' 카테고리의 다른 글
정보보안기사 필기시험 정리 - 6 (0) | 2017.06.23 |
---|---|
정보보안기사 필기시험 정리 - 5 (1) | 2017.06.09 |
정보보안기사 필기시험 정리 - 4 (0) | 2017.05.31 |
정보보안기사 필기시험 정리 - 2 (1) | 2017.05.22 |
정보보안기사 필기시험 정리 - 1 (1) | 2017.05.22 |