뜬금없는 signature 한 자락.
예전에, proxy signature에 대한 논문을 쓰다가, designated verifier scheme 쪽에 대해서 공부했던 적이 있었는데,
그때 참, 쉬운듯하면서 안쉬운듯한 이 designated verifier signature와 strong designated verifier signature들에 대해서
엄청 헷갈려했던 기억이 난다.
DVS는, 한마디로.. 내가 서명을 해서 주는데, 당연히 그 서명이 옳은 서명인지 아닌지를 검증해야할 필요가 있다.
그럴 경우, 지정된 검증자(designated virifier)만이 서명을 확인할 수 있도록 하는 것이다.
즉, designated virifier만이 signature를 확인할 수 있고 필요시 제삼자에게 그 서명이 signer에 의해 자신에게 발행된 서명임을 증명할 수 있게 함으로써 서명의 남용을 signer가 아닌 verifier가 통제할 수 있는 서명 방식을 말한다
DVS의 특성을 가지려면 다음 요구 조건을 만족해야 한다.
1. designated verifier만이 서명자의 signature를 확인할 수 있어야 한다. 서명자 조차도 signature를 확인할 수 없어야 한다.
2. designated verifier만이 필요시에 제삼자에게 signature가 signer에 의해 자신에게 발행된 정당한 서명임을 증명할 수 있어야 한다. signer조차도 제삼자에게 signature가 signer에 의해 verifier에게 발행된 정당한 signature임을 증명할 수 없어야 한다.
designated verifier는 한마디로,
즉, A 가 B 한테 메세지와 함께 서명을 해서 전달을 해줬는데, 제 삼자가 봤을 때는 그 서명이 A 가 한것인지 아니면 B 가 한 것인지 모르게끔 만들어야한다는 것이 이 서명 방식의 뽀인트이다.
어떻게 그것이 가능하게 하느냐. 하면, 서명을 만들어내는 기능을 A 와 B 가 같이 가지고 있으면 된다. 그럼, 나중에 B 가 갑자기 다른 마음을 품고서 "이 서명은 A 가 한것이다" 라고 주장하고 싶어도, B 역시 같은 서명을 만들어낼 수 있는 능력이 있기 때문에
제 삼자가 봤을 때는 "니가 만든거 아니냐. 니 말을 어떻게 믿냐" 라고 나올 수 있게 되는 것이다.
나는 이 DVS를 처음 접했을 때, 도대체 그래서 이 서명을 어디에 갖다 쓰겠다는 것인지가.. 정말 궁금햇는데 -_-;
아무리 찾아봐도 적합한 예가 없어서 진짜 이 scheme이 딱 와닿지 않아서 고민 많이 했었는데..
이러한 designated verifier signature는 어디에 쓰이는 것일까.
요즘은 그래도 전자투표가 활성화 되고 있는데, 나 같은 경우도 내가 그래서 전자투표를 하면.. 과연 그 투표가 count되고 있는 것이기나 한건지.. 다른 사람들이 안보고도 정말로 비밀리에 투표가 공정하게 되고 있는 것인지.. 과연 그 전자투표 과정에 공정성을 얼마나 신뢰할 수 있는지..가 참 궁금하다.
이때, 내가 투표한 것이 count 되었는지를 볼 수 있게 기관이 나한테 어떤 서명을 넣어서 메세지를 보내왔다고 하자. (즉 그 투표 기관이 signer가 되는 것이고, 나는 verifier가 되는 것이다.)
그럼 그건 나만이 검증하고, 나만 확인할 수 있어야하는 것이다.
만약 그걸 다른 사람이 보게 된다면.. 제 3자가 나한테 엄청 협박할 것 아닌가- _-ㅋ
나는 다른 사람 찍고 싶은데.. 누가 와서 나한테 명박이 찍으라고 계속 협박한다 치자. 그리고 그 결과를 보여라. 라고 말할 수 있는 것이다. 그렇다면 난 꼼짝없이 명박이를 찍어야할꺼 아닌가.
이럴 때, 나한테 역시 그 서명을 만들어낼 수 있는 기능이 있다면, 내가 회창이 찍었다는 서명을 만들어낸 후에 보여준들,
내가 진짜로 명박이 찍었다는 서명을 만들어낸 후에 보여준들, 그 제 3자는 이제 확인할 길이 없다는 것이다.
따라서, 지정된 검증자한테 서명을 만들어내는 기능이 꼭 필요하다.
흠.. 이해가 가게 쓴건지는 잘 모르겠다 @_@a;;
대충 유명한 scheme들을 쓸까 하다가.. 그건 찾아보면 다 있으니까 패쓰~