ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CL Signature
    block Chain/영지식 증명(ZKP) 2021. 9. 26. 17:56
    test

    SL Signature


    CL서명은 2001년 Jan Camensisch 와 Anna Lysyanskaya 에 의해 만들어졌으며

    익명성 강화 암호화에 사용된다.

     

    기존의 서명은 서명을 할때마다 점점 자신의 신분을 노출하게되는데

    CL서명은 이러한 경우가없고 예로 18세 이상임을 익명으로 증명할수있게된다.

     

    이렇기 위해서는 사용자(prover)는 18세 이상이라는것을 신뢰할수있는곳(issuer)에서 먼저 서명을 받고 

    검증자(verifier)에게 이 서명문을 제출하는것으로 검증하게된다.

     

    사용자는 나이 이름 주소 를 가지고 하나의 서명문을 받았다고 해도

    사용자는 검증자에게 나이만 제출할수도 있게되며

    이 서명문의 주인이라는것도 함께 증명하게된다.

     

     

    흐름


    Issuer의 공개키

    먼저 Issuer은 공개된 장소에 공개키를 노출하는데

    이때 노출하는값은 자신이 서명해줄 개인정보의 종류 수만큼의 공개키(이름,나이,주소 에 해당하는 공개키 R) 와

    모듈러스 연산에 사용될 n, 그리고 s,z를 공개한다.

     

     

    Prover의 개인정보 전달

    Prover은 자신이 서명받을 개인정보 이름,나이,주소 를 Issuer에게 전달한다.

     

    Issuer의 서명

    m 은 prover이 보내준 개인정보이고 R은 개인정보에 해당하는 공개키 들이다.

    v는 랜덤으로 생성하며

    e 는 Issuer의 공개키 , e-1은 Issuer의 개인키 이다.

    위의 공식에 따라 만들어진

    을 자신의 개인키e-1 로 복호화하여 A , e , v 를 Prover에게 보내준다.

     

     

    Prover의 검증

    Issuer에게 A, e, v 를 받은 Prover는 자신이 받은 서명문을 검사 하게된다.

    위의 수식에 필요한 값을은 모두 공개되어있고 Prover은 자신이 보낸 개인정보를 알고있으니 위의 수식을 똑같이 따라할수있다.

    이렇게 만들어진

    결과와 Issuer이 보내준 A와 e를 연산하여 이 둘이 같은 값인지를 확인하게된다.

    왜냐하면 A는 Issuer의 개인키로만 만들수있으니 자신이 만든값과 Issuer이 만든값이 같으면 이걸로 검사가 끝나게된다.

     

     

    익명 내역 발급

    CL 서명에서 중요한 기능중 하나인 익명 내역 발급은 Issuer에게 조차 자신의 정보를 노출하지않고 서명을 받는 방식을 말한다.

    이때 서명받는 정보는 Master Secret 이라 하며

    이 정보는 평문으로 Issuer에게 전달하지 않고 다른 값으로 전달하게된다.

     

    그렇다면 이 정보를 다른값으로 받은 Issuer가 서명을 하게되면 Issuer은 정상적인  Master Secret이 포함된 서명문을 만들지 못할것이다.

    그렇기에 Prover은 서명문을 한번 변경할  필요가있다.

     

    💡 왜 m0 을 연산할때는 R1인 가에 대해서는 어떤값을 넣냐에 따라 다르게 할수있다 즉 R0으로 해도 상관없다.

     

    먼저 Prover은 위의 공식에따라 연산을 하게되는데 v`은 Prover이 생성한 랜덤 값이다.

    이렇게 만들어진 U 라는 값을 Issuer에게 전달한다.

     

    그러면 Issuer은

    위와같인 연산을 하게되며 처음과 같이 A,e,v를 Issuer에게 전달한다.

     

    그럼 Prover이 검사를 할때 Issuer과 똑같은 

    를 만들수 없게 되기때문에 Issuer이 보내준 v 에 자신이 만든 랜덤값 v`를 더해 v로 만들어 연산을 하게된다.

     

    이렇게 하는것으로 자신의 비밀(Master Secret) 을 Issuer에게 노출하지않고

    마치 노출했을때 받는 서명문을 얻어 낼 수 있다.