SM2 е алгоритъм за цифров подпис, базиран на елиптични криви, а обяснението на елиптичните криви може да се види в предишния Weibo относно елиптичните криви, а по-долу е кратко въведение в процеса на SM2 подпис. За да бъде подписана информацията, това е оригиналната информация, получена чрез хеш функцията след определена обработка, хеширащият алгоритъм използва националния таен 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 =sG+(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 Уведомление за авторски права: Тази статия е оригинална от блогъра, моля, прикачете линк към блог публикацията за препечатване!
|