SM2는 타원 곡선을 기반으로 한 디지털 서명 알고리즘이며, 타원 곡선에 대한 설명은 이전 웨이보에서 확인할 수 있고, 다음은 SM2 서명 과정에 대한 간략한 소개입니다. 서명할 정보 ee는 특정 처리 후 해시 함수를 통해 얻은 원본 정보이며, 해싱 알고리즘은 국가 비밀 SM3 알고리즘을 사용합니다. 이 과정도 생략되고 키 서명 및 검증 과정만 도입됩니다.
1. 서명 절차 GG를 타원 곡선의 기준점이고, dAdA를 개인 키, PAPA를 공개 키, PA=dA∗GPA=dA∗G 서명 결과 (r,s)(r,s)는 EE에 디지털 서명을 통해 얻어지며, 계산 과정은 다음과 같습니다: 우선, 무작위 숫자 kk를 선택하세요. 물론 이 숫자의 선택은 제한되어 있으니 지금은 그대로 두세요 r=e+x1r=e+x1을 계산하는데, 여기서 (x1,y1)=k∗G(x1,y1)=k∗G s=(1+dA)−1∗(k−r∗dA)s=(1+dA)−1∗(k−r∗dA)를 계산합니다. 앞부분은 개인 키로 처리된 것을 알 수 있습니다.
2. 서명 검증 과정 서명 검증은 얻은 서명, 공개 키, 타원 곡선 매개변수 등을 사용하여 서명을 검증하는 것이며, 주요 검증 단계는 다음과 같습니다: 먼저 t=r+st=r+s를 계산하는데, 만약 t=0t=0이면 통과하지 못했다는 뜻입니다. 그 다음 곡선 위의 점 (x1,y1) = s∗G+t∗ PA (x1,y1)=s∗G+t∗ PA는 tt와 ss로 계산됩니다. 그 다음 R=x1+eR=x1+e를 계산한 후 RR과 rr이 같은지 확인하면, 검증이 통과된 것입니다.
3. 검증의 원칙 이것이 검증될 수 있으니, 다음과 같이 유도하는 것이 좋습니다: (x1,y1)=s∗G+t∗PA =s∗G+(r+s)∗PA =s∗G+(r+s)∗dA∗G=(1+dA)∗s∗G+r∗dA∗G=(1+dA)∗(1+dA)−1∗(k−r∗dA)∗G+r∗dA∗G=(k−r∗dA)∗G+r∗dA∗G=k∗G(x1,y1)=s∗G+t∗PA =s∗G+(r+s)∗PA =s∗G+(r+s)∗dA∗G=(1+dA)∗s∗G+r∗dA∗G=(1+dA)∗(1+dA)−1∗(k−r∗dA)∗G+r∗dA∗G=(k−r∗dA)∗G+r∗dA∗G=k∗G 공개 키에 따라 얻은 타원 곡선의 이 점이 서명 시점과 일치함을 알 수 있습니다. 그 다음 x1x1과 받은 정보를 더해 전송된 서명 rr과 일치하는지 확인하면 통과합니다. --------------------- 저자: leowang666 출처: CSDN 원본: https://blog.csdn.net/hugewaves/article/details/59205914 저작권 고지: 이 글은 블로거의 원본 기사입니다. 재인쇄를 위해 블로그 게시물 링크를 첨부해 주세요!
|