内容简介:椭圆曲线密码学(英语:Elliptic Curve Cryptography,缩写:ECC)是一种基于椭圆曲线数学的公开密钥加密算法。椭圆曲线在密码学中的使用是在1985年由Neal Koblitz和Victor Miller分别独立提出的。ECC的主要优势是在某些情况下它比其他的算法(比如RSA加密算法)使用更小的密钥并提供相当的或更高等级的安全。ECC的另一个优势是可以定义群之间的双线性映射,基于Weil对或是Tate对;双线性映射已经在密码学中发现了大量的应用,例如基于身份的加密。不过一个缺点是加密和
什么是椭圆加密算法
椭圆曲线密码学(英语:Elliptic Curve Cryptography,缩写:ECC)是一种基于椭圆曲线数学的公开密钥加密算法。椭圆曲线在密码学中的使用是在1985年由Neal Koblitz和Victor Miller分别独立提出的。
ECC的主要优势是在某些情况下它比其他的算法(比如RSA加密算法)使用更小的密钥并提供相当的或更高等级的安全。ECC的另一个优势是可以定义群之间的双线性映射,基于Weil对或是Tate对;双线性映射已经在密码学中发现了大量的应用,例如基于身份的加密。
不过一个缺点是加密和解密操作的实现比其他机制花费的时间长。
代码实现
var Aprivate, Apublic [32]byte //产生随机数 if _, err := io.ReadFull(rand.Reader, Aprivate[:]); err != nil { os.Exit(0) } curve25519.ScalarBaseMult(&Apublic, &Aprivate) fmt.Println("A私钥", base64.StdEncoding.EncodeToString(Aprivate[:])) fmt.Println("A公钥", base64.StdEncoding.EncodeToString(Apublic[:])) //作为椭圆起点 var Bprivate, Bpublic [32]byte //产生随机数 if _, err := io.ReadFull(rand.Reader, Bprivate[:]); err != nil { os.Exit(0) } curve25519.ScalarBaseMult(&Bpublic, &Bprivate) fmt.Println("B私钥", base64.StdEncoding.EncodeToString(Bprivate[:])) fmt.Println("B公钥", base64.StdEncoding.EncodeToString(Bpublic[:])) //作为椭圆起点 var Akey, Bkey [32]byte //A的私钥加上B的公钥计算A的key curve25519.ScalarMult(&Akey, &Aprivate, &Bpublic) //B的私钥加上A的公钥计算B的key curve25519.ScalarMult(&Bkey, &Bprivate, &Apublic) fmt.Println("A交互的KEY", base64.StdEncoding.EncodeToString(Akey[:])) fmt.Println("B交互的KEY", base64.StdEncoding.EncodeToString(Bkey[:]))
输出值
A私钥 7i3ADsF/e47UHxdZW1dP5R+OO4wZjK8lHIvW0Y65CZY= A公钥 DTyAub5yB+ZpPJl0D6jcL7RPu0elDBcWxlBkP9DaCFY= B私钥 dnkaHZ8BouXCuZTcjDwAmrsZhGd8WMrLhsYsisdd1dQ= B公钥 ob63R56KbVqQghFDfB6qMX0/8kKYy4ZkIKacAaedw3o= A交互的KEY yn6TpBZprWR+pr++lFJFOEawNJ/gp2grLvYLBS8pjDY= B交互的KEY yn6TpBZprWR+pr++lFJFOEawNJ/gp2grLvYLBS8pjDY=
完整演示代码 点击这里
联系 QQ: 3355168235
以上所述就是小编给大家介绍的《Golang 椭圆加密算法实现》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 兄弟连区块链教程Fabric1.0源代码分析ECDSA椭圆曲线数字签名算法
- 有趣的椭圆曲线加密
- UWP 将图片裁剪成圆形(椭圆)
- css3实现椭圆轨迹旋转
- 每日一个css效果之自适应椭圆
- 区块链语言Solidity校验椭圆曲线加密数字签名(附实例)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入理解Android内核设计思想(第2版 套装上下册)
林学森 / 人民邮电出版社 / 2017-7-1 / 158
全书从操作系统的基础知识入手,全面剖析进程/线程、内存管理、Binder机制、GUI显示系统、多媒体管理、输入系统、虚拟机等核心技术在Android中的实现原理。书中讲述的知识点大部分来源于工程项目研发,因而具有较强的实用性,希望可以让读者“知其然,更知其所以然”。本书分为编译篇、系统原理篇、应用原理篇、系统工具篇,共4篇25章,基本涵盖了参与Android开发所需具备的知识,并通过大量图片与实例......一起来看看 《深入理解Android内核设计思想(第2版 套装上下册)》 这本书的介绍吧!