基于secp256k1椭圆曲线的ecc加密解密(iOS)
git clone
pod install
单独在gitHub上下载CryptoppECC并且pod安装,将pod中的CryptoppECC文件夹拖出来替换本项目的libc/CryptoppECC
便于理解以下几点
- 理解X.509证书规范,ecc椭圆曲线加密,secp256k1曲线
- 理解secp256k1曲线用于比特币密钥对和地址的生成
- 理解ecc加密在API接口的层面的应用
- openssl 用于解析X.509规范的ctr证书,并获取公钥
- BCGenerator 用于生成比特币规则的密钥对(secp256k1)
- CryptoppECC 用于ecc加密解密
- 服务器端生成ctr证书给iOS端,服务器端持有私钥
证书生成细节
- 证书符合X.509规范,同时公钥也要符合
- 采用secp256k1椭圆曲线参数
- iOS端通过解析证书拿到服务器公钥
- iOS端用公钥加密字符串,密文传输给服务器端
- 服务器端用私钥解密,拿到明文
- iOS端自己生成密钥对,把公钥给到服务器端,iOS持有私钥
- 服务器端用公钥加密,返回给iOS端后iOS私钥解密
- 关健点:iOS端和服务器持有自己的私钥,彼此的公钥
- iOS自身生成secp256k1的密钥对
- iOS端使用自己生成的密钥对加密解密
- iOS端使用证书里面的公钥加密字符串
- java端私钥解密可以参照CryptoppECC提供的java示例