# 일회용 패드 (OTP)
one time pad OTP : 가장 안전한 암호
-완전 비밀성을 보장한다.
일회용 패드는 평문P와 무작위 키K를 받아서 암호문 C를 산출한다
이때 K는 평문과 같은 길이이며 P와 K를 XOR하여 C를 얻는다.
일화용 패드는 일화용이며 K를 단 한 번만 사용해야 한다
+ OTP가 안전한 이유
어떤 암호문이 주어졌을 때 가능한 모든 평문의 경우 중 일부를 공격자가 배제하지 못하게 한다.
? (완벽한 비밀성을 달성하기 위해서는) OTP의 키가 메시지만큼 길어야 한다
-암호문을 안다고 해도 평문에 대하여 그 길이를 제외한 어떤 정보도 알아낼 수 없다.
? K를 모르는 공격자에게 C의 비트는 모두 무작위해 보인다
-> 만일 키K가 무작위하다면 산출된 C역시 공격자가 보기에 K만큼이나 무작위해야 한다.
# 암호의 보안성
+ 어떤 암호가 안전하다는 것은 공격자가 다수의 평문-암호문 쌍을 확보했다고 해도, 둘 사이의 어떤 관계성도 찾을 수 없다는 뜻이다.
어떠한 시스템이 안전하다고 말하려면 그 시스템이 막고자하는 공격자의 유형과 공격으로부터 안전하다는 것이 무엇인지도 서술해야 한다.
- 공격자의 유형을 정의, 공격자가 할 수 있는 일과 할 수 없는 일을 정의한 것을 공격 모형(attack model)
무엇을 성공적인 공격으로 간주할 것인지 서술한 것을 보안목표(security goal)
# 공격 모형 / Attack model
: 공격자들이 어떤 암호와 어떤 방식으로 상호작용하는지, 어떤 일을 할 수 있고 없고를 가정한 것의 집합
암호를 설계하는 암호학자를위해 어떤 공격자들과 어떤 종류의 공격들로부터 암호를 보호해야 하는지 알 수 있는 요구조건들을 설정
사용자의 환경에서 암호가 안전할지 평가할 수 있는 지침을 사용자들에게 제공
암호를 깨고자 하는 암호해독가를 위해 주어진 공격이 유효한지 알 수 있는 단서를 제공
(하나의 공격은 해당 공격 모형안에서 할 수 있는 일일 때만 유효)
+ 케르크호프스의 원리 (Kerckhoffs’s principle)
: 한 암호의 보안성은 오직 키의 비밀성에만 의존해야 하며 암호 자체의 비밀성에 의존하면 안 된다,
암호 시스템은 비밀성을 요구하지 않으며 적이 훔쳐가도 문제가 되지 않아야 한다.
요즘은 암호들과 프로토콜의 명세가 공개되어 사용되고 있다.
+ 블랙박스 모형
질의 (query) : 어떤 함수에 입력값을 넣어 출력값을 얻을 때, 그 함수의 내부사항은 드러나지 않는 연산
이런 질의만 가능한 모형을 블랙박스 모형이라고 한다
블랙박스 모형에는 여러 가지가 있으며 이제 알아보자.
아래로 내려갈수록 암호해독이 쉬워진다
++ COA (ciphertext-only attackers 암호문만 공격)
공격자는 알고리즘 및 암호문만 알고 있음
수동적 공격자
암호화, 복호화 질의 X
++ KPA (known-plaintext attackers 알려진 평문을 공격)
알고리즘과 평문-암호문 쌍을 알고 있음
이 쌍은 무작위 선택이다.
수동적 공격자
++ CPA (chosen-plaintext attackers 선택된 평문을 공격)
공격자가 선택한 평문에 대해 암호화 질의를 수행할 수 있음.
능동적 공격자
암호화 질의만 O
++ CCA (chosen-ciphertext attackers 선택된 암호문을 공격)
공격자가 선택한 암호문의 평문을 알 수 있다.
암복호화 질의 모두 O
여기서 공격자가 원하는 것은 암호화에 사용된 비밀키를 알아내어 배포하는 것이다.
즉 복호화 질의를 할 수 있다고 해서 시스템이 깨진 것은 아니라는 말이다.
# 그레이박스 모형
:
공격자는 암호의 구현(implementation)에 접근할 수 있다.
그레이박스는 블랙박스보다 정의하기 어렵지만 더 현실적이다..
: 알고리즘의 입력과 출력만이 아니라 물리적이고 아날로그적인 속성들에도 의존, 암호학 이론은 실세계의 복잡성을 제대로 추상화하지 못하는 경우가 많기 때문에, 블랙박스 모형보다 정의하기 어렵다.
+ 부채널 공격 (side-channel)
: 암호의 아날로그 특성을 관찰, 측정하기만 구현의 무결성을 훼손하지 않는다. -> 비침습적 공격(noninvasive)
부채널 공격보다 암호 구현을 좀더 강하게 공격 -> 침습적 공격 (invasive)
ej wjdryggks 장치가 필요해 비용이 더 비싸다.
#보안목표#
: 암호의 행동 방식에 관해 아무것도 알아내지 못한다.
1) 비구별성 (indistinguishability, IND)
2) 비가소성 (non-malleability, NM)
3) 일방향성 (onewayness, OW)
-> 보안 목표는 공격모형과 함께 하나의 보안개념을 형성할 때만 유용하다.
#목표-모형의 예시 IND-CPA#
+ IND-CPA : 키의 비밀이 우지되는 한 공격자가 암호문으로부터 평문에 관해 그 어떤 정보도 알아내지 못해야 한다.
같은 평문으로 암호화 함수를 호출했을 때 각자 다른 암호문이 나와야 한다.
이 보안 개념을 달성하기 위한 방법 중 하나는 무작위 암호화를 사용하는 것이다.
(무작위 암호화에서 평문당 암호문이 둘이상이되도록하려면 암호문이 평문보다 좀더 길어야 한다.)
결정론적 무작위 비트 발생기 (deterministic random bit generator, DRBG)
의미론적으로 안전한 암호를 간단하게 만드는 방법 중 하나.
#비대칭 암호화#
비대칭 암호방식 = 공개키 암호방식
송신자가 ‘수신자의 공개키’로 암호화하여 보내면 수신자가 받아 ‘자신의 개인키’로 복호화
-암호화키 = 공개키, 복호화키 = 개인키
-공개키 암복호화 함수들은 한 방향으로의 계산은 쉽지만 그 역방향의 계산은 사실상 불가능하다.
비대칭 암호화의 기본 공격 모형은 CPA (암호화키가 공개되어 있어 공격자가 항상 공개키를 이용하여 암호화질의를 할 수 있다.)
#암복호화 이외의 암호의 용도#
+ 인증 :대칭 암호화의 일종으로 암호문과 함께 인증값을 돌려준다.
복호화함수는 인증값과 암호문, 키를 입력받아 안증값이 유효하면 평문을 출력하고 유효하지 않으면 오류를 반환한다.
인증값은 무결성을 보장하여 주어진 암호문이 중간에 변조되지 않았음을 인증하며 또한, 작성한 사람의 신원을 인증한다.
+ 형태보존 암호화
자료를 특정한 형태로만 기록해야 하는 데이터베이스 시스템에서 사용
+ 완전 준동형 암호화
이 암호화를 통해 암호문을 복호화 과정없이 또 다른 암호문으로 바꿀 수 있다.
예를 들어 클라우드같은 서비스에서 사용자가 자신의 자료가 혹시 관리자에게 노출되지 않을까 하는 염려를 줄일 수 있다.
단점: 느리다.
+ 검색 가능 암호화
암호화된 데이터베이스에서 검색을 가능하게 한다. 검색 질의 자체를 암호화하여 검색어의 유출을 방지하여 프라이버시를 보장한다.
+ 조율 가능 암호화
디스크 암호화에 주로 쓰여 하드드라이브나 SSd같은 저장장치의 내요을 암호화한다.
암호화의 예측을 방지하기 위해 조율값을 활용한다
조율값 : 암호화되는 자료의 위치와 관련
#암호화의 문제 발생#
+ 암호해독 기법으로 공략할 수 있는 약한 암호를 사용했을 때
+ 몇몇 부채널을 간과하는 유효하지 않은 모형을 사용
'about Security > 암호' 카테고리의 다른 글
[현대암호기초] #05 block cipher / DES + AES (0) | 2020.10.29 |
---|---|
[현대암호기초] #04 블럭암호 block cipher(1) (0) | 2020.10.28 |
[현대암호기초] #03. 무작위성 (0) | 2020.10.12 |
[현대암호기초] #01. 암호화 + 고전암호 (0) | 2020.10.11 |
[현대암호기초] #00. 암호화 encryption (0) | 2020.10.11 |
댓글