Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 12821|Jawab: 0

[C] Prinsip verifikasi tanda tangan digital SM2

[Salin tautan]
Diposting pada 26/06/2019 10.09.45 | | |
SM2 adalah algoritma tanda tangan digital berdasarkan kurva elips, dan penjelasan kurva elips dapat dilihat di Weibo sebelumnya tentang kurva elips, dan berikut ini adalah pengantar singkat proses tanda tangan SM2.
Untuk informasi ee yang akan ditandatangani, ini adalah informasi asli yang diperoleh melalui fungsi hash setelah pemrosesan tertentu, algoritma hashing menggunakan algoritma SM3 rahasia nasional, proses ini juga dilewati, hanya proses penandatanganan dan verifikasi kunci yang diperkenalkan.

1. Proses penandatanganan
Biarkan GG menjadi titik referensi pada kurva elips, dAdA adalah kunci pribadi, PAPA adalah kunci publik, PA=dA∗GPA=dA∗G
Hasil tanda tangan (r,s) (r,s) diperoleh dengan menandatangani EE secara digital, dan proses perhitungannya adalah:
Pertama-tama, pilih nomor acak kk, tentu saja, pilihan nomor ini dibatasi, dan dibiarkan saja untuk saat ini
Hitung r=e+x1r=e+x1, di mana (x1,y1)=k∗G(x1,y1)=k∗G
Hitung s=(1+dA)−1∗(k−r∗dA)s=(1+dA)−1∗(k−r∗dA)
Dapat dilihat bahwa bagian depan dilakukan dengan kunci pribadi.

2. Proses verifikasi tanda tangan
Memverifikasi tanda tangan adalah dengan menggunakan tanda tangan yang diperoleh, kunci publik, parameter kurva elips, dll. untuk memverifikasi tanda tangan, dan langkah utama verifikasi adalah:
Pertama, hitung t=r+st=r+s, jika t=0t=0 maka itu berarti tidak lulus.
Kemudian titik-titik pada kurva (x1,y1) = s∗G+t∗ PA (x1,y1)=s∗G+t∗ PA dihitung dengan tt dan ss
Kemudian hitung R=x1+eR=x1+e, lalu verifikasi apakah RR dan rr sama, jika sama, itu berarti verifikasi telah lulus.

3. Prinsip verifikasi
Mengapa ini dapat diverifikasi, kita sebaiknya mendapatkannya:
(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
Dapat dilihat bahwa titik pada kurva elips yang diperoleh menurut kunci publik ini konsisten dengan titik pada saat penandatanganan.
Kemudian tambahkan x1x1 ini dan informasi yang diterima untuk melihat apakah cocok dengan tanda tangan yang dikirim rr, dan itu berlalu.
---------------------
Penulis: leowang666
Sumber: CSDN
Asli: https://blog.csdn.net/hugewaves/article/details/59205914
Pemberitahuan Hak Cipta: Artikel ini adalah artikel asli oleh blogger, silakan lampirkan tautan posting blog untuk dicetak ulang!





Mantan:【Asli】Tutorial pengumpulan transfer kawat Google AdSense
Depan:Pengikatan peristiwa sudut/pengikatan atribut @HostListener, @HostBinding
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com