~10.12 강의내용 및 필기 본문
블록암호 운영모드
2016년 10월 12일 수요일
오후 4:30
ECB (Electric Code Book)
- 에러 전이 없음
- 하나의 평문을 한번 암호화 사용
- 세션키 암호화와 같이 특별한 용도로만 사용
- 암호화, 복호화 병렬처리 가능
- 동일 암호문 동일한 평문 생성
- DB응용에 부적당
CBC (Cipher Block Chaining)
- 에러 전이 발생
- 초기치는 메시지별로 선택, 비밀일 필요는 없으나 무결성 요구됌
- 암호화시 암호문 블럭에 에러가 발생하면 이후의 모든 암호문에
에러발생
- 복호화 병렬처리 가능, 인증에 사용
- Ci = Ek(mi (xor) Ci-1), Mi=Dk(Ci) (xor) Ci-1
CFB (Cipher FeedBack)
- 문자나 비트 단위 취급 (통신프로토콜 하위계층)
- 암호화 과정만 필요
- 복호화는 병렬처리 가능
OFB (Output FeedBack)
- 에러전이 없음 (암호문 1비트 에러 = 평문 1비트 에러)
- 키 수열은 평문과 무관 (사전 계산 가능), 스트림 암호로 사용
- 키 수열의 동기화 필수적
- 위성과 같은 noisy 채널에 사용
3_공개키암호
2016년 10월 11일 화요일
오전 11:37
대칭키암호의 문제점
- N명이 서로 비밀 통신을 하기 위해 필요한 키의 개수 n(n-1)/2
- 키 공유가 선행되어야함
- 키 관리의 어려움
통신을 위한 서로 간의 약속, 규칙: 프로토콜
공개키 암호의 특징
- 암호화키와 복호화키가 다름 (공개키, 개인키)
- 키 공유에 대한 어려움 해결
- One-way function 특징
공개키 시스템의 예: 디피헬만 키분배, ElGamal, RSA
이산대수의 난해함에 그 안전성을 두고 있다.
암호화 과정: One-way
복호화 과정: Trapdoor (부가정보를 알고있다면)
φ(n): 1부터 n까지의 정수 중 n과 서로소인 정수의 개수
Encryption은 쉽고 Decryption은 어려워야함
공개키의 무결성 인증을 위한 공개키 인증 시스템 (PKI)
Chosen Paintext Attack 항상 가능
- (평문, 공개키->RSA->암호문)
Chosen Ciphertext Attack 고려
Knapsack Alg
- 초증가수열에서 서로소 관계인 n과 m(암호화모듈)을
선택 (m>2a)
- (수열의 각 원소 * n) mod m 수행 (m>n)
- 수행된 결과의 수열을 Public key로 원래 수열을 Private key로 사용
복호화시 n*n^-1 mod m = 1을 만족하는 n^-1를 찾고
C * n^-1 mod m 으로 나오는 결과값을 private key 수열의 원소들로 분해하고 비트화
RSA Alg
- 비슷한 크기의 큰 소수 p, q 선택 -> n= pq
- φ(n) = (p-1)(q-1)
:1부터 n까지의 정수 중 n과 서로소인 정수의 개수
- gcd(e, φ(n)) = 1인 e를 선택
- ed = 1 mod φ(n)를 만족하는 정수 d 계산
- 공개키 = (e, n) / 개인키 = (d, n)
암호화 C= M^e mod n
복호화 M= C^d mod n
RSA 해독법
- n을 인수분해
- e, d, n의 문제
- Chosen ciphertext attack (y=r^e * c mod n)
- Iterative attack
- Attack on encrypting and signing with RSA
- p, q 문제
- Gorden's alg
4_해쉬함수
2016년 10월 11일 화요일
오후 3:33
X: 메시지
Y: 가능한 해쉬값
K: 키 집합
H: X*K -> Y
서로 다른 메시지에서 같은 해쉬값이 나오는 충돌을 피해야함
Hash function
- MAC (Message Authentication Code)
- MDC (Modification Detection Code)
MDC의 성질
- Preimage resistance (one-way):
주어진 y에 대하여 h(x)=y가 되는 x를 찾는 것이 어려움
- 2nd Preimage resistance (weak collision resistance):
주어진 x에 대하여 h(x) = h(x')가 되는 x' != x를 찾는 것이 어려움
- Collision resistance (strong collision resistance):
h(x) = h(x')이 되는 x != x'의 쌍을 찾는 것이 어려움
MAC의 성질
- 계산 저항성 (computation resistance):
서로 다른 x에 대해서 같은 MAC값 h(x)를 계산하기 어렵다
(키값이 계산과정에 필요하기 때문?)
MDC 해쉬 함수의 기본 구성법
- 메시지를 고정된 길이로 사전처리 (패딩과정 포함)
- 반복처리 (압축함수)
- 사후처리 -> h(m)
Rabin hash function
- 메시지를 블록 암호에 적용될 입력의 크기와
동일한 블록으로 나눔
- H0 = IV 초기벡터
- 초기벡터와 메시지(m1~mt)를 순서대로 Encryption
결과값이 다음 단계의 Encryption 함수의 첫번째 인자로
두번째 인자는 그 단계의 mt
- Meet in the middle attack에 취약 (Man in the middle attack)
-> Davies-Mejer hash function 등장
MDC 해쉬함수: MD4, MD5, SHA, RIPEMD, HAVAL, HAS
MD5 기본구조
- 크기를 맞추기 위해 padding하여 부족한 블록을 512bit로 맞춤
- 압축함수, 라운드함수
MDC 이용 방법
- 무결성제공: 메시지 해쉬값과 채널을 통해 수신한 해쉬값을 비교
암호화한 해쉬값을 메시지에 덧붙이는 방법도..
- 기밀성/무결성 동반 제공: 메시지 자체를 해쉬값과 함께 암호화하여 전송
MAC
- 해쉬값을 만드는 Encryption과정에 key값 필요
Man in middle attack, Birthday problem
5_전자서명
2016년 10월 12일 수요일
오후 3:08
필요성: 송수신자간의 분쟁
인증의 한계
전자서명: 전자문서+서명
서명과 검증 알고리즘으로 구성
조건: Integrity, Unforgeability, Non-repudiation
P: 가능한 메시지 A:가능한 서명 K:가능한 키
k가 K에 포함될 때 Sign, Verify 알고리즘이 존재
Sig: P -> A
Ver: PxA -> {true, false}
RSA 전자서명
6_키 관리
2016년 10월 12일 수요일
오후 3:41
공개키: 키 분배 문제를 해결할 수 있는 효과적인 도구
키 분배 방법:
Public announcement
- 커뮤니티에 공지하는 등 공개키 전달
- 위조에 취약함
Publicly available directory
- 공개된 동적 디렉토리에 키를 등록하여 보안성 향상
- 디렉토리 인증 기관의 키가 유출될 경우 여전히 취약
Public-key authority
- 키를 확인해줄 수 있는 제 3자를 두는 키 분배 프로토콜
- Initiator, Public-key authority, Responder로 구성
Public-key certificates (인증서)
- 누구나 인증서를 열람 (소유자 이름과 공개키 확인)
- 인증기관에서 발행한 인증서가 위조되지 않았음을
확인할 수 있어야함
- 인증서 생성 및 업데이트는 인증기관만 가능
Hybrid scheme
- 마스터 키는 공개키 알고리즘을 이용, 세션키는 마스터키를 이용한 비밀키 알고리즘으로 분배하는 방법
디피헬만 키 분배 방법
- 안전성의 근거: 이산대수 문제
'Study > KITRI' 카테고리의 다른 글
10.21 강의내용 및 필기 (0) | 2016.10.21 |
---|---|
10.17 리눅스 명령어 (0) | 2016.10.17 |
10.13 강의내용 및 필기 (0) | 2016.10.13 |
10.7 강의내용 및 필기 (0) | 2016.10.10 |
정보보안 직무 (0) | 2016.10.06 |