| English | 의미 |
|---|---|
| symmetric/sɪˈmetrɪk/ | 대칭 |
| encryption/enˈkrɪpʃn/ | 암호화 |
| asymmetric/ˌeɪsɪˈmetrɪk/ | 비대칭 |
| plaintext/ˈpleɪntekst/ | 평문 |
| ciphertext/ˈsaɪfətekst/ | 암호문 |
| decrypt/dɪˈkrɪpt/ | 복호화 |
| key pair/kiː peə/ | 키 쌍 |
| public key/ˈpʌblɪk kiː/ | 공钥 |
| private key/ˈpraɪvət kiː/ | 사钥 |
| session key/ˈseʃn kiː/ | 세션 키 |
| cryptographic hash/ˌkrɪptəˈɡræfɪk hæʃ/ | 암호 해시 |
| digest/ˈdaɪdʒest/ | 요약 |
공개된 공간에서 서로 다른 두 사람이 비밀을 합의하기
- 여기 해결하기 불가능해 보이는 문제가 있습니다. 당신은 상점과 한 번도 만나본 적이 없으며 공유하는 것도 없습니다. 당신들끼리 나누는 모든 대화는 모두에게 들립니다. 비밀 키를 합의하십시오.
- 1976 이전까지는 답변은 다음과 같았습니다: 불가능하다. 대칭 암호화는 키를 사전에 전달받아야 하며, 특급 배송이나 대면으로 이루어져야 하기 때문입니다. 이것이 전쟁 중暗号帳이 인쇄되어 배송되었던 이유입니다.
- 이후 디피, 헬만, 그리고 나중에 리베스트, 샴미르, 알드먼은 이것이 가능함을 보여주었습니다. 잠금만 하는 하나의 키와 열쇠만 하는 다른 키를 사용하는 방식입니다. 당신이 온라인으로 해온 모든 구매가 이 원리에 기반하고 있습니다.
- 이번 수업에서는 대칭 및 비대칭 암호화, 실제 시스템이 두 방식을 모두 사용하는 이유, 그리고 해싱이라는 일방향 함수를 다룹니다.
어휘
- 암호화는 키를 사용하여 읽을 수 있는 평문 plaintext를 읽을 수 없는 암호문 ciphertext으로 변환합니다. 복호화 decrypt란 적절한 키로 이를 역으로 복원하는 것입니다.
- 암호화는 비밀성 confidentiality을 보호합니다: 도청된 복사본은 이해할 수 없습니다. 그러나 데이터가 도청되거나 지연되거나 삭제되는 것을 막지는 않습니다.
- 강점은 알고리즘을 비공개하는 데 있는 것이 아니라 키에 있습니다. 알고리즘은 공개되어 연구되며, 이는 취약점이 적대자가 아닌 동료들에 의해 발견되도록 하기 위함입니다.
대칭 암호화
- 대칭 암호화는 암호화와 복호화에 같은 키 same key를 사용합니다. AES가 표준 예시입니다.
- 속도가 빠르기 때문에 대용량 데이터 bulk data에 적합합니다: 전체 디스크, 영상 스트림, 대형 파일 등.
- 약점은 키 분배 key distribution입니다. 키가 도청되지 않고 상대방에게 도달해야 하며, 만약 도청되면 전체 체계가 무너집니다. $n$명이 서로 쌍为单位으로私密하게 대화하고 싶을 때 필요한 키의 수는 $n$의 제곱에 따라 증가합니다.
시프트 암호(대칭 키)
Caesar의 시프트는 모든 문자를 고정된 키만큼 앞으로 이동시킵니다. SAME 키를 사용하여 암호화와 복호화를 모두 수행합니다 — 이것이 대칭의 의미입니다. 시프트를 모르고 ciphertext을 읽으试着看。
대칭 암호화는 다음을 사용합니다:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
대칭 암호화는 하나의 비밀 키를 공유하므로 빠르지만, 안전하게 키를 분포시켜야 합니다.
비대칭 암호화
- 비대칭 암호화는 각 사용자에게 **키 쌍(key pair)**을 제공합니다: 전 세계에 공개하는 **공용 키(public key)**와 절대 공개하지 않는 **비공개 키(private key)**입니다.
- 공용 키로 암호화된 데이터는 오직 해당 비공개 키로만 복호화할 수 있습니다. 따라서 앨리스에게 기밀 메시지를 보내려면 앨리스의 공용 키로 암호화해야 하며, 오직 앨리스만이 이를 읽을 수 있습니다.
- 이전에 키 교환 과정이 필요하지 않다는 점이, 이 수업에서 제기한 문제를 해결합니다. 단점은 속도가 훨씬 느리다는 것이며, 따라서 대용량 데이터에는 적용되지 않습니다.

하나의 키로 잠그고, 다른 하나의 키로 열며, 그중 하나만 비밀으로 유지함
각 암호화 도구에 해당 기능을 매칭하십시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
대칭은 빠르지만 키 공유가 필요하며, 비대칭은 키 쌍을 통해 이를 해결합니다. 해시는 일방향이며, HTTPS는 이들을 결합합니다.
비대칭 암호화를 사용하여 Alice에게 기밀 메시지를 전송하려면 다음으로 암호화해야 합니다:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
수신자의 공용 키로 암호화하면, 해당 개인 키만 복호화할 수 있습니다.
각종 암호화 유형에 대한 주된 약점을 매칭하십시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
하이브리드 방식은 각 방식의 약점을 보완하기 위해 사용합니다: 키 전달에는 비대칭을, 데이터 전송에는 대칭을 사용합니다.
worked example: 기밀 메시지 전송
- 비교등 암호화가 보브가 알리스에게, 두 사람이 한 번도 만난 적이 없더라도 기밀 메시지를 어떻게 보낼 수 있는지 설명하십시오. [3]
- 알리스는 누구나 가질 수 있는, 도청자를 포함한 모든 사람에게 공개되는 공개키를 게시합니다.
- 보브는 알리스의 공개키로 메시지를 암호화합니다. 생성된 암호문은 매칭되는 개인키로만 복호화할 수 있습니다.
- 알리스는 herself가 절대 공유하지 않은 개인키로 이를 복호화합니다. 공개키와 암호문을 보유하고 있는 도청자가 메시지를 복구하는 것은 불가능합니다.
- 가장 흔한 오류는 보브가 자신의 키로 암호화한다고 말하는 것입니다. 각 단계에서 어떤 키가 사용되는지 추적해 보십시오.
Bob이 Alice에게 비대칭 암호화로 기밀 메시지를 보냅니다. Bob은 어떤 키로 암호화합니까?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
Alice의 공용 키가 수행한 작업은 Alice의 개인 키만 undo할 수 있으며, Alice만이 그 키를 보유하고 있습니다. Bob은 Alice의 개인 키를 아예 볼 수 없습니다.
실제로 이루어지는 하이브리드 방식
- 대칭 암호화는 빠르지만 키를 공유할 수 없습니다. 비교등 암호화는 키를 공유할 수 있지만 속도가 느립니다. 실제 시스템에서는 각 방식의 장점을 활용하여 사용합니다.
- 클라이언트는 무작위 세션 키를 생성하고, 그 작은 키를 서버의 공개키로 암호화하여 전송합니다. 서버는 자신의 개인키로 이를 복호화하므로, 이제 양쪽 모두 동일한 세션 키를保有하게 됩니다.
- 이후 실제 대화의 모든 바이트는 해당 세션 키로 대칭적으로 암호화됩니다: 빠르며, 느린 비교등 단계는 몇 바이트에 대해 단 한 번만 발생했습니다.
- 이것이 HTTPS와 SSH가 작동하는 정확히 같은 원리입니다.

키 합의에는 비교등을, 데이터 전송에는 대칭을 사용함
HTTPS에서 사용하는 하이브리드 방식에서 비대칭 암호화는 다음을 위해 사용됩니다:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
느린 비대칭 암호는 세션 키만 공유하고, 이후 대용량 데이터는 빠른 대칭 암호를 사용합니다.
HTTPS에서 사용하는 하이브리드 방식의 단계를 순서대로 나열하십시오.
난이도 3/5 · 200 코인 + 오늘 첫 완료 시 소액 보너스
느린 비대칭 단계는 몇 바이트에 대해 한 번만 실행되며, 이후 모든 과정은 빠른 대칭 암호입니다.
해싱
- 암호학적 해시는 임의 크기의 입력을 고정된 크기의 디제스트로 변환합니다. 동일한 입력은 항상 동일한 디제스트를产出하며, 입력의 미세한 변화는 디제스트를 완전히 변경시킵니다.
- 이는 단방향입니다: 디제스트로부터 입력을 복원할 수 없습니다. 이것이 해시의 핵심 목적이며, 역행하도록 설계된 암호화와 구별되는 지점입니다.
- 용도: 비밀번호 저장 시, 시스템이 디제스트만 보관하고 로그인 시 디제스트를 비교하므로,被盗된 데이터베이스로부터 비밀번호를 얻을 수 없습니다; 그리고 무결성 검증 시, 파일의 디제스트를 재계산하여 비교함으로써 어떠한 변경도 탐지합니다.
암호학적 해시는 임의 크기의 입력에서 고정된 ____를 생성합니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
같은 입력은 항상 같은 디지스트를产出하며, 작은 변화는 완전히 다른 디지스트를 산출하고, 디지스트로부터 원본을 복구할 수 없습니다.
풀이 예제: 해시 함수를 사용하는 것이 암호화보다 나은 이유
- 웹사이트는 사용자 비밀번호를 암호화된 텍스트가 아닌 해시 값으로 저장합니다. 그 이유를 설명하십시오.
- 암호화는 복원 가능하여, 저장된 값을 다시 비밀번호로 변환할 수 있는 키가 어디에나 존재합니다. 공격자가 데이터베이스에 접근하면 키도 함께 확보할 수 있습니다.
- 해시는 단방향이므로 도난당한 해시 값 데이터베이스로부터 비밀번호를 복원할 수 없으며, 사이트 내부 직원조차도 내용을 읽을 수 없습니다.
- 로그인 기능은 정상적으로 작동합니다. 시스템은 사용자가 입력한 값을 해시하여 해시 값끼리 비교하며, 실제 비밀번호 자체를 대조하지 않기 때문입니다.
해싱 및 폭풍 효과(Avalanche Effect)
해시는 일방향입니다: 계산하기 쉬우나 역산하는 것은 사실상 불가능합니다. 입력의 미세한 변화가 출력의 크고 예측 불가능한 부분을 완전히 바꿉니다 — 이것이 해시가 비밀번호에 적합한 이유인 폭풍 효과입니다.
암호학적 해시는 일방향(디지스트에서 원본을 복구할 수 없음)이며, 아발란체 효과를 보여줍니다. 즉, 입력의 미세한 변화가 출력의 크게 불규칙한 부분을 뒤집습니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
일방향성과 아발란체 효과가 해시를 비밀번호 저장 및 무결성 검증에 적합하게 만듭니다.
비밀번호를 암호화가 아닌 해시로 저장하는 이유는 무엇입니까? 모두 선택하십시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
고정 크기 디지스트가 실제로 더 짧을 수는 있으나, 그것이 보안적 이유가 아닙니다. 역연산 불가능성이 그 이유입니다.
놓칠 수 있는 점
- 어떤 사람에게도 기밀 메시지를 보낼 때는 본인의 키가 아닌 상대방의 공용 키를 사용해야 합니다. 모든 단계에서谁的의 키를 사용하는지 명시하십시오.
- 대칭 키 방식의 약점은 키 분배이며, 비대칭 키 방식의 약점은 속도입니다. 하이브리드 방식은 이 두 가지를 상호 보완하여 사용합니다.
- 해시는 일방향이며 암호화가 아닙니다: 키가 없으며 복호화할 대상도 없습니다.
- 암호화는 기밀성만 보호합니다. interception(수신 차단), 삭제, 또는 감지되지 않게Message(메시지)가 변조되는 것을 막지는 못합니다: 이러한 목적에는 해시가 필요합니다.
이해했습니다
- 암호화는 평문을 키를 사용하여 암호문으로 변환하며 기밀성만 보호합니다; 강도는 알고리즘을 숨기는 데 있는 것이 아니라 키에 있습니다.
- 대칭 키: 하나의 공유 키를 사용하며 빠르고 대량 데이터에 적합하지만 키 분배에서 취약합니다 · 비대칭 키: 公开密钥로 암호화하고 사钥으로 복호화하며 사전 교환이 필요하지 않으나 느립니다
- HTTPS와 SSH에서 사용하는 하이브리드 방식은 무작위 세션 키를 비대칭 방식으로 암호화한 후, 데이터를 대칭 방식으로 전송합니다.
- 암호학적 해시는 고정 크기의 디제스트를 생성하며 일방향이며, 비밀번호 및 무결성 검증에 사용됩니다.