목록Dreamhack (8)
사자자리

공개키 교환 알고리즘 - 네트워크 같은 공개된 채널에서 키를 교환해도 외부인은 키를 알 수 없게 하는 알고리즘 - 대칭키 암호를 사용하려면, 사전에 수신자와 송신자의 키 교환(Key Exchange)이 이루어져야 한다. - 대칭키 암호의 안전성은 키에서 비롯되고, 키를 안전하게 공유할 수 없는 환경에서 대칭키 암호는 무용지물이다. Diffie-Hellman 키 교환의 수학적 원리 1. 모듈로 연산에서의 거듭제곱 2. 페르마의 소정리 3. 이산 로그 문제 1. 모듈로 연산(Modulo Operation)에서의 거듭제곱 https://coding-leo.tistory.com/77 [암호학] 배타적 논리합과 합동식 배타적 논리합(XOR; exclusive or) - 입력으로 들어온 두 인자가 서로 다를 때 참..
운영 모드(Mode of Operation) - 블록 암호로 다양한 크기의 평문을 처리할 수 있도록 고안된 블록 암호의 사용 방법 - UTF-8로 인코딩할 때, DES는 8글자(64비트), AES는 16글자(128비트)를 한 번에 암호화할 수 있지만, 평문은 이 길이를 넘는 경우가 많기 때문이다. - 운영 모드에는 여러 종류가 있으며, 블록 암호 서비스는 각각의 장단점을 고려하여 운영모드를 선택한다. 패딩(Padding) - 평문에 데이터를 붙여서 평문의 크기가 블록 크기의 배수가 되도록 만드는 과정 - 블록 암호는 블록 단위로 암호화를 하므로 입력(평문)의 길이가 정확하게 블록 크기의 배수여야 하기 때문이다. - 복호화된 평문에서 패딩을 제거해야 평문을 얻을 수 있으므로, 수신자는 어떤 패딩이 적용됐는..

AES(Advanced Encryption Standard) - 연산 능력의 향상으로 DES가 더 이상 안전하지 않게 되자, 2001년에 새롭게 표준으로 선정된 블록 암호 알고리즘 - 내부적인 논의만으로 표준으로 선정된 DES와 달리, 전문가들의 심사를 거쳐 가장 뛰어난 알고리즘이 선정됐다. 보안성, 효율성, 하드웨어 이식의 적합성, 유연성 등을 고려하여 심사한 결과, Vincent Rijmen, Joan Daemen이 제안한 Rijndael 구조가 채택됐다. - 표준으로 선정된 이후부터 지금까지, AES에는 기밀성을 위협하는 치명적인 취약점이 발견되지 않았다. 또한 CPU 제조사들이 AES 연산을 위한 명령어를 따로 정의해 주어서 암호화, 복호화의 성능도 뛰어나다. - 이런 이유로 현대에는 대칭키 암호..

DES(Data Encryption Standard) - 미국의 국가 안보국(National Security Agency, NSA)에서 IBM의 루시퍼 알고리즘을 개량하여 만든 대칭키 암호 - 루시퍼에서 128비트 키를 사용했던 것과 달리 키 길이를 56비트로 줄였고, 내부에서 사용하는 알고리즘도 일부 변경했다. - 일각에서 NSA가 도감청을 위해 DES에 백도어를 숨겨놓았다는 의혹을 제기하기도 했지만, 미국 국립표준기술연구소(National Institute of Standards and Technology, NIST)는 DES를 1976년부터 2002년까지 표준 블록 암호로 인정했다. 현대에는 DES에 대한 공격 기법이 많이 연구되어 DES를 더 이상 블록 암호의 표준으로 사용하지 않는다. 백도어(B..

암호의 기능 기밀성(Confidentiality) 허락된 사람만이 정보를 열람할 수 있게 하는 기능 - 허락된 사람은 일반적으로 키를 가지고 있는 사람이다. 무결성(Integrity) 송신자가 보낸 정보에 변조가 일어나지 않았음을 의미 - 데이터는 조작, 네트워크 상의 문제 등으로 변경될 수 있다. 인증(Authentication) 정보를 주고 받는 상대방의 신원을 확인하는 기능 - 예: 공인인증서, 아이디와 비밀번호 부인 방지(Non-repudiation) 정보를 교환한 이후에 교환한 사실을 부인할 수 없게 하는 기능 혼돈과 확산(Confusion and Diffusion) - 1945년, 암호학자 클로드 섀넌(Claude Shannon)은 안전한 암호 시스템은 혼돈과 확산의 성질을 만족해야 한다고 발..
고전 암호 - 컴퓨터와 같은 고성능 연산 장치가 발명되기 전, 비교적 간단한 기계와 손 등으로 암복호화를 수행하던 암호 - 컴퓨터를 사용하면 대부분 쉽게 복호화되므로, 현대에는 사용하지 않는다. 고전 암호의 분류 치환 암호 Substitution Cipher 평문의 문자를 다른 문자로 바꾸는 것 전치 암호 Transposition Cipher 평문의 문자들의 위치를 바꾸는 것 단순한 고전 암호: 한 가지 원리만을 사용 복잡한 고전 암호: 두 가지 원리 모두 사용 단일 문자 치환 암호(Monoalphabetic Substitution Cipher) - 평문의 각 문자를 약속된 다른 문자로 치환하는 암호 - 치환의 대응 관계는 일대일 대응 카이사르 암호(Caesar Cipher) - 기원전 44년 줄리어스 ..

배타적 논리합(XOR; exclusive or) - 입력으로 들어온 두 인자가 서로 다를 때 참을 반환하는 연산 - 일반적으로 비트 단위로 이뤄진다. 입력 출력 0 0 0 0 1 1 1 0 1 1 1 0 - 임의의 정수를 자기 자신과 배타적 논리합하면, 결과값은 0이다. - 즉, 임의의 정수 x에 대해 x ⊕ x = 0이다. 합동식 - 두 정수 a, b를 각각 정수 m으로 나눴을 때, 나머지가 같은지 판별하는 식 - 두 정수 a, b를 각각 정수 m으로 나눈 나머지가 같을 때, 수학적으로 a와 b가 mod m에 대해 합동(congruent)이다. - 예를 들어, 7과 17은 10으로 나눈 나머지가 같으므로, 7과 17은 mod 10에 대해 합동이다. - 이를 기호로는 7 ≡ 17(mod 10)로 나타낸다..

커리큘럼의 목표 - 암호학을 공부해본 적 없는 분들에게 암호학을 넓고 얕게 알려드리는 것 - 실제 상용 프로그램에 쓰이는 암호 알고리즘의 특징 이해하기 - 안전한 서비스를 개발하기 위해 어떤 암호 기술을 사용해야 하는지 이해하기 암호학(Cryptography) - 정보를 보호하기 위한 언어학적 및 수학적 방법론을 다루는 학문 - 정수론, 대수학, 확률론 등 다양한 수학 이론에 기반하므로 자세한 이해를 위해 대학 수준의 수학 지식이 필요할 수 있다. - 좁은 의미: 제삼자로부터 정보를 보호하는 방법에 대한 연구 - 넓은 의미: 수신자와 송신자가 서로의 신원을 확인하는 방법, 메세지가 중간에 조작되지 않았음을 보증하는 방법 등을 연구 암호 시스템(Cryptosystem) - 암호화와 복호화로 정보가 전달되는..