Stream cipher Stream cipher는 암호화에서 사용되는 symmetric key 암호화 기술중 하나이다. 이 기술은 평문과 비트 스트림으로 구성된 키를 사용하여 데이터를 암호화한다. 위 그림에 나와있듯이, stream cipher는 평문과 키를 XOR 연산으로 결합한다. 이를 통해 원본 데이터의 패턴이나 구조를 유지하면서 암호화할 수 있다.이 암호는 길이가 n 인 키 K 를 가지며, 이를 통해 키스트림(Key Stream)을 생성한다.이래서 스트림 암호라는 이름이 붙었나 보다. Stream cipher의 장점은 데이터가 스트림으로 처리되기 때문에 큰 데이터를 실시간으로 암호화할 수 있어서 block cipher보다 빠르다. Stream cipher는 키 하나를 만들어서 암호화시키면 ..
AES AES(Advanced Encryption Standard)는 현재 가장 널리 사용되는 대칭 암호화 알고리즘 중 하나다. 이름에서부터 살짝 눈치챘듯이, 저번 포스팅에서 다뤘던 DES를 대체하는 알고리즘이며 128, 192, 256 비트 중 하나의 키를 선택하여 데이터를 암호화 및 복호화한다. 이러한 다양한 key size 중에서 128비트 key가 가장 널리 사용된다. 물론 각 bit size마다 필요한 round의 수가 다르고, 암호화 과정에서 substitution 및 permutation을 사용한다.(참고로 DES의 bit size는 64, key size는 56, round는 16라운드까지 있으며 feistal 구조를 사용한다.) 우리는 3가지 bit size 중 가장 널리 사용되는 ..
Block Cipher Block Cipher는 Symmetric Encryption의 일종으로 public key가 아닌 secret key를 사용한다.이름 그대로 큰 데이터를 블록 단위로 구분해서 암호화를 하는 방법인데, 여기서 사용한 key는 재사용 가능하다.예를 들자면 Substitution cipher, Permutation, DES, AES 등에 사용된다. block cipher의 예를 들어보자.n이 3일때, 3비트를 입력하면 임의로 0~7의 값 중 하나를 선택하여 그 값을 다시 encryption의 0~7중 하나로 치환해서 출력한다.이전에 배웠던 substitution 암호와 아주 비슷하다. 비트 단위 값에서 선택한다는 것만 빼면... Stream Cipher Block Cipher와..
vigenere cipher 각 문자마다 km만큼 문자를 이동하여 암호화시키는 방법이다. 전에 배웠던 shift 와 비슷한데 다른점은 모든 문자마다 shift의 정도가 다 다르다. Enc(K, x1, x2, ... ) = (x1 + k1, .... , xm + km) mod 26Dec(K, Y1, Y2, ...) = (Y1 - k1, ... , Ym - km) mod 26 키값 K는 K = (k1, k2, ...., km)으로 표현한다.예를들어 key값이 (3,2,1)인 경우, hot 을 KQU로 암호화시킬 수 있다. 수많은 k 덕분에 비즈네르 암호는 키값을 알지 못하는 경우 attack이 불가능하다. permutation cipher 치환암호는 원문 문자열을 재배열하여 위치를 치환시키는..
정보 보호에는 다음과 같은 3 요소를 중요하게 생각한다.confidentiality - 데이터와 privacy한 기밀성integrity - 데이터와 시스템의 무결성availability - Ddos의 위협을 받는 가용성 3 요소는 이와 같은 방식 안에서 지켜진다.owner는 위험을 줄이기 위해 대응책을 만들고, 공격하는 사람은 risk를 높이는 방법을 강구한다.참고로 여기서 asset은 owner가 관리하는 정보를 말한다. 엑세스된 데이터는 반드시 통제 하에 안전하게 보호되어야 하며, 컴퓨터의 사용자 인증권한을 사용해서 보호한다.앞으로 이 인증권한을 어떻게 주고받는지가 정보 보호의 핵심이다. 아래는 기초적인 보안 설계의 원칙들이다.디자인은 가능한 한 심플하고 작게 설계유저가 시스템에 접근 시 ..