본문 바로가기

보안/정보보호이론

안전한 서명 (Security Model for Signature)

안전한 서명이 되려면?


1) Strong Unforgeability 

- 어떠한 공격자도 유효한 (메시지, 시그니처)의 쌍을 생성할 수 없다.


2) 만약 forgery가 성공하려면?



- 이 게임은 공개키로 자신이 원하는 메시지의 전자 서명을 알 수 있다.

- 이때 서명 오라클(signing oracle)을 사용하지 않고 인증이 가능한 (메시지, 시그니처) 쌍을 생성해야 한다.

- 또는 높은 확률로 forgery가 성공하면 게임에서 승리 한다.

- 역으로 말하면 안전함을 보여주려면 어떠한 공격도 성공하지 못함을 보여주면 된다.



Blind Signature




다음과 같은 조건이 성립하면 된다. 은행을 예제로 들어 설명한다.


1) Unforgeabiligy 

- 이 코인은 누구나 만들 수 없다.

-> 은행에서 coin을 발급한다고 할 때 이 때 coin은 은행의 시그니처가 된다. (해결)


2) Anonymity (익명성) 

- 얼마인지 등 정보가 들어가서는 안된다. 

- bank는 client가 어느 shop에서 구매했는지 몰라야 한다.

-> 편지 봉투 겉에 서명을 하여 내용을 모르게 한다. (해결)


3) Prevention or Detection of double spending 

- 똑같은 돈을 2번 사용할 수 없다.

-> 은행이 돈을 받음으로서 detection이 가능하다. (해결)



Blind Signature의 안전성


1) strong unforgeability

2) blindness : 서명을 한 사람은 어떤 메시지에 서명을 했는지 알 수 없다.



Blindness



 - 여기서 서명한 사람(signer)이 승리하려면 어떤 메시지에 서명을 했는지 알아내면 된다.

 - 단 여기서 블라인드된 s로 부터 m을 유추할 수 는 없다 (블라인드된 s로부터 m을 유출할 수 없다)


1) 은행은 client에게 (m,s)를 보낸다.


2) 클라이언트는 받은 (m,s)를 서명해서 은행에게 보낸다.


3) 은행에게 받은 (m,s)를 가게에게 보낸다.


4) 가게는 받은 (m,s)를 은행에게 보낸다.


5) 만약 클라이언트가 같은 (m,s)을 2번 보내면 client의 익명성을 폐지 시킨다.



Proxy Signature


만약 signer이 출장을 가면 권한을 위임해야 한다.


p -----위임(delegation)------> s


p : normal signature

s : proxy signature 


s의 proxy signature 생성은 권함을 위임받은 사람만 만들 수 있다.

이때는 p도 만들 수 없다.

둘이 만들 경우 s가 만들었음을 보장할 수 없기 때문이다.


1) Proxy signature의 안정성

- Strong Unforgeability : 본래의 signer도 유효한 proxy signature를 생성할 수 없다.


2) Verifiability 

- 인증하는 사람은 본래의 signer가 이 사실에 대해 동의했음을 납득해야한다.


3) Strong Identifibility 

-어떠한 사람도 proxy signer의 정체를 확인할 수 있다.


4) Strong Undeniability 

- Proxy Signer은 그의 서명생성을 거부할 수 없다.


이 때 4번은 1번이 성립해야 가능하다.



'보안 > 정보보호이론' 카테고리의 다른 글

키 (Key)  (0) 2015.03.05
신원확인 방법 (Entity Authentication)  (0) 2015.03.05
Discrete Logarithm Based Problem  (0) 2015.03.04
RSA (Rivest, shamir, adelman)  (8) 2015.03.04
공개키 (Public Key)  (0) 2015.03.03