
이번에 살펴볼 암호는 타원 곡선 암호(Elliptic Curve Cryptography)입니다. 타원 곡선 암호는 1985년 닐 코블리츠(Neal Kobalkitz)와 빅터 밀러(Victor Miller)가 제안한 암호로 공개키 암호체계를 타원 곡선(elliptic curve)이라는 수학적 대상에 접목한 암호입니다. 타원 곡선은 y^2 = x^3 + a * x + c 와 같은 방정식 형태로 쓸 수 있고 대칭축 하나에 두 부분으로 나누어져 있거나, 양쪽 끝이 열려 있는 곡선입니다. 타원 곡선을 암호화에 사용하려면 타원 곡선상의 두점을 연산하는 덧셈연산자에 대해 살펴보아야 합니다. 덧셈연산자(Addition operator) 타원 곡선상의 두점 P,Q의 덧셈은 P와 Q를 잇는 선을 연장해 그 선이 타원곡선과..

우리가 이때까지 다루었던 암호에서 당연하다고 생각했던 가정이 몇가지 있었습니다. 앞서 설명한 '암호를 송수신 하는 사람이 제3자가 들을 수 없는 장소에서 만나거나 엿들을 수 없는 통신방법을 통해서 사용 할 키를 약속했다는 것'이 첫번째이고, 두 번째는 메세지를 송신자의 신분입니다. '메세지에는 보낸 사람이 Alice라고 되어있는데 정말 Alice가 보낸게 맞는가?' 즉, 인증(authentication)에 대한 문제입니다. 이때 필요한 것이 전자서명(digital signature)입니다. 전자서명의 정의를 보면 '전자문서의 위조 및 변조를 방지하기 위해 작성자를 확인 할 수 있도록 해당문서에 삽입하는 암호화 된 정보형태의 서명'이라고 되어있습니다. 다시 말하면 전자서명은 아래와 같은 특징을 가지고 있어..

우리는 앞서 사전에 서로 합의하거나 만나지 않고 메세지를 주고 받는 방법을 크게 2가지 살펴보았습니다. 첫째는 디피-헬만 키 합의로 대칭키 암호에 쓸 비밀키를 합의하는 방식이었습니다. 둘째로는 암호 수신자가 암호키를 공개하는 비대칭키 방식도 있었습니다. 이 두가지 방법이 아닌 새로운 대칭키 암호방식으로 three-pass protocol 이 있습니다. 이 암호방식을 이해하기 쉽게 비유해봅시다. 암호 송신자를 Alice, 수신자를 Bob이라고 합시다. Alice는 보낼 메세지를 가방에 담아 자신의 열쇠로 잠근 뒤 Bob에게 보냅니다. Bob은 Alice가 잠근 열쇠 옆에 자신도 자신의 열쇠로 가방을 잠근 뒤 Alice에게 다시 보냅니다. Alice는 자신이 잠근 열쇠를 자신만 가진 키로 푼 뒤 Bob에게 ..

지금까지 논의했던 암호에는 몇가지 암묵적인 가정이 있었습니다. 그 중하나는 암호를 송수신 하는 사람이 제3자가 들을 수 없는 장소에서 만나거나 엿들을 수 없는 통신방법을 통해서 사용 할 키를 약속했다는 것입니다. 이는 너무 당연하다고 여겨져서 지난 2000여 년동안 의심을 품지 않았지만 현대에 들어와서는 안전을 뒷받침하는 기반이 거의 없는 방법이었습니다. 따라서 암호를 주고 받는 사람이 사전에 만나서 비밀키를 공유하지 않고도 안전하게 통신을 할 수 있는 방법을 연구하기 시작했습니다. 이런 방식을 공개키 암호기술(public-key cryptography)라고 합니다. 두 사람이 서로 만나지 않고 키를 공유하는 방법중 처음으로 논의된 디피-헬만 키 합의에 대해 알아봅시다. 디피-헬만 키 합의는 단방향(on..

이번에 소개할 암호는 또 다른 대칭키 블록암호 중 하나인 AES(Advanced Encryption Standard)입니다. DES(Data Encryption Standard)는 작은 키 사이즈(56bits)로 인해 컴퓨터의 성능이 발전함에따라 전수조사 방법(Brute Force)으로 공격이 가능해졌습니다. 또한 차분해독법(Differential Cryptanalysis)와 선형공격법(Linear Crypatanalysis)에 취약했습니다. 이러한 취약점으로 인해 새로운 암호 알고리즘의 필요성이 생기게 되었습니다. AES는 1997년 미국표준기술연구소(NIST)에서 공모한 암호로써 새로운 정부 암호 표준으로서 DES를 대체할 목적으로 기획되었습니다. AES는 키 크기가 128,192,256bits인 다..

앞의 글에서 소개한 고전암호에 이어 이번 글부터 소개 할 암호는 현대암호에 해당합니다 ! 현대 암호는 확산(diffusion) 과 혼돈(confusion)이라는 두가지 원리를 따릅니다. 이는 클로드 섀넌(Claude Shannon)이 정의한 개념으로 암호문은 넓은 범위에 걸쳐 퍼져 있는 통계 구조가 되어야 한다는 '확산'의 원리와 키를 찾는 것이 굉장히 복잡해 한다는 '혼돈'의 원리가 적용되어야 한다는 원리입니다. 현대 암호에서 키를 사용한 암호화 방식에는 크게 대칭키 암호와 비대칭키 암호가 있습니다. 그 중 대칭키 암호는 키를 통해 암호화와 복호화를 하므로 키를 다른 사람에게 알리지 않는 것이 굉장히 중요합니다. 다시 대칭키 암호에는 블록암호(block cipher)와 스트림암호(stream ciphe..

wechall의 시저암호 문제에 이어서 간단한 전치암호 문제도 한번 풀어보려고 합니다. http://www.wechall.net/challenge/training/crypto/transposition1/index.php [WeChall] Training: Crypto - Transposition I Crypto - Transposition I It seems that the simple substitution ciphers are too easy for you. From my own experience I can tell that transposition ciphers are more difficult to attack. However, in this training challenge you should..

이번에 소개 살펴볼 암호는 전치암호(transposition cipher)입니다. 지금까지 살펴본 암호는 모두 한 문자나 여러 문자가 다른 문자로 대체되는 치환암호(substitution cipher)였습니다. 그에 반해 전치암호는 문자의 자리를 이동하는 암호입니다. 최초의 전치암호는 스키테일(scytale)입니다. 이 스키테일 암호는 고대 스파르타에서 처음 사용했던 것으로 추정되고 있습니다. 스키테일 암호에 사용된 둥근 나무막대를 '스키테일'이라고 불렀는데 메세지를 보낼 때 막대에 양피지를 감은 다음 감긴 양피지 위해 내용을 적은 후 양피지를 풀러 메세지를 보냈다고 합니다. 그렇게되면 막대의 두께에 따라 서로 연관없는 문자들이 뒤섞여 나열되게 됩니다. 이 스키테일 암호의 복호화 키는 나무막대의 두께라고..

오늘 소개 할 암호는 비즈네르 암호(vigenere cipher) 입니다. 비즈네르 암호는 다표식 암호 중에서도 반복키 암호(repeating-key cipher)입니다. 반복키 암호란 단어나 구로 된 키워드(keyword)를 필요한 만큼 반복해 key로 사용하는 암호입니다. 암호문은 모듈로 26에 대해 평문 숫자와 키 숫자를 더한 값으로 나타낼 수있습니다. 평문이 "computer" 키워드가 "dog"인 비즈네르 암호의 예를 살펴봅시다. 키워드 d o g d o g d o 키워드숫자 4 15 7 4 15 7 4 15 평문 c o m p u t e r 평문 숫자 3 15 13 16 21 20 5 18 암호문 g d t t j a i g 암호문숫자 7 4 20 20 10 1 9 7 위의 표처럼 키워드는 필..

이번장에서는 다표식 치환암호인 동음이의 암호(homophonic cipher)와 암호의 빈도분석을 보다 정량적으로 분석하기 위한 도구인 동시발생지수(index of coincidence)에 대해 살펴보겠습니다. 다표식 치환암호란 평문 문자에 대응하는 암호문 문자를 여러개 정하는 것입니다. 이 중 한 문자를 여러 문자로 암호화하는 암호를 동음이의 암호라고 합니다. 평문 : a b c .. e f .. o p ... 암호문 : Z Y W V U L K ... ! @ # % & * 위의 암호문은 15세기 이탈리아 만토바 공국의 한 암호담당 관리가 만든 암호문 입니다. 사용 빈도가 높은 문자에 대응하는 암호문을 추가해 동음이의 암호를 만들었습니다. 이런 암호문은 출현빈도가 높은 평문 문자가 여러 기호 중에서 무..
- Total
- Today
- Yesterday
- 곱셈암호
- 양자컴퓨터
- 암호화
- ACM Computing survey
- 파이썬암호
- 비대칭키암호
- 공개키암호
- 암호론
- ETA 프로젝트
- 덧셈암호
- 전치암호
- pythonic
- Quantum Computing
- 파이썬
- 파이썬문법
- Quantum entanglement
- 파이썬 비동기
- 동시발생지수
- Cryptography
- Qiskit
- systemhacking
- python
- 복호화
- 대칭키암호
- thread
- Encrypted Traffic Analysis
- 시저암호
- 파이썬 문법
- 양자컴퓨팅
- wechall
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |