최신판 |
당신의 편집 |
1번째 줄: |
1번째 줄: |
| [[분류:암호학]][[분류:보안]]
| |
| ; Block Cipher | | ; Block Cipher |
|
| |
|
| * 평문을 일정한 크기의 블록으로 잘라낸 후 각 블록을 암호화하는 방식 | | * 평문을 일정한 크기의 블록으로 잘라낸 후 각 블록을 암호화하는 방식 |
| * 일반적으로 블록의 크기는 8비트 또는 16비트의 배수 | | * 일반적으로 블록의 크기는 8비트 또는 16비트의 배수 |
|
| |
| * 복호화 알고리즘은 암호 알고리즘의 역함수
| |
| * 메시지의 길이가 n비트보다 작다면 n비트 블록을 만들기 위해 패딩(padding)이 추가
| |
|
| |
| == 치환과 전치 ==
| |
| ;Substitution and Transposition
| |
| * 블록 암호는 비트단위의 치환 혹은 전치 암호로 동작된다.
| |
| * 치환암호에서 평문과 암호문의 0과 1의 비트 개수는 다르다.
| |
| * 전치암호에서 메시지의 길이가 n일 떄, 평문 혹은 암호문의 개수는 2^n이다.
| |
| * 현대블록암호는 전수공격을 예방하고자 치환암호로 설계된다.
| |
|
| |
| == 구성 요소 ==
| |
| 이동요소(Shift) + 교환요소(Swap) + 분할요소(Split) + 조합요소 + 전치 장치(P-Box) + 치환 장치(S-Box) + XOR 연산(exclusive-OR)
| |
| 혼돈과 확산의 성질을 만족시킨다.
| |
|
| |
| === P-박스 ===
| |
| * 단순 P-박스 : 전치 과정을 병렬적을 수행한다. 역함수가 존재한다.
| |
| * 축소 P-박스 : n비트를 입력 받아 m비트를 출력한다. (단, n > m)
| |
| * 확장 P-박스 : n비트를 입력 받아 m비트를 출력한다. (단, n<m)
| |
|
| |
| === S-박스 ===
| |
| * 치환 암호의 축소 모형으로 입력 비트와 출력 비트가 같은 경우에만 역함수가 존재한다.
| |
|
| |
| == 합성 암호 ==
| |
| ;Product Ciphers
| |
| * Shannon은 치환, 전치, 그리고 기타 요소를 결합한 합성 암호를 소개
| |
| * 혼돈(confusion)은 암호문과 키의 관계를 숨기는 것
| |
| * 확산(diffusion)은 평문의 통계적 성질을 숨기는 것, 평문과 암호문의 관계를 숨기는 것
| |
|
| |
| == 라운드(Rounds) ==
| |
| * 반복적인 합성 암호를 라운드라고 하며 이를 통해 확산과 혼돈 성질을 얻는다.
| |
|
| |
|
| == 종류 == | | == 종류 == |
| * [[AES]] | | * [[AES]] |
| * [[DES]] | | * [[DES]] |
| * [[IDEA]]
| |
| * [[SEED]]
| |
| * [[HIGHT]]
| |
| * [[LEA]]
| |
| * [[RC5]]
| |
|
| |
| == [[블록 암호 모드]] ==
| |
| * ECB : 간단, 고속, 위험
| |
| * CBC : 한 블록 내에서 에러 전파, 다른 블록에 1비트 영향
| |
| * CFB : 스트림 모드, 약한 에러전파
| |
| * OFB : 스트림 모드, CTR사용을 권장
| |
| * CTR : 스트림 모드, 권장됨
| |
|
| |
| == [[블록 암호 공격]] ==
| |
| ; 블록 암호의 키를 찾기 위한 공격 기법들
| |
| * 차분 공격(Differential Cryptanalysis)
| |
| ** 1990년 Biham과 Sharmir가 개발
| |
| ** 선택 평문 공격
| |
| ** 두 평문 블록들의 비트 차이에 대응되는 암호문 블록의 비트 차이를 이용하여 키를 찾는다.
| |
| * 선형 공격(Linear Cryptanalysis)
| |
| ** 1993년 Matsui가 개발
| |
| ** 알려진 평문 공격
| |
| ** 알고리즘 내부의 비선형 구조를 선형화시켜 키를 찾는다.
| |
| * 전수 공격(Exhaustive Key Search)
| |
| ** 1977년 Diffie와 Hellan이 개발
| |
| ** 암호화 시 발생 가능한 모든 경우에 대해 조사
| |
| ** 현실적으로 적용하기 힘든 경우가 많음
| |
| * 통계적 분석 공격(Statistic Analysis)
| |
| ** 암호문에 대한 평문의 단어 빈도등 통계적인 자료를 분석하여 해독
| |
| * 수학적 분석 공격(Mathematical Analysis)
| |
| ** 통계적인 방법을 포함하여 수학적 이론을 이용하여 해독
| |