TH3 6R3@T H@CK
암호 본문
※ 정보보호론 수업 내용 복습
암호에서 사용하는 이름
∙ 앨리스(Alice)와 밥(Bob): 앨리스는 메시지를 전송, 밥이 수신하는 모델에 사용
∙ 공개키 암호 시스템인 RSA를 만든 사람 중 하나인 Ron Rivest가 1978년에 처음 사용함
∙ 이브(Eve): ‘도청자(Eavesdropper)’에서 온 것으로 소극적인 공격자를 뜻함
∙ 맬로리(Mallory): '악의적인'이라는 뜻의 'malicious'에서 온 것으로 적극적 공격자를 뜻함. Marvin이나 Mallet이라고 하기도 함. 이브와 달리 맬로리는 앨리스와 밥 사이의 통신 내용을 고치거나, 원하는 메시지로 바꿔치기 하거나, 이전 메시지를 재전송하는 등 적극적으로 통신을 방해함
송신자, 수신자, 도청자
∙ 앨리스가 밥에게 정보(예: 전자메일)를 보내는 상황 가정
∙ 앨리스는 송신자(sender), 밥은 수신자(receiver)
∙ 도청자 이브는 꼭 사람만을 의미하지는 않음
∙ 이브의 예: 통신 기기/도청용 기계/메일 소프트웨어/메일 서버에 설치된 프로그램 등
∙ Alice(송신자, sender) -- 메시지(Message) → Bob(수신자, receiver)
ㄴ→ Eve(도청자, eavesdropper)
암호
∙ 암호화(encrypt): 평문과 특정 비밀 값을 조합하여 암호문을 얻는 기술; 전송 도중에 도청자가 암호문을 가로채더라도 해당 비밀 값(키)을 모른다면 암호문을 평문으로 해독할 수 없도록 함
∙ 기호 표현: 𝐶 = 𝐸𝐾(𝑃)
∙ 복호화(decrypt): 암호문과 특정 비밀 값(키)을 조합하여 평문을 얻는 기술
→ 암호화의 역연산
∙ 기호 표현: 𝑃 = 𝐷𝐾(𝐶)
∙ 암호 시스템: 암호화/복호화를 하는 일련의 과정에 필요한 요소를 모두 합쳐서 암호 시스템이라고 함
∙ 암호화 알고리즘 𝐸 : 암호화 과정
∙ 복호화 알고리즘 𝐷 : 복호화 과정
∙ 평문(plaintext) 𝑃
∙ 암호문(ciphertext) 𝐶
∙ 키(key) 𝐾
∙ 암호 알고리즘: 암호화 알고리즘과 복호화 알고리즘을 합하여 암호 알고리즘이라고 함
암호의 기밀성과 해독
∙ 암호의 기밀성(Confidentiality) : 앨리스가 메일을 암호화해서 보내는 경우, 메일의 기밀성을 유지할 수 있음
∙ 암호의 해독 : 수신자 외의 사람(ex. 이브)이 암호문으로부터 평문을 복원하려고 시도하는 행위를 암호 해독(cryptanalysis)라고 하고, 암호를 해독하는 사람을 암호 해독자(cryptanalyst)라고 함
∙ 암호 설계와 해독은 종이 한 장 차이 : 암호 설계를 위해서 제안하는 암호의 해독 난이도에 대한 연구가 필요
∙ 암호 해독은 암호화 과정 및 복호화 과정의 설계상 취약점을 알아내는 행위이며, 인적 요소를 이용하거나 악성 소프트웨어를 이용하여 비밀정보를 빼내는 행위는 암호 해독이라고 하지 않음
암호 알고리즘
∙ 대칭키 암호 (a.k.a. 대칭 암호, 비밀키 암호)
→ 암호화 키와 복호화 키가 같을 경우
장점 : 암복호화 매우 빠름, 암호문의 크기가 작음
예시 : 시저 암호, DES/AES와 같은 블록암호, 스트림 암호 등 비밀키를 어떻게 공개된 채널을 통해 전송할 수 있을까? (키 공유의 문제)
∙ 공개키 암호 (a.k.a. 비대칭키 암호, 비대칭 암호, 1976 ~)
→암호화 키와 복호화 키가 다를 경우
→ 암호화 키로부터 복호화 키를 얻어내는 것이 계산적으로 거의 실행 불가능한 암호
암호화 키 = 공개키, 복호화 키 = 비밀키
예시 : RSA, Diffie-Hellman 키 교환기법 등
장점 : 암호화 키를 공개할 수 있어 비밀키를 미리 공유하지 않아도 됨. 현대 컴퓨터나 인터넷에서 사용하는 보안기술은 공개키 암호에 크게 의존하고 있음
∙ 하이브리드 암호 시스템 (hybrid cryptosystem)
∙ 대칭키 암호와 공개키 암호의 장점을 조합한 암호화 방식
∙ 공개키 암호를 사용하여 키 교환을 한 뒤, 해당 키를 비밀키로 사용하여 대칭키 암호화 하는 방식
암호 기술의 종류
일방향 해시 함수(one-way hash function)
∙ 임의의 길이의 입력을 받아서 정해진 길이의 출력을 산출함
∙ 해시 함수의 출력값 : 해시 값(Hash value), 암호학적 검사합(cryptographic checksum), 지문(fingerprint), 메시지 다이제스트(message digest)으로도 불림
∙ 정보나 소프트웨어를 공개적으로 제공할 때 변경되지 않았음을 확인할 수 있도록 프로그램 제공자가 프로그램을 공개함과 동시에 그 프로그램의 해시 값을 공개할 수 있음
∙ 문서의 무결성(integrity) : 수신한 데이터가 원래의 데이터와 동일함을 확인
메시지 인증 코드(message authentication code) → MAC
∙ 메시지가 생각했던 통신 상대(비밀키를 미리 공유하고 있는 상대)로부터 온 것임을 확인하기 위해 사용하는 기술
∙ 메시지의 무결성 뿐만 아니라 인증(authentication)도 함께 제공
디지털 서명(digital signature)
→ 미리 비밀키를 공유하지 않은 상태에서 인증을 할 수 있도록 도와주는 공개키 암호 기술
∙ 사업을 하는 밥이 앨리스로부터 “상품을 1000만원에 구입하겠다"는 전자메일을 받음
∙ 밥은 이 전자메일이 진짜 앨리스에게 온 것인지 의심
∙ 만약 앨리스가 진짜로 메일을 보냈다고 해도 앨리스가 나중에 ‘나는 이런 메일을 보내지 않았다'고 부인(repudiation)할 수 있음
∙ 디지털 서명은 오프라인 세계에서의 도장이나 종이에 하는 서명 또는 날인의 개념을 온라인 세계에 적용한 것으로, 인증과 부인 방지의 기능을 가짐
→ 누구나 서명에 대해 검증할 수 있도록 공개적인 검증이 가능한 암호 원천 기술 중 하나
의사 난수 생성기(pseudo random number generator; PRNG)
∙ 난수열을 생성하는 알고리즘 → 랜덤 값을 효율적으로 생성
∙ 난수는 주로 암호의 키 생성을 위해 이용됨
∙ 예를 들어 웹에서 안전한 통신을 위해 TLS 통신을 할 때, 단 한 번의 통신에만 사용할 키(세션 키, Session key)를 생성하는데, 이때 PRNG를 사용하게 됨
∙ PRNG가 취약하면 도청자가 암호에 사용하는 키를 추측할 수 있으므로, 통신의 기밀성이 손상될 수 있음
차세대 암호 기술 – (1) 동형암호
∙ “동형암호(Homomorphic Encryption)” : 암호화된 상태로 연산(→ 덧셈, 곰셈과 같은 다항연산)이 가능한 암호(2010~)
∙ E(x+y)=E(x) + E(y)
∙ E(x*y) =E(x)*E(y)
∙ 데이터 암호화 후, 암호화된 머신러닝 연산 가능
∙ 머신러닝 결과만 복호화 : 결과 외의 모든 데이터 암호화 가능
∙ 두 집합이 암호화된 상태에서의 교집합 연산(예: 코동이 앱) 등
차세대 암호 기술 – (2) 영지식 증명(zero-knowledge proof, ZKP)
∙ 예를 들어, 암호화된 계약서에 내가 서명했다는 사실을 증명하고 싶을 때
∙ 계약서의 내용은 비밀, 복호화 키를 전달하고 싶지 않음
∙ 영지식 증명에서 증명자는 검증자에게 자신의 정보를 노출하지 않으면서도 어떤 사실을 증명할 수 있음
차세대 암호 기술 – (3) 양자내성암호(PostQuantum Cryptography)
∙ 양자컴퓨터를 이용한 공격에도 안전한 암호 기술
∙ 양자내성 공개키 암호, 양자내성 전자서명 등
∙ 미국 국립표준기술 연구소(NIST) PQC 표준화 공모 진행 중(2017.12.~)
∙ 미국 DARPA CHARIOT program : IoT에 적합한 경량 양자내성암호 프로토타입 제안 프로젝트 공모(2020.10., $2.25M for 24 months)
∙ “Vehicle-embedded and wearable uses with a zerotrust networking architecture are of particular interest”
∙ 국내 PQC 표준화 공모 진행 중(2022.2~)
암호학자의 도구상자(cryptographer's toolbox)
∙ 대칭키 암호
∙ 공개키 암호
∙ 일방향 해시함수
∙ 메시지 인증 코드
∙ 디지털 서명
∙ 의사 난수 생성기
∙ 차세대 암호
스테가노그라피와 디지털 워터마킹
∙ 스테가노그라피(steganography): 메시지의 내용을 읽지 못하게 하는 암호와 달리, 메시지의 존재 자체를 숨김
∙ 숨기는 방법을 알면 메시지를 복구할 수 있음
∙ 디지털 워터마킹: 컴퓨터에서 사용되는 스테가노그라피 기술
∙ 파일의 LSB(Least Significant Bit)나 이미지 파일의 픽셀 RGB정보에서 각 픽셀의 LSB를 변화시켜 메시지를 숨기는 방식 등
∙ 암호와 조합해서 사용 가능
암호와 보안상식
∙ 비밀 암호 알고리즘(security by obscurity)을 사용하지 말 것
→ 암호 알고리즘 자체를 비밀로 하는 것
∙ 역사적으로 암호 알고리즘의 비밀은 반드시 폭로됨
∙ 강한 암호 알고리즘을 만드는 것은 매우 어려움
∙ 오늘날 강한 암호 알고리즘을 만들기 위해서 전세계의 전문가들이 협력하고 있음
∙ 대칭키 암호인 AES, 일방향 해시 함수 SHA-3 등은 공개적인 경쟁 방식을 통해 표준으로 선정
∙ 약한 암호는 암호화하지 않는 것보다 위험함
∙ 사용자가 잘못된 안심을 하기 때문에 기밀성이 높은 정보를 소홀하게 취급할 위험성 존재
∙ 어떤 암호라도 언젠가는 해독됨
∙ 모든 가능한 키의 경우의 수를 빠짐없이 시도해봄으로서 언젠가는 해독 가능함
∙ 따라서 암호문이 해독되기까지의 cost와 암호를 사용하여 지키고 싶은 평문의 가치와의 밸런스(trade-off)가 중요
∙ 암호는 보안의 기본 틀이지만 동시에 아주 작은 부분
∙ 암호 알고리즘을 깨지 않고도 우회하는 공격들이 많음. 예를 들어, 피싱, 트로이목마, 키로거 등 사회공학적 공격은 암호의 강도와 관계가 없음
∙ 가장 약한 링크는 암호가 아니라 사람
∙ 암호를 잘못된 방식으로 적용하지 않도록 주의해야 함
Summary
∙ 평문을 암호문으로 변환하는 것을 암호화, 암호화의 역연산(inverse)를 복호화라고 함
∙ 암호 알고리즘에는 대칭키 암호와 공개키 암호가 있음
∙ 둘의 장점을 결합한 하이브리드 암호 시스템이 널리 사용됨
∙ 암호학자의 도구상자에는 대칭키 암호와 공개키 암호 외에도 일방향 해시 함수, 메시지 인증 코드, 디지털 서명, 의사 난수 생성기 등이 있음
∙ 기밀성, 무결성, 인증, 부인 방지를 위해 다양한 암호 기술을 사용
∙ (전체) 보안 시스템의 강도는 보안 시스템을 구성하는 여러 링크 중 가장 약한 링크의 강도와 같음
∙ 가장 약한 링크는 암호가 아니라 사람
'Study > Cryptography' 카테고리의 다른 글
아핀 암호 (AFFINE CIPHER) (1) | 2024.04.06 |
---|---|
모듈로 연산 (Modular Arithmetic) (0) | 2023.10.22 |
암호의 역사 (1) | 2023.10.21 |