到了SM9後,SM9是基於身分的加密Identity-based cryptography去做到的,那麼什麼是基於身分的加密呢?
簡單說就是我們使用身分來當作公鑰,目前可以當身分的有姓名、信箱、身分證、電話號碼、銀行帳號等,其中電話號碼很常被當作舉例,因為身分證當公鑰會有危險,銀行帳號也是有風險。
但從密碼學的ECC角度來看,會先有私鑰才會有公鑰(選擇一個亂數=私鑰,再用亂數算出公鑰),但基於身分的加密是先有公鑰才會有私鑰,這是不同的地方。
為了解決有公鑰再計算私鑰,可以使用公鑰基礎設施Public key infrastructure,簡稱PKI。PKI會把自己的主私鑰和使用者的公鑰搭配一起,就能當作使用者的私鑰。
而基於身分的加密使用到的技術是ECC和雙線性配對Bilinear pairing,ECC前面就提到過了,雙線性配對是一個很好理解的數學,他就像e(ax,by)=e(x,aby)=e(abx,y),a和b可以換移位置。
SM9的加解密、密鑰交換、簽章都之後再說了!