분류 전체보기359 공개키 암호의 문제점과 하이브리드 암호 1. 공개키 암호의 문제점 - 비밀키 암호에 비해 속도가 느리다. - 중간자공격에 약하다. 2. 중간자공격 - 송신자와 수신자 사이에서 송신자에게는 수신자처럼, 수신자에게는 송신자처럼 행세하는 공격을 말한다. 3. 하이브리드 암호 1) 평문을 비밀키 방식으로 암호화한다. 2) 비밀키는 의사(가짜)난수생성기로 생성한다. 3) 비밀키는 공개키 방식으로 암호화한다. 2018. 8. 12. 공개키 - Rabin암호, Knapsack암호, 초증가수열, 타원곡선암호(ECC) 1. Rabin 암호 1) 소인수 분해의 어려움을 이용한다. 2) 암호화 과정이 RSA 암호 시스템보다 빠르다. 3) 소인수 분해가 어렵다면 선택 평문 공격에 대하여 계산적으로 안전하다.[ 몇 천년 ] 2. Knapsack 암호 - 전체의 무게를 알 때 어떠한 무게의 물건이 몇 개 들었는지는 알기 어려운 것을 이용한 암호이다. 3. 초증가 수열 - 수열의 각 항이 이전 항들 모두의 합계보다 더 큰 수열 이다. - ex) 1, 3, 5, 10, 20, 40 ... 4. 타원곡선암호 (ECC) - 키의 길이가 짧고 안전성이 높으며, 서명할 때의 계산을 고속으로 처리한다. - 스마트카드나 휴대폰 등 키의 길이가 제한적인 무선환경에 적합하다. - 하드웨어 소프트웨어 구현이 용이하다. 2018. 8. 12. 공개키 - Elgamal 암호 1. Elgamal 암호 - 같은 평문이라도 암호화가 이루어질 때마다 암호문이 달라짐 - 다른 공개키 암호 알고리즘에 비해 길이가 2배로 늘어남 - 이산대수(로그) 문제에 바탕을 둔 공개키 알고리즘 - RSA 암호에 비해 안전하지만 속도가 느림 y = g의 x승 mod p --> g는 원시원소, p는 소수 g와 x를 아는 사람이 y를 계산하는 것은 간단하나, g와 y를 아는 사람이 x를 계산하는 것은 어렵다. Bob은 1) 큰 소수 p, 원시원소 g -->공개 2) x 선정, y = g의 x승 mod p [ x는 비밀, y는 공개] Alice는 3) 난수 r을 선정 -> K = y의 r승 mod p 4) C1 = g의 r승 mod p, C2는 KM mod p Bob은 5) C = ( C1, C2 ) 6).. 2018. 8. 12. 공개키 - RSA암호방식, RSA에 대한 공격 1. RSA 암호방식 1) 매우 큰 두 소수 p와 q [ p와 q는 비밀 ] 2) n = p x q [ n은 공개 ] 3) Ø(n) = (p - 1) x (q - 1) [ Ø(n)은 비밀, 이유는 Ø(n)를 알면 키를 만들 수 있으므로] 4) gcd(e, Ø(n)) = 1 --> e를 선정 [ e는 공개 ] = 최대공약수가 1이면 서로소이다. 5) e x d = 1 mod Ø(n) --> d를 계산 [ d는 비밀 ] 6) C = M의 e승 mod n [ Ø(n)은 나만 계산 가능하고, n은 누구나 계산 가능 ] 7) M = C의 d승 mod n 예제) 2. RSA에 대한 공격 1) 암호문으로부터 평문구하기 2) C = M의 e승 mod n 2018. 8. 12. 공개키암호의 기초지식 1. 공개키 암호의 기초지식 1) 공개키 암호로 암호화 할 때 수신자의 공개키가 필요하다. 2) 공개키 암호로 암호화된 암호문을 복호화하기 위해서는 공개키 암호와 쌍을 이루고 있는 개인키가 필요하다. 3) 공개키 암호의 개인키는 암호화한 메시지와 함께 수신자에게 송신할 필요가 있다. 4) 일반적으로 공개키 암호보다 비밀키 암호가 빠르다. 5) 소인수분해를 고속으로 푸는 방법이 발견되면 RSA도 고속으로 풀 수 있다. 6) 부인방지는 비밀키알고리즘만으로 구현될 수 없다. 7) RSA 알고리즘에서 e와 d를 곱한 값을 Ø(n)로 나누면 나머지가 1이다. 8) 공개키 암호화 기법은 키분배가 비밀키보다 쉽다. 9) Diffie-Hellman은 암호화나 전자서명에 이용되지 않고 키 분배에 이용된다. 10) RSA.. 2018. 8. 12. 공개키 - 오일러함수, 소인수분해, 거듭제곱 1. 오일러 함수[ Ø(n) ] - 어떤 자연수 n에 n이하의 자연수 중 n과 서로소인 수를 대응시키는 함수. - 소수의 경우 Ø(n)는 n-1개 이다. ex) Ø(7) = 6개 (7과 서로소인 1, 2, 3, 4, 5, 6) 2. 소인수분해의 특징 p x q => n p와 q를 알고 n을 구하는 것[암호화]은 쉬우나, n => p x q n을 알고 p와 q를 구하는 것[복호화]는 어렵다. 3. 거듭제곱 5¹ mod 23 = 5 5² mod 23 = 2 5³ mod 23 = (5¹ mod 23) x (5² mod 23) = 10 5⁴ mod 23 = (5² mod 23) x (5² mod 23) = 4 2018. 8. 12. 공개키 - 모듈러 연산, 모듈러 인버스 1. 모듈러 연산 - A(피제수) ÷ B(제수) = Q(몫) ... R(나머지) - 나머지가 될 수 있는 수의 개수 = 제수 ex) [ 9 mod 12 = 9 ] 와 [ 7 mod 12 + 2 mod 12 = 9 ] 는 같다. ex) [ -5 mod 3 = 1 ] 피제수가 음수인 경우는 제수를 양수가 될 때까지 더해준다. 2. 모듈러 인버스 (= 모듈러 역원) - ▣ x ◉ mod ★ = 1 , ▣ x ▣ mod ★(=12) = 1 , - 같은 수를 곱한 것을 12로 나누었을 때 1이 나오는 것은 1, 5, 7 ,11 이 있다. 2018. 8. 12. 공개키 암호를 사용한 흐름 1. 공개키 암호를 사용한 흐름 - 공개키와 개인키는 같은 사람이 만든 한 쌍의 키를 사용한다. [1] 밥은 공개키/개인키 로 이루어진 한 쌍의 키를 만든다. [2] 밥은 자신의 공개키를 앨리스에게 보낸다. [3] 앨리스는 밥의 공개키를 사용하여 메시지를 암호화 한다. [4] 앨리스는 암호문을 밥에게 보낸다. [5] 밥은 자신의 개인키를 사용하여 암호문을 복호화 한다. - 암호화 시 수신자(=상대방)의 공개키 사용, 복호화 시 수신자(=자신)의 개인키 사용 2018. 8. 12. 공개키 암호를 사용하게 된 이유 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. 이전 1 ··· 21 22 23 24 25 26 27 ··· 30 다음