블록암호(Block Cipher) #AES AES(Advanced Encryption Standard)란? AES란 대칭키 블록암호의 종류로 직역하면 고급 암호화 표준이다. DES가 더이상 안전하지 않게되자 이를 대체하기 위해 NSA가 공개적으로 투명한 연구를 진행하며 선정한 높은 안정성(부르트 포스 방지)과 빠른 속도를 가진 암호 알고리즘이다. DES 처럼 반복되는 암호블록 형식을 띄고 있지만 페이스텔 암호는 아니다. AES 종류 AES-128 : 블록 크기가 128비트로 9번의 라운드를 반복한다AES-192 : 블록 크기가 192비트로 11번의 라운드를 반복한다AES-256 : 블록 크기가 256비트로 13번의 라운드를 반복한다 AES의 구조 및 알고리즘 좌측이 암호화 알고리즘, 우측이 복호화 알고리즘이다. 전반적인 루트는 비슷하다. 암호화에.. Study/crypto 7년 전
블록암호(Block Cipher) #DES DES(Data Encryption Standard) 1970년대에 IBM에서 제안한 루시퍼(Lucifer)암호를 기반으로 수정하여 만들어진 대칭키 블록암호이다. 여담으로 NSA가 비밀리에 관련되어있었고, 설계과정이 비공개이었다 보니 DES에 백도어를 숨겼을거라는 의심도 받았다고 한다. 루시퍼 알고리즘을 교묘하게 변경하기도 하였고, 키의 길이가 128비트에서 64비트로 줄어서 DES개발은 논쟁이 있었다고 한다. DES의 수비학(Numerology) - 64bit 블록 길이- 56bit 키 길이NSA에서 키 길이를 64비트에서 48비트로 줄이려고 노력했으나 결국 최상위 8비트를 제거한 56비트가 되었다고 한다- 16번의 라운드(회전)- 각 회전에서 48비트의 보조키(Subkey) 사용- 각 회전은 단순- .. Study/crypto 7년 전
블록암호(Block Cipher) #페이스텔(Feistel) 블록암호(Block Cipher)란? 정보를 정해진 블록 단위로 암호화 하는 대칭키 암호체계이다. 블록암호 표기 - P평문 블록- C암호문 블록- K키- C = E(P,K) 암호화- P = D(C,K)복호화 반복되는 블록 암호의 특징 - 평문과 암호문이 고정된 크기의 블록으로 구성- 암호문은 평문의 반복되는 회전 함수로 생산- 회전 함수 입력은 '키'와 '전번 회전 출력'으로 구성- 주로 소프트웨어로 구축 페이스텔 암호(Feistel Cipher) 페이스텔 암호란 블록 암호 설계 방법으로 특정 암호를 지칭하는 것이 아니다. 이 설계방법은 특정한 계산함수의 반복으로 이루어지는데 이러한 함수를 라운드 함수(Round function)이라고 한다. DES, SEED 등 파이스텔 구조를 가지는 암호체계가 많다... Study/crypto 7년 전
스트림 암호(Stream Cipher) #RC4 인터넷에서는 이해하기 어려운 내용이 주를 이뤄 검색해도 알아듣기가 쉽지 않았다.(그들은 과연 모두 이해하고 그렇게 올린것일까) 그래서 스스로 수없이 검색해보고 이해해 보며 조금이나마 이해하기 쉽게 서술해보려 한다. 내용에 부족한 부분이 있어도 이해해주시고, 바로잡아주시면 감사드릴것 같다. RC4란? 스트림 암호의 종류 중 하나로, 전송 계층 보안(TLS/SSL)이나 WEP 등 여러 프로토콜에 사용되었었던 암호방식이다. 현재는 취약점이 발견되어 권장하고있지 않고있다고 한다. 바이트 단위로 처리하기 때문에 다른 비트 단위 암호보다 실행속도가 빠르다. RC4 암호체계 RC4 역시 다른 대부분의 스트림 암호와 비슷하게 XOR 연산을 통해 암호화를 진행한다. 하지만 이해하기 어려웠던 부분은 그 암호화를 하기까지의.. Study/crypto 7년 전
스트림 암호(Stream Cipher) #A5/1 스트림 암호(Stream Cipher)란? 대칭키 암호 중 하나로, 키 스트림을 이용한다. 이는 구현이 간편하여 하드웨어에 무리를 주지 않고 속도도 빨라 무선 통신 등의 환경에서 사용된다. A5/1란? GSM 휴대폰 체계에서 주로 사용되는 3개의 시프트 레지스터로 동작하는 스트림 암호화 방식중 하나이다. 3개의 시프트 레지스터는 다음과 같다 X 레지스터 : 19bitY 레지스터 : 22bitZ 레지스터 : 23bit A5/1은 위의 3개의 레지스터를 이용하여 키스트림을 형성한다. 아래를 참고하자 [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] X 0 1 0 1 1 0.. Study/crypto 7년 전
암호분석(Crytanalysis) 암호분석이란? 암호분석이란 본래 암호문을 통해 알고리즘, 키, 평문을 알아내는 분석을 말한다. 그러나 알고리즘의 경우 최근에는 공개하는것을 권장하고있기 때문에 현대의 암호분석은 키값이나 평문을 찾아내는 분석을 말한다. 암호분석의 종류 Ciphertext Only Attack(COA : 암호문 단독 공격)오직 암호문만을 가지고 평문 또는 키값을 찾아내는 공격 방법이다. 암호문이 규칙성이 없다면 어려운 공격이다 Known Plaintext Attack(KPA : 알려진 평문 공격)암호문과 암호문에 대응하는 평문의 일부를 가지고 암호문과 평문 사이의 관계를 유추해 전체 또는 다른 암호의 평문이나 키값을 찾아내는 공격방법이다 Chosen Plaintext Attack(CPA : 선택적 평문 공격)평문과 그에 대.. Study/crypto 7년 전
기초 암호 시스템(Basic Crypto System) 고대암호부터 여러 기초적인 암호 시스템에 대해 알아보자 기초 암호 시스템 Simple Substitution Cipher(단일 치환 암호) 암호 알고리즘알파벳 테이블과 키 테이블을 매칭시켜 평문을 알파벳 하나씩 치환하여 암호화 하는 암호체계이다. 키 테이블을 만드는 방법에 따라 여러가지 암호가 나올 수 있다.Caesar's Cipher시프트 연산을 통해 키 테이블을 만드는 방식. 키 테이블의 경우의 수가 26가지 이므로 해독이 쉽다Atbash Cipher카이사르의 키 테이블을 역순으로 재정렬하는 방식. 경우의 수가 카이사르 암호와 같아 해독이 쉽다.Vigenere Cipher키워드를 통해 비즈네르표에서 기준점을 설정하고 치환해나가는 방식. 단어빈도를 분석하여 키워드의 길이를 찾아내면 해독할 수 있다. 암.. Study/crypto 7년 전
암호체계(Crypto System) 암호체계(Crypto System or Cipher)란? 평문을 암호화 하는데에 사용되는 알고리즘을 말한다. 키↓ 키↓ 평문(Plaintext)-----> Encrypt(암호화) ---- 암호문 ---->(Ciphertext) Decrypt(복호화) -----> 평문(Plaintext) 키의 대칭성에 따라 대칭키와 공개키로 나눌 수 있다 Symmetric Key(대칭키)암호화 키와 복호화 키가 서로 같음 Public Key(공개키)암호화용 공개키(Public Key)와 복호화용 개인키(Private Key)가 서로 다름 Kerckhoffs Principle(케르크호프스의 원리) 키를 제외한 시스템의 다른 모든 내용이 알려지더라도 암호체계는 안전해야 한다는 것. 즉, 암호체계의 안정성이 오롯이 키의 비밀성.. Study/crypto 7년 전