java-信息安全(十一)-非对称加密算法ECC以及ECDSA签名

时间:2021-01-10 15:06:44

概述

信息安全基本概念:

  • ECC算法(Elliptic curve cryptography,椭圆曲线密码学

一、ECC加密解密【暂时无意义】

  椭圆加密算法(ECC)是一种公钥加密*,最初由Koblitz和Miller两人于1985年提出,其数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。

  是目前已知的公钥*中,对每比特所提供加密强度最高的一种*。在软件注册保护方面起到很大的作用,一般的序列号通常由该算法产生。

  ECC算法在jdk1.5后加入支持,目前仅仅只能完成密钥的生成与解析。 如果想要获得ECC算法实现,需要调用硬件完成加密/解密(ECC算法相当耗费资源,如果单纯使用CPU进行加密/解密,效率低下).

代码地址:https://github.com/bjlhx15/algorithm-sign.git  加解密示例代码【仅有理解意义】

二、ECDSA签名

基于ECC与DSA签名算法分类信息,ECDSA(elliptic curve digital signature algorithm) 椭圆曲线数字签名算法:速度快,强度高,签名短

算法 密钥长度 默认长度 签名长度 实现的方
NONEwithECDSA 112-571 256 128 JDK/BC
RIPEMD160withECDSA 同上 256 160 BC
SHA1withECDSA ... 256 160 JDK/BC
SHA224withECDSA ... 256 224 BC
SHA256withECDSA ... 256 256 JDK/BC
SHA384withECDSA ... 256 384 JDK/BC
SHA512withECDSA ... 256 512 JDK/BC

签名示例

  代码地址:https://github.com/bjlhx15/algorithm-sign.git

 

http://baike.baidu.com/item/%E6%A4%AD%E5%9C%86%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95/10305582?sefr=cr