Theory/Cryptology27 공개키 암호를 사용하게 된 이유 1. 공개키 암호를 사용하게 된 이유 - 공개키 암호를 사용하게 된 이유는 비밀키 암호의 문제점과 같다. 1) 비밀키 사용 시 해독하려면 키가 필요한데 키를 전달하기가 힘들다. 2) 키를 보내지 않으면 안 되는데 키를 보낼 수 없다. - 모순 + n명이 통신할 때? 비밀 키 개수 = n(n - 1) / 2 , 공개 키 개수 = 2n 3) 이 문제를 해결하려면 - 열쇠의 사전공유 - 열쇠 배포센터(KDC) 이용 - Diffie-Hellman의 열쇠교환 - 공개키 암호사용 2018. 8. 12. 공개키 암호 1. 공개키암호 1) 송신자에게 필요한 것은 암호화 키(=공개키)이다. 2) 수신자에게 필요한 것은 복호화 키(=개인키)이다. 3) 도청자에게 알려지면 곤란한 것은 복호화 키(=개인키)이다. 4) 암호화 키(=공개키)는 도청자에게 알려져도 괜찮다. 2. 공개 키 암호의 종류 1) 소인수분해 - RSA, Rabin 2) 이산대수 - Elgamal 3) Knapsack 문제 - Knapsack 암호 4) 타원곡선 상의 이산대수 - 타원곡선암호 (ECC) 2018. 8. 12. 공개키 - 수학적 기본용어 1. 수학적 기본용어정리 1) 항등원 [덧셈 = 0, 곱셈 = 1] - 연산의 결과가 자기 자신이 되는 수 2) 역원(inverse) [덧셈 = a의 역원은 -a, 곱셈 = a의 역원은 1/a (단 a≠0, 즉 0은 곱셈역원이 없다.) ] - 연산의 결과가 항등원이 되는 수 3) 약수 - 어떤 수를 나누어 떨어지게 하는 수 4) 소수(prime number) ↔ 합성수 - 약수가 1과 자기 자신 밖에 없는 수 - 소수는 무한집합이며, 알고리즘이 없다. - 소수를 구하기 위해서는 일일이 나누어보아야 한다. - 갈수록 간격이 벌어져 구하기 힘들어진다. - 그래서 공개키 암호에 사용된다. 5) 공약수 - 공통된 약수 6) 서로소 - 1 이외에 공약수를 갖지 않는 둘 이상의 약수 7) 소인수분해 [24 = ( .. 2018. 8. 12. 블록암호의 운용모드 1. ECB(Electric Code Book) 모드(전자 부호 책) [1] 동일한 평문 블록은 동일한 암호문 블록으로 출력되어 해독가능성이 높다. [2] 초기 벡터가 필요없다. [3] 짧은 평문이나 키를 암호화 시 사용한다. [4] 암호문 간의 연관관계가 없어서 개별적으로 암호화되고 개별적으로 복호화된다. [5] 그러나 해독이 빠르고, 손 안대고 공격[블록을 통째로 변경]가능, 짧은 키나 평문 암호화시 좋다. [6] 5가지 운영방식 중 가장 간단하지만, 평문과 암호문이 1:1로 대응관계이며 기밀성이 낮다. ex) A가 B에게 1억원 입금 // 이것을 B가 A에게 1억원 입금 /// 암호를 몰라도 블록을 변경 2. CBC(Cipher Block Chaining mode) 모드(암호 블록 연결) [1] 초.. 2018. 8. 12. DES암호의 특징 1. DES(Data Encryption Standard)의 특성 - [1] 컴퓨터의 성능이 좋아지면서 전수공격에 패했다. 대비하려면 키의 크기를 크게 해야한다. [2] 페이스텔 네트워크[Feistel Network]는 원하는 만큼 라운드 수를 늘릴 수 있다. [3] 각각의 출력비트는 모든 입력비트에 의존한다. ->암호의 안전성 [4] 쇄도효과, 눈사태효과, 산사태 효과라고 부른다. -> 1bit(평문 or 키) 변경 시 암호문 전체가 바뀐다. [5] 블록의 크기와 키의 크기가 항상 같지 않다. [6] DES는 전치가 매우 많다. (치환은 S-BOX에서만) [7] XOR연산이 많다. [8] 키의 길이가 길다고 무조건 좋은 것은 아니다. - 시간이 오래 걸림 2. 취약키 - 키가 모두 0 또는 1이면 키 .. 2018. 8. 12. DES 암호 1. DES[Data Encryption Standard] 암호 - 평문 64비트를 암호문 64비트로 변환시키는 암호방식으로 64비트의 키를 사용한다. - 키는 8비트마다 패리티비트 하나씩을 포함하고 있어 암호화 과정에는 56비트만 적용된다. 2. DES암호의 암호화과정 [1] 64bit의 평문블록[A]을 초기전치(Initial Permutation)[IP(A)] 된다. [2] 초기전치[Initial Permutation]한 것 [IP(A)]을 L0와 R0로 32bit씩 나누어진다. [3] K1(48bit)의 서브키와 R0가 F함수에 입력되면 32bit가 출력된다. [4] F[R0(32bit), K1(48bit)]에서 출력된 값과 L0를 XOR 연산을 한 후 R1에 들어간다. [5] L1에는 R0의 값을.. 2018. 8. 12. 암호의 해독 1. 암호의 해독(해독은 키를 모르고, 복호화는 키를 알고) - 암호문의 공격방법에는 전수공격(키의 개수가 적을 때), 통계적빈도 분석공격(문자의 빈도수가 많을 때), 수학적 분석공격(수학적 이론)이 있지만 궁극적인 목표는 복호화 키를 찾는데 있다. [1] 암호문 단독공격(Ciphertext-only attack) - 수동으로 도청된 암호문으로 복호키를 찾는다. [ C -> M, K ] [2] 기지 평문공격(Know plaintext attack) - 평문 일부와 대응하는 암호문 일부를 이미 알고 있을 때 복호키를 찾는다. [ M, C -> M, K ] [3] 선택 평문공격(Chosen plaintext attack) - 특정 평문을 선택하여 대응하는 암호문 일부를 얻을 수 있을 때 복호키를 찾는다. [.. 2018. 8. 12. Shnnon(샤론)의 암호이론 1. Shnnon(샤론)의 암호이론 [1] 환자와 전치를 병행해야 비로소 안전한 암호가 만들어진다. - (1) 혼돈(Confusion) - 평문과 암호문의 상관관계를 숨긴다. [ 치환 ] - (2) 확산(Diffusion) - 평문의 통계적 성질을 암호문 전반에 퍼트린다. [ 전치 ] [2] 평문과 암호문 사이의 관계를 어렵게 한다. 2018. 8. 12. Kerch hoff의 원리 1. Kerch hoff의 원리 [1] 암호의 안전성은 암호 알고리즘의 비밀에 의존하는 것이 아니라 키의 비밀을 지킴으로써 보장된다. [2] 자물쇠의 설계는 공개하지만 키는 반드시 서로 다르며 비밀이다. 2018. 8. 12. Onetime - Pad(일회용패드, OTP) 1. One time - Pad 암호 (일회용패드) [1] 버냄에 의해 고안되어 ‘버냄암호’라고도 부른다. [2] 전사공격을 하여 열쇠 전체를 탐색하더라도 절대로 해독할 수 없는 암호이다. [3] 무차별 공격을 하더라도 무엇이 평문인지 모른다. [4] 그러나 사용하지 않는 이유는 비용과 자원이 많이 들며, 평문의 길이와 암호 키의 길이가 같다. 2018. 8. 12. 암호기술이 제공하는 목표 1. 암호기술이 제공하는 목표 [1] 기밀성 : 송신자와 수신자의 소통 시 제 3자가 해독할 수 없도록 하는 것.유출되더라도] [2] 무결성 : 수신된 정보가 외부의 공격 또는 전송과정에서 위조 및 변조되지 않도록 하는 것 [3] 인증 : 수신된 메시지가 정당한 송신자로부터 전송된 것인지 신원 확인 [4] 부인방지 : 데이터의 송수신 후 사후에 증명함으로써 사실을 부인할 수 없도록 하는 것 2018. 8. 12. 비밀키 - 적암호 1. 비밀키 - 적(*)암호[Product - Cipher] - 환자와 전치를 함께적용한 암호를 말한다. 1) ADFGVX 암호 - 암호 표 미리 제공 ex) 암호화 시 M = lucky7day , K = SNOWMAN [1] 평문을 한 단어씩 표에서 찾아서 행과 열 순서대로 입력한다. [2] 이 때 암호의 길이는 1단어 당 2단어 씩 늘어난다. [환자] [3] 암호키 SNOWMAN에서 중복된 단어인 N을 제거한다. [4] 표를 그려서 가로로(왼쪽->오른쪽) 입력한다. [5] 암호 키 SNOWMA의 알파벳 순서대로 세로로 출력한다. [전치] ex) 복호화 시 C = VAX . AXG . FAD . FXF . XXV . XGX , K = CIPHER [1] 복호화 키 CIPHER을 순서대로 적는다. [2].. 2018. 8. 12. 이전 1 2 3 다음