공개키암호 -기반문제 (수학적으로 어려운 문제 기반) -소인수분해 기반 -이산대수 기반 -다원수선 이산대수기반 -일방향함수
수신자소유 -공개키1 (누구나 암호) -비밀키1
-타원곡선상의 점과 타원 곡선에서 정의되는 덧셈연산을 이용하여 정의되는 이산대수문제라고 정의한다. -정수에서 이산대수문제는 일방향 함수(한쪽은 쉽고 역방향은 어렵다)의 성질을 갖는다.
EC(타원곡선)-DSA(전자서명 알고리즘) EC-KCDSA 안전한 암호를 사용하기 위해서 224bit사용 [2048bit가 아닌 224bit를 사용하는 이유? 알고리즘(수식)이 복잡해서 그럼]
13.3 공개키 암호 알고리즘
<대칭키> : DES, TDES, AES C=Ek(P)
<공개키> : RSA, ElGamal, ECC P=Dk(C)
RSA암호 알고리즘 RSA -가장 널리 사용되는 공개키 암호 -소인수분해 기반 ->자릿수가 비슷하지만 두 수의 차가 큰 서로 다른 두 소수 p,g
ElGamal 암호 알고리즘 -유한체상에서의 이산대수 기반 ->수신자의 공개키 Y를 가지고 개인키x를 계산하는 것은 이산대수문제 -공개키를 안다하더라도 x를 알아내기 어렵다 or x를 알 수 없다.
ECC (타원곡선 암호 알고리즘) -1985에 만들어짐 -ElGamal 보다 더 복잡하게 만듬 -유한체 상에서 정의된 타원곡선군에서의 이산대수 문제 기반. -RSA,ElGamal 과 동일한 수준의 보안성을 제공하면서 키의 길이는 228bit로, 짧다.
제14장. 해시함수
14.1 해시함수
14.1.1 해시함수의 개념
-해시코드는 임의의 평문길이에 상관없이 항상 일정하다. -일방향함수: 역방향은 어렵기 때문이다. -임의의 데이터에 대한 해시코드는 쉽게 생성하지만(순방향 easy), 해시코드에 대응되는 데이터를 거꾸로 찾는 것은 어렵다(역방향 difficult).
14.1.2 해시함수의 응용 분야 (1) 메시지 인증 -HMAC (2) 전자서명 -MAC + 사용자 인증 (3) 의사 난수 생성기 -스트림암호에서 키 생성은 의사난수 사용 (의사난수: 수식에 의한 난수, 초기값이 같으면 )
14.1.3 해시함수의 요구조건 (1) 임의의 크기(평문의 길이)의 입력에 적용가능 (2) 항상 일정한 크기의 해시코드 출력 (3) 주어진 입력 data에 대하여 해시코드 계산이 쉬울 것. (일방향성,순방향성) -약한 일방향성 (4) H와 해시코드h가 주어졌을 때, h=H(D)를 만족하는 입력data D를 구하는 것이 계산상 실행 불가능 -강한 일방향성: (5) H와 입력데이터 D가 주어졌을 때, H(D)=H(D')를 만족하는 다른 입력데이터 D'를 구하는 것이 계산상 실행 불가능 -충돌저항성 (3) H가 주어졌을 때, H(D)=H(D')을 만족하는 두 입력 데이터 D와 D'를 구하는 것이 계산상 실행불가능
다 똑깉은 말은 역방향이 어렵다구 다 강력한 일방향 함수라구~
14.1.4 해시 알고리즘
<해시 알고리즘의 종류> [1] 블록암호 알고리즘에 기초한 해시알고리즘 ((블록암호 알고리즘에 기초한 해시알고리즘 블록암호를 해시 암호화에 사용 블록암호의 단점: 속도가 느림.)) [2] 모듈러연산을 이용한 해시알고리즘 ((D mod P <-나머지가 나오는데 P보다 작은결과물을 해시코드)) [3] 전용 해시 알고리즘
(1) MD4 -1990년에 발표 -대부분의 해시 전용 알고리즘의 기본 모델 -128bits (2) MD5 -MD4보다 안정성 높이고, 속도는 더 느려짐 -널리 이용되었으나 충돌저항성과 일방향성 문제가 있음이 알려져 사용하지 말 것을 권고했음. (3) SHA-1 (secure hash 알고리즘) -1995년에 발표 -해시코드가 160bit -2^64bit 보다 작은 것들은 모두 가능. (거의 뭐 대부분의 평문은 다 160bit으로 암호화 할 수 있다는 거) -해시알고리즘의 표준 (4) SHA-2, SHA-3 -표준 해시 알고리즘으로 추가 (5) SHA-224, SHA-256, SHA-384, SHA-512 존재
14.2 전자서명
14.2.1 전자서명의 개념
<전자서명> :메시지를 보낸 사람의 신원이 진짜임을 증명하기 위해 사용되는 서명 -전달된 메시지의 원래 내용이 변조되지 않았다는 것을 보증하기 위해 사용 -전자서명은 수기서명과 동일한 효력을 지님. -메시지의 암호화 여부와 상관없이 사용됨. / 상관없이 전자서명을 해시함수로 암호화한다는 뜻
<전자서명의 부가적 이득> (1) 쉽게 전송 (2) 쉽게 부인할 수 없다 (3) 다른사람이 흉내낼 수 없다 (4) 타임스탬프가 자동으로 유지
사용 예) -인증서 공인인증서 -발급기관의 전자서명 -해당인증서가 진짜임을 누구든지 확인 가능
14.2.3 전자서명의 동작원리 -전자서명은 해시함수, 공개키 암호를 사용한다.
[1] 서명작업 -개인키(공개키) 이용: 오직 자신만이 서명 -해시함수 이용: 메시지에 의존하지만 작은 크기의 서명을 생성 [2] 검증작업 -공개키 이용: 누구나 서명을 검증할 수 있도록 공개키 이용
14.2.4 전자서명 기법의 종류 [1] ElGamal 전자서명기법 -이산대수기반 공개키 암호 방식 [2] Schnorr 전자서명기법 -이산대수기반 공개키 암호방식
(이산대수는 다 모둘러연산)
[3] 전자서명표 (1) DSA -ElGamal, Schnorr기법 기반 (둘 다 사용) (2) RSA (3) ECDSA -DSA기법을 타원곡선에 적용한 방법