ecc是橢圓曲線密碼,利用橢圓曲線來實現的密碼技術的統稱,java中ecc加密通過使用JPBC庫調用ECC橢圓曲線加解密算法,能夠編寫簡單的實驗代碼進行正確的ECC加密和解密。
為什麽使用橢圓曲線加密算法?
RSA的解決分解整數問題需要亞指數時間復雜度的算法,而目前已知計算橢圓曲線離散對數問題(ECDLP)的最好方法都需要全指數時間復雜度。這意味著在橢圓曲線系統中我們只需要使用相對於RSA 短得多的密鑰就可以達到與其相同的安全強度。
例如,壹般認為160比特的橢圓曲線密鑰提供的安全強度與1024比特RSA密鑰相當。使用短的密鑰的好處在於加解密速度快、節省能源、節省帶寬、存儲空間。
比特幣以及中國的二代身份證都使用了256 比特的橢圓曲線密碼算法。
ecc算法的過程是怎樣的?
1、公私鑰生成:
Alice首先構造壹條橢圓曲線 E E E,在曲線上選擇壹點 G G G作為生成元,並求 G G G的階為 n n n,要求 n n n必須為質數。
Alice選擇壹個私鑰 k ( k < n ) k (k < n) k(k