전자서명

:암호방식에 따라 개키 서명 방식, 중재 서명 방식으로 나눌 수 있다.

:공개키 서명 방식은 서명 생성 및 검증이 간편

:중재 서명 방식은 서명 생성 및 검증을 중재하는 방식으로 제 3자의 참여가 있어야 한다.


과정

1. 송신자는 서명 알고리즘을 이용해서 메시지에 서명

2. 메시지와 서명은 수신자에게 전송

3. 수신자는 메시지와 서명을 받고 검증 알고리즘을 적용

4. 결과가 참이면 올바른 메시지, 거짓이면 그 메시지는 송신자가 전송한게 아님


서비스

-메시지 인증

-메시지 무결성

-부인방지(제 3자를 이용)

-기밀성(전사서명을 한다고 해서 기밀성이 보장되는 통신X,기밀성이 필요하다면 암·복호화를 할 수 있는 다른 수단이 적용되어야 한다.)


주요기능

-위조 불가

-서명자 인증

-부인방지

-변경 불가

-재사용 불가


RSA 전자서명 구조

:RSA 암호시스템을 이용한 전자서명의 안전도는 RSA 암호시스템의 안전도와 일치

:암호화의 경우에서처럼 수신자의 키를 사용하는 것이 아닌 송신자의 개인키와 공개키를 사용

:메시지 대신 메시지의 해시값에 서명을 하면 RSA 전자서명 구조에 대한 위험성은 해시 알고리즘의 강도에 좌우


타원곡선 전자서명 구조

:타원곡선에 기반을 둔 DSA(=ECDSA)

:짧은 처리 시간에 짧은 서명 생성이 가능


EIGamal 전자서명 구조

:EIGamal 암호시스템과 동일한 키를 사용하지만 알고리즘은 다르다.(이산대수 문제를 이용한 최초의 서명 방식)

:EIGamal 서명 알고리즘은 실제로 거의 사용되지 않는다.


Schnorr 전자서명 구조

:EIGamal에 기반을 두고 있지만 서명의 크기를 줄인 구조


DSS(=DSA , 전자서명표준)

:미국의 전자서명 표준으로 EIGamal  전자서명을 개선한 방식

:서명과 검증에 소요되는 계산량을 획기적으로 줄인 방식

:전자서명 기능만 제공, 암호화나 키 교환에 사용되지 않는다.

:EIGamal 서명 스킴보다 서명 길이가 320비트로 짧고, EIGamal에 대한 공격 중 일부가 적용되지 않는다.


KCDSA

:국내 전자서명 표준

:EIGamal 전자서명을 개선, DSS를 변형한 방식


전자서명 방식

메시지 복원형(RSA)

:메시지에 직접 서명하는 방식

:서명자의 개인키를 이용해 메시지를 암호화하여 전송

:검증자는 서명자의 공개키를 이용하여 서명된 암호문을 복호화하여 검증

:기존의 공개키 암호방식을 이용하므로 별도의 전자서명 프로토콜이 필요하지 않음

:메시지를 일정한 크기의 블록으로 나누어 각각의 블록에 서명을 해야 하므로 많은 시간이 소요되어 실제로는 사용되지 않음


메시지 부가형(EIGamal, DSS, KCDSA)

:메시지의 해시값에 서명하는 방식

:임의의 길이로 주어진 메시지를 해시 알고리즘을 이용하여 일정 길이로 압축

:해시값에 서명자의 개인키를 이용하여 전자서명을 하고 메시지에 붙여 전송

:수신된 메시지의 해시값과 공개키를 이용하여 전자서명을 복호화한 값과 비교

:전자서명을 붙여 전송하므로 전송량이 약간 늘어나지만, 메시지가 아무리 길더라도 한 번의 서명 생성만 필요하므로 효율적이며 실제로 많이 사용


특수 전자서명

부인방지 서명 : 서명자의 도움이 있어야 검증이 가능한 방식

의뢰 부인방지 서명 : 부인방지 서명의 서명자 익명성을 보장하지 못하는 문제점을 부분적으로 개선한 방식

수신자 지정 서명 : 지정된 수신자만이 서명을 확인할 수 있으며, 서명의 남용을 서명자가 아닌 수신자가 통제할 수 있는 서명 방식

은닉 서명 : 서명자가 문서 내용을 보지 않은 상태에서 서명을 하여 익명성을 제공하는 방식

위임 서명 : 서명자를 대신해서 대리로 서명할 수 있도록 구성한 서명 방식

다중 서명 : 동일한 문서에 여러 사람이 서명하는 방식


전자서명 응용

-보안공지

-소프트웨어의 다운로드

-공개키 인증서(공개키에 전자서명을 붙인 것)

-전자투표

-전자입찰


전자서명으로 해결할 수 없는 문제

:"서명 검증을 할 때 이용하는 공개키가 진짜 송신자의 공개키일 것"

:해결방법(공개키 인증서)


전자투표

:유권자가 투표소에 가지 않고 온라인 시스템을 통해 투표하는 것

:유권자 개인의 인증과 투표 내용의 기밀성 유지 등의 문제점이 있음


전자투표 시스템의 요구사항

-완전성

-비밀성

-재사용 불가

-공정성

-적임성

-검증성


전자투표 방식

-투표소 전자투표(PSEV, Poll Site E-Voting)

-키오스크(Kiosk)

-인터넷 투표(REV, Remote internet E-Voting)


전자입찰

:입찰방식을 인터넷을 통하여 구현


전자칩찰 시스템의 요구사항

-독립성

-비밀성

-무결성

-공평성

-안전성


문제점

:네크워크상의 메시지 유출

:입찰자와 서버 사이의 공모

:입찰자간의 공모

:입찰자와 입찰 공무자간의 공모


공개키 기반 구조(PKI, Public-Key Infrastructure)

:공개키 암호 기법을 이용한 인증 수단으로, 사전에 공유된 비밀 정보가 없어도 인증서에 기반해 상대방을 인증할 수 있다.

:공개키 알고리즘을 통한 암호화 및 전자서명을 제공하기 위한 복합적인 보안 시스템 환경을 말한다.

:기밀성, 무결성, 접근제어, 인증, 부인방지의 보안서비스를 제공

:인증기관, 등록기관, 사용자, 신뢰 당사자, 저장소 등의 요소로 구성


PKI의 주요 구성요소

인증기관(CA, Certification Authority)

:인증서를 발급해 주는 역할을 하며, 인증서는 사용자가 합법적인 사용자임을 입증한다.

:최상위 인증기관 -> 전자서명인증관리센터(KISA)

:공인인증기관 -> 한국정보인증(주), (주)코스콤, 금융결제원, 한국전자인증(주), 한국무역정보통신

-정책 승인기관(PAA, Policy Approving Authority)

:정책과 절차를 생성하여 수립

:하위 기관들의 정책 준수 상태 및 적성성을 감사

-정책 인증기관(PCA, Policy Certification Authority)

:인증기관의 공개키를 인증하고 인증서

:인증서 폐지 목록 등을 관리 

-인증기관(CA, Certification Authority)

:공개키 인증서를 발행하거나 폐지

:사용자에게 자신의 공개키와 상위 기관의 공개키 전달

:등록 기관의 요청에 의해 인증서를 발행


검증기관(VA, Validation Authority)

:인증서와 관련된 거래의 유효성을 확인하고 신뢰 당사자에게 확인시켜 준다.

:검증기관 없이 인증기관만 존재할 수 있으나, 보안측면에서 불완전하다고 간주될 수 있다.

:검증기관과 인증기관은 통합적으로 운영되거나 독립적으로 운영 될 수 있다.


등록기관(RA, Registration Authority)

:인증기관과 사용자 사이에 등록기관을 두어, 사용자의 인증서 신청 시 인증기관 대신 그들의 신분과 소속을 확인하는 기능을 수행한다.

:등록기관은 사용자의 신분을 확인하고 인증서 요청에 서명을 한 후 인증기관에 제출 -> 인증기관은 등록기관의 서명을 확인 후 사용자의 인증서 발행

:등록기관은 선택적인 요소, 등록기관이 없을 때에 인증기관은 등록기관의 기능을 수행할 수 있다고 가정한다.


저장소(Repository, Directory)

:사용자의 인증서를 저장

:사용자 자신이 원하는 상대방의 인증서를 검색할 수 있다.

:디렉터리 표준형식 X.500


사용자

:PKI 내의 사용자는 사람뿐만 아니라 사람이 이용하는 시스템 모두를 의미한다.



PKI의 형태

계층 구조

:최상위 루트 CA가 존재하고 그 아래 하위의 CA가 계층적으로 존재하는 트리형태

:최상위 인증기관 간의 상호인증은 혀용하지만 하위 인증기관 간의 상호인증은 원칙적으로 배제


네트워크 구조

:상위 인증기관의 영향 없이 인증기관 각각이 자신의 인증정책에 따라 독립적으로 존재하는 형태

:CA간에 인증을 위해 상호인증서를 발행하여 인증서비스를 한다.

:모든 상호인증이 허용되면 상호인증의 수가 대폭 증가하는 단점이 있다.


혼합형 구조

:계층 구조와 네트워크 구조의 장점을 취한 방법


구분

계층 구조

네트워크 구조

장점

정부와 같은 관료조직에 적함

인증경로 탐색이 간단

모든 사용자가 최상위 CA의 공개키를 알고 있으므로 인증서 검증 간단

유연하며 실질적인 업무관계에 적합

인증경로 단순

CA의 비밀키 노출 시 국소적 피해

단점

최상위 CA에 집중되는 오버헤드 발생가능

협동업무 관계에는 부적합

최상위 CA의 비밀키 노출 시 피해 규모 막대함

인증경로 탐색이 복잡

인증정책 수립 및 적용 어려움



공개키 인증서(PKC, Public-Key Certificate)

:공개키가 특정인의 것이라는 것을 확신할 수 있는 증거로서의 기능을 수행한다.

:공개키 인증서에는 개인정보 및 그 사람의 공개키가 기재되고, 인증기관의 개인키로 전자서명 되어있다.

:인증서 표준 규격은 ITU(국제전기통신연합)나 ISO(국제표준화기구)에서 정의하고 있는 X.509는 규격이다.

:X.509 인증서는 IPsec, SSL/TLS, SET, S/MIME에 사용된다.


X.509 v3 인증서 양식

요소

구분

설명

 버전

필수

 X.509 버전을 정의

 일련번호

필수

 인증기관에 의해 각 인증서에 부여되는 번호

 서명 알고리즘 식별자

필수

 서명하기 위한 알고리즘과 알고리즘 식별자를 포함, 서명 필드에 포함되기 때문에 이 필드는 쓸모 없음

 발행자 이름

필수

 발행자(인증기관)의 이름을 나타낸다. 이름은 국가명,조직명,부서명,일반이름 등의 속성으로 정의

 유효기간

필수

 인증서 유효 기간이 시작하는 날짜인증서 유효 기간이 종료하는 날짜로 구성

 주체 이름

필수

 사용자의 이름을 나타낸다. 上인증기관이 下인증기관에게 인증서를 발행하는 경우 사용자는 인증기관이 된다. 

 주체의 공개키 정보

필수

 사용자의 공개키에 대한 정보가 들어 있다.

 발행자 유일 식별자

선택

 발급자나 사용자의 이름이 중복되는 경우 이를 구별하기 위한 수단을 제공한다.

 주체 유일 식별자

선택

 비트열 필드로서 선택사항이다. 

 확장

선택

 발행자가 인증서에 추가적으로 사적인 정보를 넣을 수 있다. v3 버전에서 확장을 추가

 서명

필수

 인증서에 대한 서명값이 들어가는데, 인증서의 나머지 필드 전체를 보호한다. CA의 개인키로 암호화


인증서 확장 영역

:공개키 정보와 연관된 추가적인 정보를 제공하며, 인증서 계층 구조를 관리할 수 있는 방법을 제공한다.


-키와 정책 정보

구분

설명 

기관키 식별자

 개인키에 대응하는 공개키를 구분할 수 있는 수단을 제공

 사용자키 식별자

 여러 인증서를 획등한 경우, 특정공개키를 포함하는 인증서의 집합을 빠르게 구분할 수 있는 수단을 제공

 키 사용

 인증서에 포함된 키의 용도를 정의한다.

 인증서 정책

 인증기관은 자신이 발행한 인증서에 대한 정책을 인증서 내에 나타낼 수 있다.


-사용자와 발행자 속성

구분

설명

 사용자 대체 이름

 추가적인 신분이 인증서의 사용자와 결합할 수 있도록 한다.

 우편 주소, DNS이름, IP주소, URI가 포함

 발급자 대체 이름

 다양한 형식으로 된 하나 이상의 다른 대체 이름을 포함


-인증 경로 제약조건

구분 

설명

 기본 제한

 인증서의 사용자가 인증기관인지 여부를 구분한다.

 이름 제한

 사용자 DN(Distinguished Name)이나 사용자 대체 이름에 제약을 가할 수 있다. 

 정책 제한

 인증기관에게 발급된 인증서 내에는 정책 제한 확장을 적용할 수 있다.


CRL(Certificate Revocation List)

:인증서 폐지 목록(CRL)이라고 하며 인증기관의 저장소 or 디렉터리 시스템 등에 등재하여 신뢰 당사자가 언제든지 목록을 검색할 수 있도록 하여야 한다.

:버전, 서명 알고리즘 및 발급 기관의 이름, 인증서 발급입, 다음 번 갱신일, 취소된 인증서에 대한 정보(일련번호, 폐지일자, 폐지사유) 등이 포함


폐지사유

-사용자 개인키가 노출 or 훼손

-CA가 사용자를 더 이상 인증X

-CA의 인증서가 노출 or 훼손


온라인 인증서 상태 검증 프로토콜(OCSP, Online Certificate Status Protocol)

:실시간으로 인증서의 상태 정보를 확인할 수 있는 효율적인 방법

:OCSP 클라이언트, OCSP 서버, 인증 서버로 구성


서버 기반 인증서 검증 프로토콜(SCVP, Simple Certification Validation Protocol)

:SCVP 서버를 이용하여 클라이언트의 인증서 처리에 대한 부담을 줄여준다.

:인증서의 유효성 혹은 신뢰할 수 있는 인증서의 체인 등 다양한 정보를 제공

:클라이언트의 구현을 단순화시키고 기업 내에서 신뢰 및 정책 관리를 중앙 집중식으로 처리할 수 있도록 허용하는 데에 목적




일방향 해시함수

:임의 길이의 메시지 입력으로 고정 길이의 해시값을 출력한다.

:해시값을 고속으로 계산할 수 있다.

:일방향성을 갖는다.(해시값으로 부터 메시지를 역산할 수 없다는 성질)

:메시지가 다르면 해시값도 다르다.(무결성 확인)


충돌

:2개의 다른 메시지가 같은 해시값을 갖는 것을 충돌(Collision)이라고 한다.


충돌내성

:충돌을 발견하는 것이 어려운 성질을 가리킨다.


해시함수의 보안 요구사항

프리이미지 저항성(역상 저항성)

:주어진 임의의 출력값 y에 대해 y=h(x)를 만족하는 입력값 x를 찾는 것이 계산적으로 불가능하다.


제2프리이미지 저항성(두번째 역상 저항성, 약한 충돌 내성)

:주어진 입력값 x에 대해 h(x)=h(x'), x≠x'을 만족하는 다른 입력값 x'을 찾는 것이 계산적으로 불가능하다.


충돌 저항성(강한 충돌 내성)

:h(x)=(x')을 만족하는 임의의 두 입력값 x,x'을 찾는 것이 계산적으로 불가능하다.


전자서명에 이용되는 해시함수의 특성

:해시값을 고속으로 계산

:약 일방향성=프리이미지 저항성

:강 일방향성=제2프리이미지 저항성

:충돌 회피성=충돌 저항성


키가 없는 해시함수

블록암호 기반 해시함수

:압축함수 자리에 대칭키 블록암호를 사용

:블록암호의 암호화기능만 사용


전용 해시함수

:(SHA-1, RIPEMD, RIPEMD-128, RIPEMD-160, HAVAL) 등은 모두 MD5를 기초로 디자인

:MD5 해시값 크기 : 128 , 블록 크기: 512

:RIPEMD 해시값 크기 : 128 , 블록 크기: 512

:HAVAL 해시값 크기: 128, 160, 192, 224, 256블록 크기 : 1024

:HAS160은 한국형 전자서명 표준인 KCDSA에서 사용할 목적으로 개발 , 해시값 크기 : 160 , 블록 크기 : 512


모듈 연산 기반 해시함수

:압축함수의 기반을 모듈 연산의 반복적인 수행

:하드웨어/소프트웨어 자체에 내장된 모듈 연산을 사용

:속도가 빠르지 않고 안전성 연구에 대한 역사가 짧음


SHA(Secure Hash Algorithm)

:1993년 미국 표준 기술 연구소(NIST)에서 FIPS PUB 180 출판 -> SHA-0(표준 폐기)

:1995년 NIST에서 FIPS 180-1 출판-> SHA-1

:2002년 NIST에서 FIPS 180-2 출판-> SHA-2(SHA-256 / 224, SHA-512 / 384 ), 2004년 3DES 키 크기에 맞춰 해시값 크기를 조정한 SHA-224가 표준에 추가

:2008년 NIST에서 FIPS 180-3 출판-> SHA-3 공모 -> 2012년 Keccak이 해시 알고리즘으로 선정

구분

SHA-1

SHA-256 / 224

SHA-512 / 384

해시값 크기

160

256 / 224

512 / 384

블록 크기

512

512

1024

워드 크기

32

32

64

라운드

80

64

80

https://ko.wikipedia.org/wiki/SHA


키가 있는 해시함수

:메시지 인증 기능을 가진 함수

:함수 자체의 안전성과 키의 비밀성에 안전성을 두고 있음

:CBC모드를 이용하는 방법


해시함수 응용

-무결성점검

-소프트웨어 변경 검출

-메시지 인증 코드

-전자서명


랜덤 오라클 모델

:해시함수에 대한 이상적인 수학적 모델

:이진수로 고정된 길이의 메시지 다이제스트를 생성

:다이제스트가 존재하는 메시지가 주어지면, 오라클은 저장되어 있던 다이제스트 제공

:새로운 메시지에 대한 다이제스트는 다른 모든 다이제스트와는 독립적으로 선택될 필요가 있음


비둘기집 원리

:n+1마리의 비둘기가 n개의 비둘기집에 들어가 있다면, 적어도 1개의 비둘기 집에는 2마리의 비둘기가 들어있다는 뜻


생일 공격

:일방향 해시함수의 강한 충돌 내성을 깨고자 하는 공격

:같은 해시값을 생성하는 2개의 메시지를 구하는 것


해시함수에 대한 공격

무차별공격

:약한 충돌 내성을 깨고자 하는 공격


일치블록 연쇄공격 

:h(M)=h(M'), M≠M', 같은 해시값을 갖는 메시지(M')를 골라 사용하는 공격이다.


중간자 연쇄공격 

:전체 해시값이 아니라 해시 중간의 결과에 대한 충돌쌍을 찾는다.


고정점 연쇄공격 

:메시지 블록, 연쇄변수 쌍을 얻어 연쇄변수가 발생하는 특정한 점에서 임의의 수의 동등한 블록들을 메시지 중간에 삽입해도 전체 해시값이 변하지 않는다.


차분 연쇄공격

다중 라운드 블록암호 공격 : 다중 라운드 블록암호를 사용하는 해시함수에서, 입력값과 그에 대응하는 출력값 차이의 통계적 특성을 조사하는 기법

해시함수 공격 : 압축함수의 입출력 차이를 조사하여 0의 충돌쌍을 주로 찾아내는 방법


일방향 해시함수로 해결할 수 없는 문제

:조작과 변경을 검출할 수 있지만 거짓행세를 검출하지 못한다.

:무결성외 거짓행세를 검출하기 위해 인증이라는 절차가 필요

:해결방법(메시지 인증 코드, 전자서명)


변경 감지 코드(MDC, Modification Detection Code)

:메시지가 변경되지 않았다는 것(무결성)을 보장

:키가 없는 해시함수


메시지 인증 코드(MAC)

:무결성을 확인하고 메시지에 대한 인증을 하는 기술

:키가 있는 해시함수

:전자서명보다 빠름

:키 배송 문제가 있음


축소 MAC(nested MAC)

:해싱이 2 단계(키와 메시지를 이어 붙이는 해시 과정이 2번 있음)


HMAC(Hash MAC)

:일방향 해시함수를 이용하여 메시지 인증코드를 구성하는 방법

:RFC 2104로 출판

:TLS, IPSec, SET(Secure Electronic Transaction) 프로토콜에서 사용


CMAC(Cipher-based MAC)

:NIST는 CMAC or CBC-MAC이라 부르는 FIPS 113을 정의

:암호블록연쇄(CBC)모드와 유사한 방법, N개의 평문 블록으로 부터 N개의 암호문 블록을 만든는 것이 아님


카운터 암호 블록 연쇄 - 메시지 인증 코드(CCM, Counter with Cipher Block Chaining - MAC)

:NIST에 의해 IEEE802.11 무선랜의 보안 요구사항을 지원하기 위해서 표준화되었으나, 인증 암호를 요구하는 다양한 네트워크 응용에서 사용

:CCM의 주요 알고리즘 구성요소는 (AES 알고리즘, CTR 모드, CMAC) 이다.


MAC에 대한 공격

:재전송 공격

:키의 추측에 의한 공격(무차별 공격, 생일 공격)


재전송 공격 방어 방법

순서번호

:송신 메시지에 매회 1회씩 증가하는 번호를 붙이고 MAC 값을 계산

:통신상대마다 마지막 순서번호 기록해두어야 하는 번거로움이 있음


타임스탬프

:송신 메시지에 현재 시각을 넣고, 그 이전에 메시지가 왔을 경우에 MAC 값이 바르더라도 오류라고 판단

:송·수신자 사이에 시계를 일치시켜야 함


비표

:수신자는 송신자에게 일회용의 랜덤한 값을 줌(비표)

:비표를 포함해 MAC 값을 계산하며, 데이터의 양이 약간 증가


MAC으로 해결할 수 없는 문제

제 3자에 대한 증명 : 키를 송·수신자만 가지고 있기 때문에 제 3자를 증명할 수 없음 , 전자서명을 사용하면 제 3자에 대한 증명이 가능함 

부인 방지 : 송수신자가 송수신 사실을 부인하지 못하게 하는 것인데 MAC에서는 확인할 수 없음 , 전자서명을 사용하면 부인방지 가능


키 배송 문제

:대칭키 암호를 사용하려고 하면 키 배송 문제(key distribution problem)가 발생


키 배송 문제 해결 방법

-키의 사전 공유

-키 분배 센터에 의한 해결(온라인 키 분배)

-Diffie-Hellman 키 교환

-공개키 암호


키의 사전 공유

:키 관리기관(TA,Trusted Authority)이 임의의 두 사용자에게 비밀 경로를 통하여 임의 키를 선택하여 전달 하는 방법

:n 명의 사용자 , n-1가지 키 관리

TA는  가지 키를 관리


키 분배 센터(KDC, Key Distribution Center)에 의한 해결

:암호 통신이 필요해질 때마다 키 분배 센터에 의해서 개인키 분배 센터사이에서만 키를 사전에 공유하는 방법

:n명의 사용자가 있다면 n개의 키가 필요


Diffie-Hellman 키 교환(Diffie-Hellman 키 합의)

:공개키 암호 알고리즘(최초의 비밀키 교환 프로토콜)

:KDC없이 대칭 세션키를 생성

:대칭키를 만들기 전에는 양쪽은 두 개의 수 p와 g를 선택(p는 소수, 300자리가 넘는 십진수(1024bit))

:키 교환이라는 이름이 붙어 있지만 실제로는 키를 교환하는 것이 아니라 공유할 키를 계산하여 만들어 내는 것

:이산대수 문제 사용( 에서 n을 구하는 문제)

:완전 순방향 비밀성 = 비밀키가 노출되더라도 그 후의 키 분배 과정에서 얻는 세션키의 안전성에는 영향을 미칠 수 없어야 한다는 성질


공격

-이산대수 공격

:이브(Eve)가 x,y값을 구할 수 있다면 대칭키를 계산 할 수 있게 된다.


-중간자 공격(Man In The Middle Attack)

:키 교환의 중간에 끼어들어 정상적인 전송이 되는 것처럼 보이게 하는 공격

:이런 공격에 취약한 이유는 인증단계가 없기 때문


국대국 프로토콜(STS,Station-To-Station protocol)

:공개키 인증서를 이용한 전자서명을 사용

:중간자 공격을 해결


공개키 암호

1. 수신자는 미리 암호화키(공개키)를 송신자에게 알려 준다. 이 암호화키는 도청자에게 알려져도 괜찮다.

2. 송신자는 암호화키로 세션키를 암호화하여 수신자에게 보낸다.

3. 수신자는 복호화키(개인키)로 암호문을 복호화한다.

:공개키와 개인키는 서로 밀접한 관계(수학적 관계)가 있기 때문에 각각 별개로 만들 수는 없다.

:전자문서의 무결성부인방지 기능을 갖고 있는 전자서명 구현, 다양한 암호 프로토콜에 사용 가능

:느린 암호화 속도


공개키 암호의 역사

:1976년 휘트필드 디피 & 마틴 헬만이 공개키 암호의 아이디어를 발표

:1978년 론 라이베스트 & 아디 샤미르 & 레너드 애들먼이 공개키 알고리즘과 RSA를 발표

:현재 공개키 암호의 표준은 RSA


RSA 암호시스템

:공개키 암호의 표준

:개발자 세 사람의 이름, Rivest-Shamir-Adleman

:인수분해 문제해결의 높은 난이도를 이용 

:암호화, 전자서명의 용도로 사용

:SSL 프로토콜을 가진 웹 브라우저, PGP 등 RSA 사용


키 생성

p,q 선택 , p,q는 소수 (p≠q) , (개인,선택)

N=p×q를 계산 , (공개,계산)

ø(N)=(p-1)(q-1)를 계산

정수 e를 선택, gcd(ø(N),e) = 1 , 1 < e < ø(N) , (공개,선택)

확장된 유클리드 호제법을 이용 d를 계산 de mod ø(N) = 1  , (개인,계산)

공개키 PU={e,N}

개인키 PR={d,N}


ex)

p=17, q=11

N=17×11=187

ø(N)=16×10=160

e=7 선택

d<160, de mod 160 = 1 , d=23 ∵23×7=160×1+1

PU = {7,187}

PR = {23,187}


암호화와 복호화

RSA에서는 두 개의 지수 e,d 사용(e:공개값, d:비밀값) , 공개 : e,n 비밀 : d,p,q

(암호화)

(복호화)


공격

-소인수분해 공격

:현실적인 시간 내에 소인수분해를 마칠 수 있는 효율적인 소인수분해 알고리즘이 개발되지 않는 한 RSA는 안전하다고 말할 수 있다.

:Factoring Attack

-중간자 공격

:기밀성에 대해 매우 유효한 공격

:송신자와 수신자 사이에 들어가서 송신자에 대해서는 수신자처럼, 수신자에 대해서는 송신자처럼 행세하는 공격이다.

:RSA뿐만 아니라 어떤 공개키 암호에서도 사용 가능

:중간자 공격을 막기 위해서는 공개키 인증서가 필요


권장사항

p,q (p≠q) 거의 같은 크기의 소수이어야 한다.

p-1,q-1은 커다란 소인수를 각각 가져야 한다.

p-1,q-1의 최대공약수는 작은 수이어야 한다.

메시지는 OAEP를 사용해서 패딩되어야 한다.


Rabin 암호시스템

:합성수 모듈러에 관하여 제곱근을 찾기 어렵다는 사실로부터 안전성을 얻음


암호화와복호화

:연산은 오직 한 번의 곱셈으로 이루어져 있고, 이 연산은 매우 빠르게 수행된다.

:성능이 낮은 플랫폼에서 잘 활용된다. ex)스마트카드

:복호화를 하면 동등한 확률로 4개의 평문 후보가 나타난다.


Rabin 시스템의 보안

:p,q가 충분히 크기만 하다면 안전

:시스템 복잡도는 큰 수 n을 두 개의 소수의 곱으로, 소인수분해하는 수준의 복잡도와 동일


EIGamal 암호시스템

:이산대수 문제에 근거해서 만든 공개키 암호시스템

:암호문의 길이는 평문의 약 2배

:많은 메모리 공간이 필요하며 전송 속도가 느림

:키 교환,인증,짧은 메시지의 암/복호화에 사용

:암호 소프트웨어 GnuPG에 구현


타원 곡선 암호시스템(ECC, Elliptic Curve Cryptosystem)

:이산대수의 문제에 근거해서 만든 공개키 암호시스템

:ECC는 전자상거래의 핵심 기술

:160bit ECC는 1024bit의 RSA키와 동일한 보안수준

:H/W와 S/W로 구현 용이

:스마트카드, 무선통신 단말기 등과 같이 메모리와 처리능력이 제한된 응용분야에 효율적

ECC와 RSA 방식의 비교

항목

ECC 방식

RSA 방식

기반구조

WPKI(무선)

PKI(유선)

속도

우수

느림

키 크기

상대적으로 작은 키

ECC에 비해 큰 키

적용

소형 모바일 환경

인프라가 다소 구현된 환경


대칭키 방식과 비대칭키 방식의 비교

항목

대칭키

비대칭키

키의 상호관계

암호화키=복호화키

암호화키≠복호화키

안전한 키길이

128bit 이상

2048bit 이상

암호화키

비밀

공개

복호화키

비밀

비밀

비밀키 전송

필요

불필요

키 개수

N(N-1)/2

2N

암호화 속도

빠름

느림

경제성

높다

낮다

제공 서비스

기밀성

기밀성,부인방지,인증

목적

데이터(파일) 암호화

대칭키 교환

전자서명

복잡

간단

단점

키 교환 원리가 없다

중간자 공격에 취약

해당 알고리즘

DES, 3DES, AES, IDEA

RSA, ECC ,DSA


하이브리드 암호시스템

:대칭키 암호로 속도를 높이고, 공개키 암호로 세션키를 보호

:의사난수 생성기, 대칭키 암호, 공개키 암호라는 3가지 암호기술 사용

:메시지대칭키 암호로 암호화, 암호화 한 세션키의사난수 생성기로 생성, 세션키공개키 암호로 암호화

:PGP, SSL/TLS에서 하이브리드 암호시스템 사용

:PGP에서는 하이브리드 암호시스템에 (전자서명+전자서명의 검증+개인키 관리)를 추가하여 사용 


+ Recent posts