전자서명

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

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

:중재 서명 방식은 서명 생성 및 검증을 중재하는 방식으로 제 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에서는 하이브리드 암호시스템에 (전자서명+전자서명의 검증+개인키 관리)를 추가하여 사용 


현대 블록 암호

:(이동, 교환, 분할, 조합), 전치 장치(Permutation, P-box), 치환 장치(Substitution, S-box), XOR연산의 조합으로 만들어진다.


S-box(혼돈,비선형 함수)

:입력비트와 출력비트의 개수가 같지 않아도 된다.

:역함수가 존재할 수 있고, 존재하지 않을 수도 있다.

:역함수가 존재하는 S-box는 입력 비트 == 출력 비트 개수가 동일


P-box(확산)

단순(Straight) P-box : 입력 비트와 출력비트는 일대일 대응, 역함수가 존재한다.

축소(Compression) P-box : 입력 비트 중 특정 비트는 소실되어 출력되지 않는다, 역함수 X

확장(Expansion) P-box : 입력 비트 중 특정 비트는 한 개 이상의 출력비트와 연결된다, 역함수 X , 비트 증가


혼돈과 확산

혼돈 : 암호문과  사이의 관계를 숨긴다.

확산 : 암호문과 평문 사이의 관계를 숨긴다. 평문의 통계적 성질을 암호문 전체에 퍼뜨려 숨긴다.


혼합 암호(Product Cipher)

:치환(Substitution) 암호와 전치(Permutation) 암호의 2가지 방법을 모두 사용하는 암호화 방법이다.


라운드(Round)

:반복적으로 사용되는 혼합 암호를 라운드라고 한다.


양자 암호

:하이젠베르크의 불확정성 원리를 응용한 암호화 방식이다.


파이스텔 암호(Feistel Cipher)

:블록 암호의 일종으로, 암호화 방식이 라운드 함수의 반복으로 이루어 진다.

:키 순서를 제외한 암호화 방식과 복호화 방식이 동일하다.

:파이스텔 구조(파이스텔 네트워크)는 3라운드 이상이며, 짝수 라운드로 구성된다.

:파이스텔 구조는 많은 블록 암호 알고리즘 (MARS, RC6, Twofish)에서 사용되고 있다.

방식

암호화하려는 정보를 길이가 같은 두 개의 정보로 쪼갠다. 이를 이라고 하고, 라운드 에서 사용되는 키를 , 그리고 라운드 함수를 로 놓는다.

암호화 과정에서는 각 라운드에서는 다음과 같은 연산이 이루어진다.

모든 라운드가 끝난 후, 최종적으로 가 암호화된 값이 된다.

복호화 과정에서는 반대의 연산이 이루어진다. 가 주어졌을 때, 각 복호화 라운드에서는 다음과 같은 연산이 이루어진다.

최종적으로 원래 값 를 얻는다.

출처:https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%B4%EC%8A%A4%ED%85%94_%EC%95%94%ED%98%B8


SPN 구조(Substitution-Permutation Network)

:평문을 여러 개의 작은 블록으로 나누고 각 블록을 S-box로 입력하여 치환하고 나온 출력값을 P-box로 전치하는 과정을 반복하는 방식이다.

:라운드 함수가 역변환이 된어야 한다.

:많은 병렬성을 제공하기 때문에 암·복호화 알고리즘의 고속화를 요구한다.


현대 스트림 암호

:동기식과 비동기식 두 가지 종류로 분류된다.


동기식 스트림 암호

:키 스트림은 평문 or 암호문 스트림독립적이다.

-One-Time Pad(가장간단하고 안전한 암호, 키의 전달과 보관이 문제) 

-FSR(귀환 함수, 시프트 레지스터로 구성) 

-LFSR(하드웨어로 쉽게 구현, 선형성 때문에 공격에 취약)

-NLFSR(LFSR보다 안전한 스트림 암호)

-OFB(Output FeedBack)모드


비동기식 스트림 암호

:키 스트림은 평문 or 암호문 스트림종속적이다.

-CFB(Cipher FeedBack)모드는 스트림 암호 생성


DES(Data Encryption Standard)

:64bit 블록 암호 알고리즘

:Feistel 구조

키의 크기 : 64bit(56bit 비밀키 + 8bit parity bit), 56bit 비밀키를 사용 라운드 키 생성기48bit 라운드 키 16개 생성

암호화 과정 : P-box 2개, 16 라운드의 파이스텔 구조

DES 함수 구조 : 확장 P-box, 키 XOR, S-box 8개, 단순 P-box 4개

취약점 : 키의 크키가 작음


3DES(Triple-DES)

:하드웨어에서 매우 효율 적, 소프트웨어에서는 비효율적이다.


키의 개수

암호화-복호화-암호화 

키의 크기 

라운드 

 2개

 DES-EDE2

 112

48

 3개

 DES-EDE3

 168

48


AES(Advanced Encrypiton Standard)

:128bit 블록 암호 알고리즘

:SPN 구조

:AES 알고리즘으로 선택된 것은 라인달(Rijndael)이다.

버전 : AES-128, AES-192, AES-256 

키의 크기 : 128bit, 192bit, 256bit, 키 확장 알고리즘으로 부터 생성되는 라운드 키의 크기는 128bit 이다.

암호화 과정 : SubBytes(바이트 치환), ShiftRows(행의 이동), MixColumns(열의 혼합), AddRoundkey(라운드 키와 XOR)

라운드 : 10라운드-128bit, 12라운드-192bit, 14라운드-256bit


기타 대칭키 암호 알고리즘

IDEA : 64bit 블록, 128bit 키, 파이스텔 구조 변형, 8라운드, S-box 사용X, DES에 비해 안전, PGP 채택

Skipjack : 64bit, 80bit 키, 32라운드, Fortezza Card에 사용

RC5 : 입출력,키,라운드 수가 가변인 블록 알고리즘, 빠른 암·복호화

SEED : 128bit 블록, 128bit 키, 16라운드, 파이스텔 구조 변형, 한국표준 블록암호 알고리즘

AIRA : 입출력 크기와 키 크기는 AES와 동일

HIGHT : 64bit 블록, 저전력·경량화를 요구하는 컴퓨팅 환경

LEA : 128bit 블록, 경량 고속 블록 암호 알고리즘, AES보다 1.5~2배 빠름, 스마트폰 보안, 사물인터넷 등 저전력 암호화에 쓸 수 있음


Feistel , SPN 알고리즘

Feistel구조 알고리즘 종류

:DES, LOKI, CAST, CAST256, Twofish, Blowfish, MISTY, RC5, RC6, E2, MARS

SPN구조 알고리즘 종류

:SAFER, SAFER+, SHARK, Square, CRYPTON, PRESENT, Serpent, Rijndael


블록 알고리즘 종류

구분 

개발국가 

개발년도 

특징 

블록크기 

키의 크기 

라운드 

DES

미국

1972

NIST에서 표준으로 공표(1977년) 

64

56

16

FEAL

일본

1987

S/W구현에 적합 

64

64

4

IDEA

미국

1990

PGP 채택 

64

128

8

SKIPJACK

미국

1990

Fortezza카드에 사용 

64

80

32

RC5

미국

1994

알고리즘 간단, 빠른 암·복호화 

64

0-256

16

MISTY

일본

1996

차분/선형공격에 안정성증명구조 

64

128

8

CRYPTON

한국

1998


128

0-256

12

SEED

한국

1999

한국표준 블록암호 알고리즘

128

128

16

 Rijndael

 벨기에

 

2000년 AES알고리즘으로 선정 

128

128,192,256

10,12,14


블록 암호 모드

모드 이름

장점 

단점 

비고 

ECB 모드

간단/고속/패딩O

병렬 처리 가능(암/복호화 양쪽)

동일한 평문은 동일한 암호문 블록을 갖음

암호문의 한 블록에서 에러가 발생하면 대응되는 평문 블록에서 에러 발생

암호문 블록의 삭제나 교체에 의한 평문의 조작 가능

재전송 공격이 가능

비권장

CBC 모드

동일한 평문은 동일한 암호문 블록을 갖지 않음

병렬 처리 가능(복호화만)

암호화에서 병렬 처리 불가능

암호문 에서 오류가 발생하면 평문 와 에서 에러가 발생

평문 블록의 한 비트 오류는 출력되는 모든 암호문에 영향을 미침

권장 

CFB 모드

패딩X

병렬 처리 가능(복호화만)

암호화에서 병렬 처리 불가능

재전송 공격이 가능

CTR모드사용이 나음 

OFB 모드

패딩X

암/복호화의 사전 준비 가능

암/복호화가 같은 구조

비트 단위의 에러가 있는 암호문을 복호화하면 평문에 대응하는 비트만 에러가 난다

병렬 처리 불가능

암호문 에서 에러가 발생하면 그 다음에 오는 평문은 모두 에러가 발생

CTR모드 사용이 나음

CTR 모드

패딩X

암/복호화 사전 준비 가능

암/복호화가 같은 구조

비트 단위의 에러가 있는 암호문을 복호화하면 평문에 대응하는 비트만 에러가 난다

병렬 처리 가능(암/복호화 양쪽)

공격자가 암호문 블록의 비트를 반전시키면 대응하는 평문 블록의 비트가 반전된다.

권장 


블록 모드 : ECB, CBC

스트림 모드 가능한 블록 모드 : CFB, OFB, CTR


블록 암호 공격

-차분공격 : 선택 평문 공격법, 두 개의 평문 블록들의 비트의 차이에 대응되는 암호문 블록들의 비트의 차이를 이용하여 사용된 키를 찾는 방법

-선형공격 : 평문 공격법, 알고리즘 내부의 비선형 구조를 적당히 선형화시켜 키를 찾는 방법

-전수공격법 : 암호화할 때 일어날 수 있는 가능한 모든 경우에 대하여 조사하는 방법, 경우의 수가 많은 경우에 실현 불가능한 방법

-통계적 분석 : 암호문에 대한 평문의 각 단어별 빈도에 관한 자료와 지금까지 알려진 모든 통계적인 자료를 이용하여 해독하는 방법

-수학적 분석 : 통계적인 방법을 포함하며 수학적 이론을 이용하여 해독하는 방법


치환 암호와 전치 암호

치환 암호 : 평문의 문자를 다른 문자로 교환하는 규칙이다.

전치 암호 : 문자 집합 내부에서 자리를 바꾸는 규칙이다.


블록 암호와 스트림 암호

블록 암호 : 평문을 일정한 크기의 블록으로 잘라낸 후 암호화 알고리즘을 적용하여 암호화한다.

스트림 암호 : 데이터 흐름(스트림)을 순차적으로 처리해가는 암호 알고리즘이며, 평문과 키 스트림을 XOR하여 암호화한다.


구분

블록 암호

스트림 암호

장점

 높은 확산, 기밀성, 해시함수

 빠른 암호화, 에러 전달X 

단점

 느린 암호화, 에러 전달O

 낮은 확산 

사례

 DES,AES, IDEA, SEED, RC5

 LFSR, MUX generator

암호화 단위

 블록

 비트 

주요 대상

 일반 데이터 전송, 스토리지 저장

 음성, 오디오/비디오 스트리밍 


링크 암호화와 종단간 암호화

링크 암호화

:물리 계층과 데이터링크 계층에서 암호화

종단간 암호화

:애플리케이션 계층에서 암호화

구분

링크 암호화

종단간 암호화

특징

 (ISP나 통신업자)가 암호화

 헤더를 포함한 모든 데이터를 암호화

 사용자가 알고리즘 통제 X

 (사용자)가 암호화

 헤더는 암호화하지 않음

 사용자가 알고리즘 통제 O 

장점

 운영이 간단

 트래픽분석을 어렵게 함

 (온라인)으로 암호화

 중간 노드에서도 (데이터가 암호문으로 존재)

 사용자 인증 등 (높은 수준의 보안 서비스를 제공 가능)

단점

 중간 노드에서 (데이터가 평문으로 노출)

 (다양한 보안서비스를 제공하는데 한계)

 모든 노드가 암호화 장비를 갖추어야하므로 네트워크가 커지면 비용 과다

 트래픽분석에 취약

 (오프라인)으로 암호화


주요 암호기술

 대칭키 암호 

 암·복호화할 때 사용하는 키가 동일한 암호 알고리즘 방식

 비대칭키(공개키) 암호

 암·복호화할 때 사용하는 키가 서로 다른 암호 알고리즘 방식

 하이브리드 암호 시스템

 대칭키 암호와 공개키 암호의 장점을 조합한 것

 일방향 해시함수

 무결성을 제공하는 기술

 메시지 인증코드

 무결성과 인증을 제공하는 암호 기술 

 전자서명

 무결성을 확인하고, 인증과 부인방지를 하기 위한 암호 기술

 의사난수 생성기

 난수열을 생성하는 알고리즘

 암호학자의 도구 상자

 하이브리드 암호 시스템을 제외한 6가지를 합한 것이 암호학자의 도구 상자


기타 암호기술

스테가노그래피

:암호화는 메지시 내용을 은폐하는 것을 의미하며, 스테가노그래피는 다른 무언가로 감추어 메시지 자체를 은폐하는 것을 의미한다.

:전달하려는 기밀 정보를 이미지 파일이나 MP3 파일 등에 암호화해서 숨기는 심층암호 기술이다.


워터마크

:원본의 내용을 왜곡하지 않는 범위 내에서 혹은 사용자가 인식하지 못하도록 저작권 정보를 디지털 콘텐츠에 삽입하는 기술을 말한다.

:(투명,가시,강한,약한)워터마킹


핑거프린팅

:디지털 콘텐츠를 구매할 때 구매자의 정보를 삽입하여 불법 배포 발견 시 최초의 배포자를 추적할 수 있게 하는 기술이다.


디지털 저작권 관리(DRM)

:디지털 미디어의 불법 또는 비인가된 사용을 제한하기 위하여 저작권 소유자판권 소유자가 이용하는 정보 보호 기술의 일종인 접근제어 기술이다.


케르크호스프의 원리(Kerckhoff's principle)

:키를 제외한 시스템의 다른 모든 내용이 알려지더라도 암호시스템은 안전해야 한다는 원리이다.


암호분석의 종류

 암호문 단독 공격(COA, Ciphertext Only Attack)

 통계적 성질, 문장의 특성 등을 추정하여 해독하는 방법

 기지 평문 공격(KPA, Known Plaintext Attack)

 암호문에 대응하는 일부 평문이 사용가능한 상황에서의 공격

 선택 평문 공격(CPA, Chosen Plaintext Attack)

 평문을 선택하면 대응하는 암호문을 얻을 수 있는 상황에서의 공격

 선택 암호문 공격(CCA, Chosen Ciphertext Attack)

 암호문을 선택하면 대응하는 평문을 얻을 수 있는 상황에서의 공격


암호기술 평가

-암호 알고리즘 평가

-암호모듈 평가

-정보보호시스템에 대한 공통 평가 기준(CC, Common Criteria), CC 기반의 정보보호제품 평가

-응용시스템 평가


암호모듈의 안정성 평가(CMVP, Cryptographic Module Validation Program)

:CMVP는 암호모듈 안전성 검증을 위한 프로그램이다.

정보보호

:정보의 (수집,가공,저장,검색,송신,수신) 중에 발생하는 정보의 (훼손,변조,유출) 등을 방지하기 위한 (관리적,기술적) 수단 또는 그러한 수단으로 이뤄지는 행위


정보보호의 목표

 기밀성

 인가된 (사람,프로세스,시스템) 만이 알필요성에 근거하여 시스템에 접근해야 한다. 

 무결성

 송수신되는 데이터의 내용이 불법적으로 (생성,변경,삭제) 되지 않도록 보호되어야 한다.

 가용성

 권한이 있는 사용자가 (데이터,서비스)를 이용할 수 있어야 한다.


정보보호 관리

 기술적 보호대책

 접근통제, 암호기술, 백업 체제

 물리적 보호대책

 (화재, 수해, 지진, 태풍) 자연재해 대책, 출입통제, 잠금 장치

 관리적 보호대책

 법, 제도, 규정, 교육


OSI 보안 구조 *OSI(Open System Interconnection) : 개방형 시스템간 상호접속

 보안 공격

 기관이 소유한 정보의 안전성을 침해하는 제반(모든) 행위

 보안 메커니즘

 보안 공격을 탐지, 예방하거나 공격으로 인한 침해를 복구하는 절차

 보안 서비스

 시스템 보안이나 데이터 전송의 보안을 보장하는 서비스


소극적 공격과 적극적 공격

:보안 공격을 X.800과 RFC 2828에 따라 분류하면 소극적 공격과 적극적 공격으로 나눌 수 있다.

 소극적 공격 

 데이터 획득 및 시스템 자원에 손상을 주지 않는 공격

 적극적 공격

 시스템 자원을 변경하거나 시스템 작동에 손상을 주는 공격


기밀성을 위협하는 공격(Passive, 소극적 공격)

 스누핑(Snooping)

 데이터에 대한 비인가 접근 또는 탈취를 의미 , 정보를 염탐하여 불법으로 가로채는 행위

 트래픽분석(Traffic analysis)

 트래픽 흐름을 관찰함으로써 정보를 추측하는 것


무결성을 위협하는 공격(Active, 적극적 공격)

 변경(Modification)

 메시지 일부를 불법으로 수정하거나 메시지 전송을 지연시키거나 순서를 뒤바꾸어 인가되지 않은 효과를 노리는 행위

 가장(Masquerading)

 한 개체가 다른 개체의 행세를 하는 것, 이 공격은 다른 형태의 적극적 공격과 병행해서 수행

 재연(Replaying)

 획득한 데이터 단위를 보관하고 있다가 시간이 경과한 후에 재전송함으로써 인가되지 않은 효과를 노리는 행위

 부인(Repudiation)

 메시지 송수신자가 송수신 사실을 부인하는 것


가용성을 위협하는 공격(Active, 적극적 공격)

 서비스 거부(DoS, Denial of Service)

 시스템의 서비스를 느리게 하거나 완전히 차단하는 공격


보안 서비스

:시스템 보안이나 데이터 전송의 보안을 보장하는 서비스

:보안 정책과 보안 메커니즘에 의해서 구현된다.

 기밀성

 소극적인 공격으로부터 데이터를 보호

 무결성

 메시지 스트림, 단일 메시지, 메시지 안의 선별된 필드에 적용

 가용성

 시스템 자원에 접근할 필요가 있거나 사용하고자 할 때 허용

 인증

 연결지향통신 : 대등 개체 인증(송수신자에 대한 인증을 제공) / 비연결지향통신: 데이터 출처 인증

 부인방지

 메시지의 송수신자가 송수신 사실을 부인하지 못하게 하는 것

 접근제어

 통신 링크를 통한 호스트 시스템과 응용 간의 접근을 제한하고 통제할 수 있는 능력


시점별 통제

:취약점을 감소시키거나 억제하기 위해 사용되는 메커니즘을 말한다.

 예방통제(Preventive Control)

 사전에 위협과 취약점을 대처하는 통제

 탐지통제(Detective Control)

 위협을 탐지하는 통제

 교정통제(Corrective Control)

 위협이나 취약점을 감소시키는 통제


+ Recent posts