1. 程式人生 > >橢圓曲線加密演算法SM2在Android用Java呼叫實現

橢圓曲線加密演算法SM2在Android用Java呼叫實現

        SM2基於ECC,ECC(Elliptic Curves Cryptography)加密演算法是一種公鑰加密演算法,與主流的RSA演算法相比,ECC演算法可以使用較短的金鑰達到相同的安全程度。近年來,人們對ECC的認識已經不再處於研究階段,開始逐步進入實際應用,如國家密碼管理局頒佈的SM2演算法就是基於ECC演算法的。

  demo下載:  https://github.com/HungryGoogle/SM2_Demo_replace_RSA/tree/master

1 呼叫函式
    SM2Utils.testSm2();
2 執行結果:
    <br/>leeTest------>: 1 ---------------------------------------
<br/>leeTest------>: privateKey = 128B2FA8BD433C6C068C8D803DFF79792A519A55171B1B650C23661D15897263 <br/>leeTest------>: pubkey = 040AE4C7798AA0F119471BEE11825BE46202BB79E2A5844495E97C04FF4DF2548A7C0240F88F1CD4E16352A73C17B7F16F07353E53A176D684A9FE0C6BB798E857 <br/>leeTest------>: userId =
[email protected]
<br/>leeTest------>: after privateKey sign, result = 304402206E0266508466EEB68C4E50D1D823101C405EEF3295859BD160811E0E455FF53002205372010CC62B1D73341982906D99EAAC4A1472618150F4D690B4D92B8BA41B0D <br/>leeTest------>: user pubkey verifyResult = true <br/>leeTest------>: 2 ---------------------------------------
<br/>leeTest------>: cipherText = 307202203DF61DE93F19AA4547DF343BD1C369CE4062C2F523FC1F111945EF1952CAD72202200245B30B374D0ECB3FB140DBEB01BB66D307A7B2254CD74E4C1602701A504CFA0420AD353782C492BE55041B394B7CB2DB8BFC664E2F6F2C78DA1B726BA83A424463040AEE6592603C35E9891EA9 <br/>leeTest------>: plainText = HelloWorld <br/>leeTest------>: End --------------------------------------- 3 文章來自於 http://blog.csdn.net/moonshine99/article/details/79426665

相關推薦

橢圓曲線加密演算法SM2在AndroidJava呼叫實現

        SM2基於ECC,ECC(Elliptic Curves Cryptography)加密演算法是一種公鑰加密演算法,與主流的RSA演算法相比,ECC演算法可以使用較短的金鑰達到相同的安全程度。近年來,人們對ECC的認識已經不再處於研究階段,開始逐步進入實際應用

ECC橢圓曲線加密演算法

橢圓曲線加密也是一種公鑰加密演算法,和RSA與離散對數一樣,它也是基於一個數學求解的難題,並且它的難度比RSA和離散對數都要大,它基於的數字難題就是求取定義在橢圓曲線上的離散對數的求取難題,對於這個難題的描述比大數分解和離散對數要稍微複雜一些,不過它也還算比較形

簡單橢圓曲線加密演算法(ECC)示例(MATLAB實現

摘要 本文主要是使用MATLAB演示橢圓曲線加密演算法(ECC)的加密/解密過程,內容包括金鑰、公鑰生成,以及通過加密並解密一個簡單數字的過程來描述其使用方法。 本文實際是對以下兩篇文章的一個MATLAB實現,並且提供了兩個實用的MATLAB工具函式以便在閱

橢圓曲線加密演算法

  橢圓曲線密碼學(Elliptic curve cryptography),簡稱ECC,是一種建立公開金鑰加密的演算法,也就是非對稱加密。類似的還有RSA,ElGamal演算法等。ECC被公認為在給定金鑰長度下最安全的加密演算法。比特幣中的公私鑰生成以及簽名演算法ECDSA都是基於ECC的。下面簡單介紹E

c++ 簡單的實現橢圓曲線加密演算法

橢圓曲線演算法 橢圓曲線密碼體制來源於對橢圓曲線的研究,所謂橢圓曲線指的是由韋爾斯特拉斯(Weierstrass)方程: y2+a1xy+a3y=x3+a2x2+a4x+a6 (1) 所確定的平面曲線。其中係數ai(I=1,2,…,6)定義在某個域上,可以是有理數域、實數域

橢圓曲線加密演算法的證書

網上介紹openssl建立RSA演算法的證書很多,但是建立橢圓曲線證書的少。即使這些介紹橢圓曲線的,都不對,創建出來的證書無法使用。 最終基於該開源工具成功建立了: http://sourceforge.net/projects/xca/

手把手的操作——java呼叫科大訊飛的離線語音識別dll實現離線識別(JNA實現)(一)

#用java呼叫科大訊飛的離線語音識別dll實現離線識別(JNA實現)(一) 本人接的任務,做離線語音識別,用的是科大訊飛的離線識別,java不支援離線了,所以下載了windows的離線包,用JNA進行呼叫。之前用的是jni,但是一直沒有測試通過,本人又不會C++,研究了一個星期終究

手把手的操作——java呼叫科大訊飛的離線語音識別dll實現離線識別(JNA實現)(二)

上一篇講到了最難的地方,引數的轉換,這裡單獨寫出來 ** 三、引數的轉換(難點) ** 注:本文是以訊飛提供的C語言例子作為模板改寫,語音來源於檔案 1、先分析提供的例子 本人使用的是VS2010 下載連結連結:https://pan.baidu.com/s/

如何給小學生講清楚ECC橢圓曲線加密

對於RSA這套公私鑰加密的思路,我以為我挺明白的,運用的嫻熟自如。 當然現在RSA用的不多,而是基於ECC曲線來做簽名驗籤,最大名鼎鼎的莫過於比特幣。 可是前兩天和別人講程式碼,被問了ECC為什麼可以用來做驗籤,發現自己講不清楚。 所以做了點功課,來把這個問題講清楚。 首先我們跳過ECC曲線是個啥這個話題,這

離散對數和橢圓曲線加密原理

序言 現代公鑰加密系統中,常用的加密演算法除了RSA還有離散對數加密和橢圓曲線加密。這兩者原理比較相似,在這裡一併介紹。 離散對數問題 我們在中學裡學的對數問題是指, 給定正實數aa和axax,求xx。也就是計算x=logaaxx=lo

合婚演算法JAVA實現本命卦合婚法

  問題:我輸入 男方的生日:1980-01-01  01:01:01 女方生日:1980-01-01  01:01:01    跪求這樣一個八字合婚演算法    合婚軟體似乎很多,關鍵是怎麼去寫或者說演算法,網路上幾乎沒有類似文章   作為易學高手的我(大師♂羅莊)對告

雙向加密演算法aes 在Java 中的應用

package com.noahgroup.paas.cicd.rest.apollo.test; import java.security.Key; import java.security.SecureRandom; import java.util.Base64; import jav

橢圓曲線加密學習的菜鳥入門

橢圓曲線:一個更好的trapdoor構件 橢圓曲線是滿足特定數學等式的點的集合。橢圓曲線的方程像如下的樣子:   它的影象:   還有其他形式的橢圓曲線的表達形式,但是一般的橢圓曲線方程,一個變數為2階,一個變數為3階。它有一些好的屬性用於加密。 1.奇怪的對稱性 它是水平

java呼叫oracle儲存過程總結

這段時間開始學習寫儲存過程,主要原因還是因為工作需要吧,本來以為很簡單的,但幾經挫折,豪氣消磨殆盡,但總算搞通了,為了避免後來者少走彎路,特記述與此,同時亦對自己進行鼓勵。 一:無返回值的儲存過程 儲存過程為: CREATE OR REPLACE PROCEDURE TES

區塊鏈中的密碼學(三)-橢圓曲線加密算法分析

自己的 愛好 focus 一個數 如果 imp 變化 關註 bre 在目前密碼學的非對稱加密算法中,RSA算法依然是一種主流,但是隨著比特幣中對於一種之前不太流行的算法:橢圓加密算法(ECC)的成功應用後,這種算法得到了很大的關註和普及。有一種說法是中本聰不信任RSA算法,

java程式設計實現Diffie-Hellman演算法

Diffie-Hellman金鑰交換程式碼如下: import java.util.ArrayList; import java.util.List; import java.util.Random; import java.math.*; public class DH

什麼是橢圓曲線加密(ECC)?

轉載自http://8btc.com/article-138-1.html,一次沒看明白記錄下來多看幾次。 比特幣使用橢圓曲線演算法生成公鑰和私鑰,選擇的是secp256k1曲線。與RSA(Ron Rivest,Adi Shamir,Len Adleman三位

八字易經演算法JAVA實現 地藏十神排法

  序:我們的排盤系統基本做好了。就剩下兩個問題 地藏十神排法 大運起始或者說幾歲上運演算法了   需要的文章:   這裡說下就可以了      地支藏幹 子藏癸 卯藏乙 午藏丁己  酉藏辛             寅藏 甲丙戊  巳藏 丙庚戊  申藏 庚壬戊 

GF(p)上的ELGamal型橢圓曲線密碼詳解(Java實現

出版 his display 集合 避免 其中 密鑰 整數 參考文獻 GitHub 橢圓曲線密碼   橢圓曲線密碼(Elliptic Curve Cryptosystem),簡稱ECC,是Neal Koblitz和Victor Miller於1985年提出的。   研究發

java程式碼實現各種經典排序演算法

1、交換類排序:氣泡排序 ,時間複雜度O(n2,n的2次方),穩定型排序。 package SoreAlgorithm; public class SortAlgorithm { public static void main(String args[]) { in