椭圆曲线(ECC)加密原理随记

最近做了几道CTF的 编码类别 的题目,有个比较有意思的是名为

“社会主义核心价值观加密/解密”

的编码解码工具,其源码在Github上有,感兴趣的可以去搜一下;

在对其编码规则感兴趣的同时,期间想到了在 比特币地址 生成过程中的加密算法

椭圆曲线(ECC)加密算法

在这里插入图片描述

椭圆曲线

 

椭圆曲线是什么?

椭圆曲线是一种加密数据的方法;椭圆曲线和椭圆函数、椭圆积分等内容密切相关,著名的费马大定理的证明也与此有关。

总之,椭圆曲线是代数几何中最重要的一类研究对象。
而椭圆曲线也是公钥密码学中的一种。
 

椭圆曲线与比特币地址

比特币地址是通过 椭圆曲线数字签名算法 得到的。

  1. 首先先随机选出256位二进制数字
  2. 然后这个大随机数形成私钥
  3. 通过ECC算法,计算得出私钥对应的公钥
  4. 最后通过加密函数(BASE58函数等)来生成地址(其生成是单向的);
  5. 最后这个地址就是比特币的一个地址。
     

预知识:什么是陷门函数?

所有公钥加密算法的关键在于每种算法都有各自独特的 陷门函数(trapdoor function)。陷门函数是一种只能进行单向计算,或者单向计算更容易的函数。

举个例子:

Come on + 公钥 = sjldflk

其中Come on是初始数据,使用公钥在公钥加密算法下生成信息:sjldflk。
 
但这是个不可逆的过程,也就是说即使知道 lsjldflk 和公钥,也没办法得出Come on这个数据。
 
而在最流行的RSA公钥加密函数中,其公钥是一个非常大的数,而私钥是其公钥的两个素数因子

 

椭圆加密的陷门函数?

那么 RSAECC陷门函数有何不同?

ECC的陷门函数先在曲线上找到一个特定的点,然后使用 点函数 在曲线上找到一个新的点,接着重复使用 点函数 ,在曲线上不停的跃迁,直到找到最后一个点,即结束。

在这个过程中,我们只能知道 起点终点 ,几乎不可能知道中间经历了几次跃迁!!!

所以,ECC加密的公钥就是:起点终点 ,而私钥就是:从起点到终点需要经历多少次跃迁
 

小结

忙里偷闲瞎写了点东西,是非常基础的一个加密算法的原理,其实还有很多问题并没有说如何解决,比如:点函数产生的线段与椭圆曲线的交点过远怎么办?
 
以后啥时候想起来啥时候写吧 ~ 溜了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值