Chap. 2 Symmetric Encryption and Message Confidentiality
Cryptography [암호화]
Plaintext : 원문
Ciphers[암호] : 메시지 암호화 및 복호화에 사용되는 수학적인 함수
Encryption[암호화] : 메세지를 감추기 위해서 위장하는 과정
Ciphertext[암호문] : 암호회된 텍스트
Decryption[복호화] : 암호화된 메세지를 일반화된 메세지로 반환하는 과정
[1] Ciphers [암호]
- 제한된 알고리즘에 의존하는 암호의 보안성은 좋지않다.
- 사용자는 그룹을 떠날 때마다 알고리즘 변경이 필요하고, 보안은 언제든 깨질 수 있다.
- 현대의 암호화는 큰 세트(키 공간)에서 선택된 키 값에 의헤 의존된다.
- ex) 1024-bit Key => 2^1024의 값들이 존재함.
- 대부분의 보안은 알고리즘의 세부사항이 아닌, 키의 비밀성에 근거한다.
[2] CryptoSystem [암호 시스템]
- 기존 암호 시스템 : 비밀 키 암호 시스템 , 대칭 암호 시스템
- public-key 암호 시스템 : 비-대칭 암호 시스템
메시지 M의 경우 키 k를 사용하여 해당 메시지를 암호 텍스트로 암호화한다고 가정하면 암&복호화는 다음과 같다.
C = Ek(M) | 메시지 M의 경우, 키 k를 사용하여 해당 메시지를 암호화(encryption)한다. |
M = Dk(C) | 위와 마찬가지로, 키 k를 사용하여 암호화된 메세지를 복호화(decryption)한다. |
Dk(Ek(M)) = M | [ 대칭 키 알고리즘 ] |
Dk2(Ek1(M)) = M | [ 공개키 키 알고리즘 ] |
Example Ciphers (암호 예시)
1. 시프트 암호 (shift cipher)
2. 대체 암호 (substitution Cipher)
Cryptanalysis [암호 분석]
키에 엑세스하지 않고 메세지를 복호화 된 메세지로 복구하는 과학
Cryptanalyst [암호 분석가]
- 암호화(해독 알고리즘)을 인지하고, 키를 제외한 많은 정보가 존재
- 많은 컴퓨터와 지능을 토대로 암호를 분석함
공격 종류
[1] 암호 전용 공격
▪ 공격자는 암호문에서을 통해서 평문을 복구함
▪ 무차별 공격: 가능한 모든 키 시도 ( 키가 충분히 길다면 거의 사용이 불가함 )
[2] 노출된 플레인텍스트(평문) 공격
▪ 알려진 키-쌍으로 시크릿 키를 분석해 패턴을 찾는 공격 기법
[3] 선택적 평문 텍스트 공격
▪ 공격자는 소스를 얻고 자신이 선택한 일반 텍스트의 일부(평문, 암호문) 쌍을 아는 경우
[4] 선택 텍스트 공격
▪ 공격자는 자신이 선택한 평문에 대한 일부(텍스트, 암호문) 쌍을 알고 있는 경우. 아는 쌍이 많아질 수록 어택커에게 유리함
공격자는 키 공간을 철저하게 검색하기 위해 brute force(무차별 대입 공격)을 사용한다
Unconditionally secure cryptosystem
- 시스템에 의해 생성된 암호문이 충분한 양의 정보를 도출할만큼 많이 있더라도, 암호문이 안전한 경우 ( Key 갯수의 증가 )
- 보안암호 시스템의 측정 좌표는 크게 시간과 비용으로 나눌 수 있음
Cryptanalysis [ 암호문 해독 ]
Monoalphabetic substitutions : 하나의 문자가 여러개 나와도 같은 암호문으로 암호화 된다.
Polyalphabetic substitutions : 하나의 문자가 case마다 다르게 암호화 된다.
- Vigenere cipher : 각 문자는 비제네르 암호를 키로 이용해 다른 암호키로 암호화 된다.
- Kasiski method : 길이가 t인 암호키는 주기 t를 반복하면서 주기 마다 각각의 shift 암호를 독립적으로 사용함
- 암호키의 동일하게 반복되는 패턴을 찾으면 키의 길이를 유추할 수 있음
- 따라서 키 길이가 암호문의 보안적인 측면과 관계가 있음
Permutation/Transposistion
Permutation (순열,전위) : 입력을 만들고 출력을 특정 방식으로 재 배열하는 것을 의미함
- 문자를 재 배치하는 것일 뿐 문자의 주파수를 보존하기 떼문에 상대적으로 약한 보안 기술이다.
- N번의 pernutation을 하는것도 가능하다.
- (Product cipher : 2개의 암호 알고리즘을 적용하고 현대의 암호는 순열과 치환을 결합한다 )
대칭 암호 알고리즘 (Symmetric Cipher Algorithms)
Block cipher | - 일반 텍스트는 n비트 데이터 블록으로 처리한다. - 암호문의 길이가 일반 텍스트와 동일하다 |
Stream cipher | - 한 번에 1bit/byte 단위로 암호화한다. - 대게 수학적으로 더 쉬운 순열과 치환을 사용한다 |
DES (Digital Encryption Standard)
- 1976에 채택된 기술로 현재는 잘 사용하지 않음
- 대칭키 블록 암호화 알고리즘으로 복호화는 암호화의 역순이다. (알고리즘은 동일함)
- 64bit로 이루어짐 : Block size = 64bit
- Key의 사이즈는 56bit키는 16,48비트 하위키로 변환됨 ( 56bit key , 8bit parity bit )
- S-Box와 P-Box가 각 1회전 시 총 16라운드의 페이스텔 구조
- 라운드 횟수는 16회이고, 56bit 짜리 원래 키로부터 16개의 서브키를 생성하여 각 라운드에서 사용함
S-boxes | 치환에 사용됨 , 8개의 S박스를 사용하고 단일 (4열 16행) 각 박스는 64개의 4bit값이 포함되고 6개의 입력 비트가 4개의 출력 비트를 생성한다. (예 : 110011 ) 첫 번째 및 마지막 비트 "11"을 사용하여 행 3을 선택하고 가운데 4비트 "1001"을 선택하여 열 9를 선택합니다. DES의 S-box 6의 값은 5("0101")입니다. "110011"을 "0101"로 바꿉니다. => 총 3개의 관문 ( 행 , 열 , 박스 ) |
P-boxes | 순열에 사용됨 |
Avalanche effect | 눈사태 효과 : 일반 텍스트의 작은 변경 또는 키 생성이 암호문에게 큰 변화를 야기함 |
Key space is too small | 키 공간이 너무 작음 56개의 키로 256개의 가능한 키를 제공하면서 brute force 가능 |
DES cracker by EFF | EFF에 의한 크래커로 1일 이내 공격이 가능하다 |
Triple-DES | 키를 3개 사용하여 triple로 구성할 수 있음 |
AES ( Advanced Encryption Standard )
- 2001년에 고안된 모델로 효울성, 유연성, 보안성을 목표로 개발되어짐
- 특징으로는 메모리 부족 해결 , 유연한 키 블록 크기, 회전 횟수가 가변적임
- 기본적 구조는 아래와 같음
- block size = 4 * Nb
- Key size : 4 * Nk
- Round cnt : 6 + max(Nb,Nk)
Cipher Block Modes of Operation
[1] ECB(Electronic Code Book) : 일반 텍스트의 각 블록은 독립적으로 암호화 된다. ( 단순 치환 ) , 블록 리플레이 위협 존재
[2] CBC(Cipher Block Chain) : 암호에 피드백 메커니즘을 추가함 , 블록 리플레이 공격에 대해 저항력을 가짐
[3] CFB(Cipher FeedBack)
[4] OFB(Output FeedBack)
[5] CTR(Counter Mode) : 각 일반 텍스트를 암호화하는 데 서로 다른 카운터 값이 사용됨.
- ATM 및 IPSec에 사용되고 , 장점은 효율적이며 암호문 블록을 랜덤 액세스 패턴으로 처리할 수 있다.
Random Number Generation
- 많은 보안 알고리즘들은 난수를 사용하여 만들어진다 (nonces)
- RSA, DH 등 공개키 암호화 알고리즘의 키를 생성한다.
- 임시 세션 키로 사용하기 위한 대칭 키 , TSL, Wi-FI 등 다양한 네트워크 애플리케이션에 사용된다.
- 키 배포 시나리오, reply 공격을 방지하기 위한 핸드쉐이킹에 난수로 사용된다 ( Kerberos , SSL )
난수 생성 알고리즘의 요구 사항 | |
무작위성 | - 시퀀스의 비트 분포는 균일해야 한다. - 1과 0의 발생 빈도는 거의 같아야 한다. |
예측 불가능성 | - 다른 수열로부터 특정 수열을 예측할 수 없어야 한다. - 이전의 요소를 기반으로 현재 시퀀스를 예측할 수 없어야 한다 |
True-random (TRNG) : 자연계 특성으로 부터 랜덤 넘버을 출력한다 |
Rseudo-random (PRNG) : 특정 시드값을 기반으로 랜덤 넘버를 추출한다. > Seed값을 기반으로 하여 동일한 랜덤넘버는 같은 시드값을 사용함 > Seed 노출 시 , 모든 랜덤넘버를 추출하는 것이 가능하다. |
Placement of Encryption Function
Traffic Analysis
- 트래픽 분석 공격 : 메세지 패턴&수량 , 식별자 쌍 , 통신 빈도 등을 가로채고 분석함
[대응책]
- Traffic Padding : A-B 소통이 많을 때 다른 쪽으로 garbage msg를 섞어 보냄
- Tunneling : 각 엔드포인트를 감춘다.
Key Distribution
키의 분배는 KDC(key distribution center) 신뢰기관을 기반으로 이루어진다.
- 대규모의 네트워크인 경우 계층적 KDC의 사용을 할 수도 있다.
- 마스터키를 통해서 연결하고 세션키로 서로 통신한다.
투명화된 키 배포
- 연결 지향 프로토콜을 사용한 엔드 투 엔드 암호화
- HOST와 KDC 사이 암호화 : 마스터 키 사용
- HOST와 HOST 사이 암호화 : 마스터키로 암호화되어 전달된 세션키를 사용
분산형 키 배포 (KDC가 없는 경우)
- 전제로는 엔드 투 엔드 간에 마스터 키를 서로 나눠가져야 가능하다.
- 대규모 네트워크에서는 중앙 집중식 키 배포를 하는 것이 사실상 어려움
- 분산형 키 배포를 위해서 [ n(n-1) / 2 ] 개의 마스터 키가 필요하다 .
대칭키 알고리즘에서 크랙킹을 통해 키로 암호화된 데이터가 충분히 쌓인다면 해독이 될 까능성이 높다
따라서 master Key와 Session Key를 분리하여 이러한 점을 예방할 수 있다
[ 세션 키 : 통신 사이 메시지 자체를 암호화함 (1회용) ]
[ 마스터 키 : 세션 키를 만드는데 사용이 됨 ]
'Lab & Research > Information Security' 카테고리의 다른 글
네트워크 접근 제어 & 클라우드 보안 (0) | 2022.04.15 |
---|---|
Web : SSL&SSH&SET (0) | 2022.04.13 |
Information Security (0) | 2022.03.17 |
소켓 주소 구조체 (0) | 2021.11.01 |
소켓 (0) | 2021.10.31 |