| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 일급 객체
- Spring
- spring security
- Dependency Injection
- 일급 컬렉션
- Google OAuth
- Volatile
- java
- builder
- lombok
- factory
- OAuth 2.0
- synchronized
- Today
- Total
HJW's IT Blog
정보보호: 블록암호와 DES 본문
#블록암호
> 블럭암호는 평문 블록 전체를 가지고 동일한 길이의 암호문 블록을 생성하는 암/복호화 방식
> 많은 블럭암호가 Feistel 구조를 띈다
>> 동일한 라운드 수로 구성되어 동작
>> 각 라운드는 데이터의 절반이 치환, 이후 데이터의 두개의 반을 교환하는 순열 수행
> DES 는 최근까지 가장 널리 사용되는 암호 알고리즘
>Data Encryption Standard
# 블록 암호의 원리
> 스트림 암호
- 한번에 1bit 혹은 1byte 의 디지털 데이터 스트림을 암호화
- 키 스트림 (ki) 혹은 평문 스트림(pi)만큼의 길이를 가짐

> 블록암호
- 평문 블록 전체를 가지고 같은 크기의 암호문 블록 생성
- 전형적으로 64bit or 128bit

> Feistel 암호 구조의 동기
- 블럭 암호는 n bit 암호문 블록을 생성하기 위해 n bit 평문 블록을 이용하여 연산
- 2^n 가지의 서로 다른 평문 블록 존재
> n bit - n bit 블록 치환 (n = 4 의 경우)
- 4 bit 입력으로 16개 값중 하나 선택하고, 내부 치환에 의해 16개 출력값중 하나 대응하여 4bit 출력

> Fiestel 암호구조
- 처리구조
- 길이 2w비트인 평문 블록 분할 처리
- K로부터 유도된 n개의 키 사용
- n회의 동일한 반복구조 실행
- 하나의 반복구조

> Fiestel 암호 설계의 고려사항
- 빠른 소프트웨어 암/복호화
- 알고리즘의 실행속도가 중요하다
- 분석의 용이성
- 암호해독의 취약성에 대한 알고리즘의 분석이 쉬움
- 고도의 신뢰성과 보안 강도를 위한 개발 용이
> 설계 특성
>> 블록크기(64 bit)
- 큰 블록은 보안이 강화되지만 암/복호 속도는 저하 : 64 bit 이 일반적
>> 키 크기 (128 bit)
- 큰 키는 보안 강화 하지만 암/복호 속도는 저하 : 128bit이 일반적
>> 반복 수
- 다중 반복과정은 보안성 강화
- 16회 반복이 일반적
>> 서브키 생성 알고리즘
- 서브키 생성 방법이 복잡할 수록 강력
>> 반복함수
- 적용되는 반복함수가 복잡할 수록 강력
> Feistel 복호 알고리즘
>> 암호화와 복호화에 같은 키 사용을 위해 서브키 ki를 역순으로 사용

#DES: Data Encryption Standard
> 특징
>> 64bit 블럭 암호 알고리즘
>> 56bit 키를 사용 (나머지 8bit 은 parity check 로 사용)
>> 기본 구조
- 16 round
- 복호화는 암호화의 역순
>> 최근에는 세개의 키로 3번 반복함으로써 암호의 강도를 높임 triple-des
>> 치환과 전치의 혼합방법


> 함수 F의 설계
>> 8개의 S-box로 구성
>> 각 S-box는 6bit 입력, 4bit 출력 생성

> DES 쇄도효과: 평문변화
- 편문이나 키의 작은 변화가 암호문에 대해 중요한 변화를 일으키게 하는 효과
- 평문이나 키를 1bit 바꿀 때 암호문의 여러 비트가 변화
> DES 의 강점
>> 56bit 키 사용
>> error correcting code 가 붙어있다 (parity)
>> DES 알고리즘 자체 성질을 이용한 해독 가능성
>> 8개의 치환 표 또는 S-box
>> S-box의 경우
- 전체 알고리즘에 대한 설계 기준이 공개된 적 없다
- S-box의 약점에 대해 알고 있는 공격자가 해독할 수 있게 설계 됐을 가능성에 대한 의혹
- 수년간 S-box의 수많은 정규성과 예측못할 동작이 발견 but 치명적 약점 x
> Timing 공격
>> 암호문을 복호화 하는데 걸리는 시간을 관측하여 키 또는 평문의 정보를 획득
>> 입력에 따라 처리시간이 다르다는것을 이용
>> 성공 사례 x

