짤막한 이야기
-
[2021/01/29][짤막한 이야기 - 고전 암호]짤막한 이야기 2021. 2. 4. 11:38
[2021/01/29][짤막한 이야기 - 고전 암호] 말 그대로 현대 암호와는 반대되는, 옛날에 사용되던 암호이다. 고전 암호에 대한 이야기는 비트열 혹은 바이트열이 아닌 영문자를 기준으로 설명하고자 한다. 고전 암호는 주로 “치환 암호”와 “전치 암호”로 분류될 수 있으며, 각 개념은 아래와 같다. “치환 암호”의 경우 평문 내에서 하나의 영문자를 다른 영문자로 대체하는 형태의 암호이다. 앞선 포스트인 “[짤막한 이야기 - 평문 & 암호문]”에서 사용한 암호알고리즘(+, -)가 대표적인 치환 암호이다. “전치 암호”의 경우 평문 내에서 하나의 영문자의 위치를 다른 위치로 옮기는 형태의 암호이다. “Hello”라는 평문을 “olleH”로 암호화하는 것이 하나의 전치 암호가 될 것이다. 위에서 언급한 암호..
-
[2021/01/28][짤막한 이야기 - 일회성 패드]짤막한 이야기 2021. 2. 4. 11:38
[2021/01/28][짤막한 이야기 - 일회성 패드] 당신이 키(랜덤 비트)와 평문(“Hello”)을 XOR하여 암호문을 생성하려고 한다고 가정해보자. 이 암호문이 정말 안전하다고 생각되려면, 키의 길이가 평문의 길이와 동일해야 한다. 랜덤한 비트가 딱 한번만 키로 사용되고 버려지며, 그와 동시에 매번 사용될 때마다 안전하게 공유가 되어야 하는 것이다. 이것은 "코드북 암호(Codebook Encryption)"의 특수한 형태에 해당하며, 이를 "일회성 패드(One-Time Pad)"라고 한다. ※ “일회성 패드”와 "일회성 비밀번호(One-Time Password)"의 약자는 OTP로 동일하지만 그 개념은 매우 다르다. 일회성 패드의 가장 큰 특징은 일회성 패드에 의하여 생성된 암호문은 공격자가 획득..
-
[2021/01/27][짤막한 이야기 - 매뉴얼 프로텍트]짤막한 이야기 2021. 2. 4. 11:36
[2021/01/27][짤막한 이야기 - 매뉴얼 프로텍트] “매뉴얼 프로텍트(Manual Protect)”란 “코드북 암호(Codebook Encryption)”의 일종이다. 옛날 고전게임에 주로 적용되는 소프트웨어 보호 기술이며, “매뉴얼의 X번째 페이지의 Y번째 줄의 Z번째 단어를 읽어라”와 같은 형태를 주로 사용하였다. 따라서 정품 소프트웨어 구매자의 경우라도 매뉴얼을 잃어버리는 경우에는 소프트웨어를 제대로 사용할 수 없었다. 반대로 정품이 아닌 제품 사용자라도 이 매뉴얼만 복제할 수 있다면 지적재산권을 침해할 수 있었다. 현대에는 이러한 방식이 사용되지 않지만, 매뉴얼 프로텍트는 분명히 암호학적으로도 의미가 있는 보호 기술이다. 이는 코드북 암호 자체가 다음에 포스팅할 “일회성 패드(One-Tim..
-
[2021/01/26][짤막한 이야기 - 종단자 공격]짤막한 이야기 2021. 2. 4. 11:35
[2021/01/26][짤막한 이야기 - 종단자 공격] 많은 사람들이 “중간자 공격”은 알고 있지만, “종단자 공격”은 상대적으로 잘 알려져 있지 않다. 주로 소프트웨어나 프로그램에 적용되는 공격이다(물론, 다른 객체에도 적용될 수 있다.). 간단히 말해서 소프트웨어의 지적재산권을 침해하거나 취약점을 익스플로잇하기 위한 목적의 공격이다. 소프트웨어를 획득(합법 구매 혹은 불법 다운로드를 모두 포함)한 공격자는 이의 분석을 위한 제약이 더 이상 없어지게 된다. 분석에 투자하는 시간, 분석의 능력, 분석에 사용 가능한 도구가 모두 무한하다고 가정할 수 있다. 예를 들어 “앨리스(Alice)”가 “이브(Eve)”에게 소프트웨어를 팔았다. 앨리스가 이브의 소프트웨어 구매 후의 행위를 멈출 수 있을까? 이것이 “..
-
[2021/01/25][짤막한 이야기 - 케르크호프스의 원칙]짤막한 이야기 2021. 2. 4. 11:33
[2021/01/25][짤막한 이야기 - 케르크호프스의 원칙] “암호의 안전성은 알고리즘이 아니라 키의 안전성에만 의존되어야 한다.” 암호학자인 케르크호프스는 위와 같은 말을 하였다. 이 말은 암호학에서는 매우 기본이 되는 문장으로 자리잡았으며, 지금도 암호알고리즘 설계의 기본 원칙이 되고있다. 케르크호프스는 1883년 암호시스템 설계 원칙과 관련한 글을 작성하였으며, 그 글에는 6가지의 원칙이 존재한다. 그 중 2번째 원칙이 현대에 알려진 케르크호프스의 원리인 것이다. 2. (암호)시스템은 비밀스럽지 않아야하며, 적의 손에 넘어가도 문제가 되지 않아야 한다. 물론, 앞선 짤막한 이야기(평문 & 암호문[2021/01/20])에서의 암호알고리즘은 알고리즘 자체가 취약하기 때문에 키가 안전하더라도 적의 손에..
-
[2021/01/23][짤막한 이야기 - 중간자 공격]짤막한 이야기 2021. 2. 4. 11:32
[2021/01/23][짤막한 이야기 - 중간자 공격] “이브(Eve)”가 “앨리스(Alice)”와 “밥(Bob)” 사이의 메시지를 가로챌 뿐 아니라 이브가 원하는 메시지로 보낼 수 있다면 어떤 상황이 벌어질까? 키 합의 과정에서는 “이산 대수 문제”에 의하여 “G^(Ra)” 혹은 “G^(Rb)”를 알더라도 “Ra” 혹은 “Rb”를 알 수 없는 부분이 있었다. 그러나 중요한 점은 “Ra” 혹은 “Rb”를 모르는 공격자(이브)가 두 개체(앨리스 & 밥) 사이의 키를 알게되는 상황이 있다는 점이다. 이것을 “중간자 공격”이라고 한다. 위 예시에서는 이브가 앨리스와 밥의 메시지를 탈취하고 그 후에 이브가 각자의 개체에 자신이 원하는 메시지를 전송한다. 이 경우에 이브는 “Ra”와 “Rb”를 계산할 수는 없지만..
-
[2021/01/23][짤막한 이야기 - 이산 로그]짤막한 이야기 2021. 2. 4. 11:31
[2021/01/23][짤막한 이야기 - 이산 로그] 암호학에서 이산 로그(“이산 대수 문제”라고도 알려짐)는 매우 중요한 개념 중 하나이다. 만약 당신이 “2^x = 16”이라는 표현식을 본다면, “x = 4”임을 쉽게 알 수 있다. 그러나 일반적인 로그 연산이 적용될 수 없는 상황도 있으며, 이를 “이산 로그”라고도 한다. 이산 로그의 정확한 조건은 “구글” 혹은 “네이버”에서 “이산 로그 문제”로 검색할 수 있다. 해당 예시에서 밑이 “G”이고 지수가 “Ra”, “Rb”인 수를 도청 공격으로 획득할 수는 있지만, “Ra”와 “Rb”를 추출할 수는 없다. (G가 공개되었다고 하더라도.) “앨리스(Alice)”는 “Ra”를 알고 있으며 “G^Rb”를 “밥(Bob)”으로부터 받았으니 “G^(Ra*Rb)를..
-
[2021/01/22][짤막한 이야기 - 도청 공격]짤막한 이야기 2021. 2. 4. 11:29
[2021/01/22][짤막한 이야기 - 도청 공격] 암호학에서 도청 공격이란, 공격자가 쉽게 수행할 수 있는 기본적인 공격이다. 이는 공격자가 인터넷을 통해 흐르는 패킷을 획득하거나 누군가가 목적을 가지고 다른 사람에게 보내는 메시지를 가로채는 종류의 공격이다. “앨리스(Alice)”와 “밥(Bob)”은 키 교환을 위하여 키 전송 과정을 수행하고 있으며, “이브(Eve)”라는 공격자가 이 키를 가로채고 있다. 이것이 도청 공격의 기본적인 예이다. 이제 이브는 키(K)로 암호화된 앨리스와 밥 사이의 모든 암호화된 메시지를 복호화할 수 있다. 도청 공격은 메시지를 변경 혹은 제거하지 않고 단순히 가로챈다는 점에서 “수동적 공격”으로 분류된다. 이 경우 키 전송 과정에서의 키가 안전하게 보호되어서 전송되어야..