전체 글 289

공개키 암호 (Public-Key Cryptography)

비대칭 암호라고도 불림. 기존에 우리가 계속 공부해오던건 대칭키 암호였다. 이놈은 문제점이 좀 있었지. 일단 첫번째, 키 분배가 굉장히 까다로웠다. 두번째, 너무 많은 키를 요구한다. 그런 이유로 공개키 암호화 라는 녀석이 등장한다. 그렇다고 대칭키를 안쓰는건 아니다. 공개키 암호화는 공개키, 비밀키 두가지를 한쌍으로 동시에 사용한다. RSA라는 친구가 특히 많이 사용된다. ( 요건 나중에 설명함) 일반적으로 공개키 알고리즘은 대칭키 알고리즘보다 속도가 좀 느리다. 공개키 암호화는 2가지 기능을 제공하는데, 암호/복호화와 디지털 서명이다. 1. 암호화/복호화 * 송신자는 수신자의 공개키를 이용하여 메세지를 암호화 한다. * 수신자는 송신자의 비밀키를 이용하여 메세지를 복호화 한다. 2. 디지털 서명 * ..

블록 암호 운영 모드 (Cipher Block Modes of Operation)

이번에는 블록암호의 운용 방식에 대해 알아보자. 하나의 키 하에 블록 암호를 반복적으로 안전하게 이용하게하는 절차를 말한다. 여러가지 방식들이 있다. 1. ECB (Electronic Code Book) 한국말로 번역하면 전자 코드북이다. 가장 간단한 구조를 가진 운용 방식이다. 평문을 여러 블록으로 나누어 각각 암호화는 방식을 말한다. Ci = Ek(Pi), Pi = Dk(Ci) 같은 암호화 키를 사용하기 때문에, 만약 여러 블록이 같은 값을 가지면 암호화한 값도 같다. 그래서 반복 공격에 취약하다. (Subject to block replay) 2. CBC (Cipher Block Chaining) 암호 블록 체인 방식이다. 각 블록이 암호화 되기 전에 이전 블록의 암호화 값과 XOR 연산을 하는 것..

AES 알고리즘 (Advanced Encryption Standard)

AES (Advanced Encryption Standard)에 대해 알아봅시다. 한글로 해석하면 고급 암호화 표준 이라는 말이다. 미국 표준 기술 연구소 NIST 에서 2001년 11월에 고안한 알고리즘이다. 미국 정부가 체택한 이후로 인기를 얻어서 많이 사용하고 있다. 효율성, 유연성, 보안을 위해 고안된 알고리즘이다. Rijndael 알고리즘을 기반으로 만들어졌다. (개발자인 존 데이먼(Joan Daemen)과 빈센트 라이먼(Vincent Rijmen)의 이름을 따서 지은 것) 메모리 요구사항이 낮고, 블록 사이즈도 지맘대로(128, 192, 256 비트), 라운드도 지맘대로 정할 수 있다. 기본 구조는 위 그림과 같다. 아래 기본 틀 설명을 보시라. - Block size : 4*Nb - Key ..

대칭키 암호 알고리즘 (Symmetric key Cipher)

이번엔 대칭암호에 대해 알아보겠슴다. Symmetric은 대칭의 대칭되는 뭐 그런 뜻이다. 대칭이라 하니 뭔가 같다? 라는 느낌이 든다. 맞음 대칭키 암호 알고리즘이란, 암호화할 때 키와 복호화할 때 키가 같은 암호 알고리즘이다. 암호화, 복호화 키가 다른 알고리즘은 공개키 암호 알고리즘이라고 하는데.. 그건 나중에 설명드림. 그냥 말로만 들어선 대칭키가 공개키보다 훨씬 위험한 것 같다. 위험하긴 하다. 하지만 공개키보다 훨씬 속도가 빠르기 때문에 실제 통신에서도 대칭키 암호 알고리즘을 사용하고 통신 자체를 암호화 하는 형식으로 많이 사용된다. 대칭키에는 암호화를 하는 단위에 따라 두가지 암호 종류가 있다. 1. Block cipher (블록 암호) 말그대로 일정한 크기의 (n bit) 블록 단위로 쪼개..

암호학에서의 치환 그리고 전위

먼저, 고전적인 암호화 방식인 치환 암호에 대해 알아보자. 말그대로 평문 문자를 각각 대응하는 값으로 치환하는 간단한 알고리즘이다. 여기서 k번 만큼 밀어내어 문자를 대응시키는데 요걸 Shift cipher(시프트 암호) 라고 한다. 그리고 만약 k가 3이라면 그게 Caesar cipher(시저 암호) 이다. 간단하죠? 만약 시저암호화를 시킨다면, 이렇게 되겠죠? 그림 출처 : http://ko.wikipedia.org/wiki/ W를 3칸 뒤로 밀어뿌면 Z이고, A를 3칸 밀어뿌면 D가 나오니 대칭이 딱 맞군. 이런식으로 알파벳을 대응시켜 치환하는 것을 통틀어 치환암호라고 한다. 뭐 대표적으로 위와 같은 그림처럼 대응 시켜 치환한다. 다음은 Permutation/Transposition 에 대해 알아보..

반응형