椭圆曲线困难问题
最近学到了一个新的知识叫做双线性对映射它主要基于椭圆曲线密码学设计。之前只是大概了解椭圆曲线是做什么的但是不知道它是怎么做的今天详细了解一下。椭圆曲线困难问题是什么椭圆曲线的形式y2x3axb(4a327b2≠0)y^2x^3axb (4a^327b^2 \neq 0)y2x3axb(4a327b20)首先给出一条椭圆曲线y2x3−5x6y^2x^3-5x6y2x3−5x6上图就是一个椭圆曲线椭圆曲线上的离散对数困难问题假设椭圆曲线上有一个基点GGG选择一个整数kkk计算PkGPkGPkGPPP就表示把基点GGG进行了kkk次加法。为什么困难呢因为已知kkk和GGG,想要求PPP很快。但是反过来的话已知GGG和PPP想要求出整数kkk的话非常困难。基于上图来演示一下。在计算椭圆曲线上的加法时GQGQGQ如何计算呢首先是把两个点连成一条线二者在椭圆曲线上的交点为MMM下面再做MMM的对称点PPP此时的PPP点就是GQGQGQ的结果。也即是GQPGQPGQP。ok再看下一种情况。椭圆曲线的乘法计算如图所示基点为GGG如何求2G2G2G呢基于该点做一条切线与椭圆曲线相较于MMM此时MMM的对称点PPP就是2G2G2G的结果。即P2GGGP2GGGP2GGG同理那3GG2G3GG2G3GG2G也是同样的求法连接图中的GGG点与PPP点得到点QQQQ点的对称点WWW就是3G3G3G也就是W3GGPG2GGGGW3GGPG2GGGGW3GGPG2GGGGok重点来了如图所示假设基点为GGG重点为DDD现在求DkGDkGDkGkkk等于多少恐怕需要模拟GGG要经过多少次相加才能走到DDD而这个过程非常困难。这就是椭圆曲线的困难问题。ok那有了这个基础就可以进行基于椭圆曲线的加密了。