본문 바로가기
about Security/암호

[현대암호기초] #04 블럭암호 block cipher(1)

by saniii 2020. 10. 28.

블록암호 block cipher

 

# 대칭키 암호방식 = 비밀키 암호방식

- 암복호화에 동일한 (하나의) 키를 사용하며, 이 키를 안전하게 전송, 보관해야 함

- 알고리즘과 암호문은 모두에게 주어짐, 알고리즘과 키로 암호문을 풀어서 평문을 알아냄

정보 교환 전에 비밀리에키 분배 필요

& 과정 : 송신자가 평문을 암호화하여 수신자에게 보내면 수신자가 암호문을 복호화하여 평문을 얻는다.

암호화 속도가 빠르고, 키의 크기가 작다.

 

# 대칭키 암호방식을 암호화 단위로 분류

스트림 vs. 블록 암호

블록암호 : 한 번에 한 블록의 원소를 입력 처리하여 각 입력블록마다 출력블록을 생성 (block 단위로)

Stream 암호 : 입력 요소를 연속적으로 처리하여 한 번에 하나씩 출력 (들어오는대로)

스트림 암호의 잠재적 장점: 일반적으로 블록 암호보다 빠르고 훨씬 적은 코드 사용(최근에는 AES의 도입으로 인해 감소)

블록암호의 장점 : 키를 재사용할 수 있음

스트림 암호의 경우, 암호해석은 상당히 간단한 경우가 많다.

 

 

# 블록 암호

: 자료 블록을 처리하는 핵심 알고리즘과 운영 모드의 조합으로 구성된 암호의 한 종류

블록암호의 장점 : 키를 재사용할 수 있음

* 혼돈 (confusion) :

+ 키와 암호문의 관계를 감추는 성질

+ ex) DES, AESsubstitution

* 확산 (diffusion) :

+ 평문과 암호문의 관계를 감추는 성질 (주로 둘의 통계적 성질을 감춤)

+ 평문의 1bit의 변화가 암호문의 모든 bit에 확산 되어야 함

+ ex) DES permutation, AES - MixColumn

 

# 적용들

스트림 암호

데이터 통신 채널 또는 브라우저/웹 링크 등 데이터 스트림의 암호화/암호 해독

블록 암호

파일 전송, 이메일, 데이터베이스 등 데이터 블록 처리

 

# 암호화 방법으로 분류

[치환] : 문자를 1:1대응으로 치환하여 암호화

[전치] : 평문의 순서를 일정한 규칙에 따라 재배치

[ ] : 치환 + 전치 (현대 비밀키 암호의 대다수가 이거)

알고리즘과 암호문을 가지고 평문이나 키를 알아낼 수 없을 때 secure가 강력하다고 함

암호알고리즘은 모두가 알ㅇㅏ 근데 키를 몰라서 못쓰는거지

알고리즘은 어렵다고만 좋은 게 아님, 알고리즘을 이해하기 쉬우면서 해독하기 어려운 게 강력한 거고 좋은 거

더 강력한 것은 일부러 어떠한 평문을 가지고 있음

 

키를 짧게 하면 빨리 해독할 수 있음. 암튼 알고리즘은 모두가 알지만, 키는 모른다. (키의 비밀성)

 

# cryptography (암호작성법)

크게 세가지로 분류가능

1. transformation

2. 키의 개수

3. plaintext가 처리되는 방법 (block || stream)

(= ATTACK)

*cryptanlysis(암호해독) : 정당한 사용자가 아닌 제3자가 암호문으로부터 평문을 복원하려는 시도 (복호화)

평문이나 키를 발견하려는 시도 과정

일반적인 접근방법:

+ cryptanalytic(암호분석)

+ brute-force attack(전수조사):모든 키의 경우를 다 대입해 보는 거, 이걸 막으려면 키가 더 복잡하고 길어야

암호분석기가 사용하는 전략은 다음에 따라 달라진다.

+ 암호화 방식 특성

+ 암호분석학자가 이용할 수 있는 정보

 

-cryptanalytic attacks의 경우

(암호해독에서의 공격)

밑으로 갈수록 해독자에게 알려진 정보의 양이 많아짐)-해독이 더 쉬워짐

-cyphertext only

알고리즘 및 암호문만 알고 있음 (해독자에게는 작은 양의 정보임) : 공격하기 가장 어려움

-known plaintext

하나 이상의 일반 텍스트-암호 텍스트 쌍 알기

알고리즘과 추측이 가능한 평문과, 암호문

-chosen plaintext (Probable-word 공격)

일반 텍스트 선택 및 암호 텍스트 가져오기

어떤 정보가 어디쯤에 있을지 추측가능 (정보의 양이 많지만 정확하지 않음)

-chosen ciphertext

암호문을 선택하고 일반 텍스트 가져오기

-chosen text

암호화 해제할 일반 텍스트 또는 암호 텍스트 선택

 

==일반적으로 위의 두가지 방식을 많이 사용함, 일반적으로 두번째까지 커버할 수 있도록 알고리즘을 설계함)

 

# 암호화된 메시지에 대한 공격 유형 암호화 분석

암호문서가 다음 기준 중 하나 또는 두 가지를 모두 충족하는 경우 암호화 체계가 계산적으로 안전하다.

암호파괴비용은 암호화된 정보의 가치를 초과함

암호 해독에 소요되는 시간이 정보의 내용연수를 초과함

암호문 ryptanalyzing 성공에 필요한 노력의 양을 추정하기 어려움

{-암호문을 해독할 때 비용이 실제 얻고자 하는 정보의 가치를 넘어선다 (블럭체인 채굴과 같은 느낌)

-걸리는 시간이 정보의 생존기간보다 오래걸릴떄 (다 풀고나면 정보가 리뉴얼되어있응께)

(근데 비용과 시간을 미리 예측ㄱ하는게 쉬운건 아님)}

# Brute Force approach (역시 노가다)

-모든 경우의 수 의 반만큼만 시도한다

ppt표에 방법의 가지와 뜻을 표현하는 표있음

성공할 때까지 가능한 모든 키를 사용해 보십시오.

평균적으로 모든 가능한 키의 절반은 성공을 위해 시도되어야 함

 

댓글