椭圆曲线加密法
来源:互联网 发布:吴昕的淘宝店铺网址 编辑:程序博客网 时间:2024/05/03 18:14
一种相对比较新的技术--椭圆曲线加密系统,已经逐渐被人们用做基本的数字签名系统。椭圆曲线作为数字签名的基本原理大致和RSA与DSA的功能相同,并且数字签名的产生与认证的速度要比RSA和DSA快。
下面我们简单的介绍一下椭圆曲线和椭圆曲线上的密码算法。
1. 有限域上的椭圆曲线
设K表示一个有限域,E是域K上的椭圆曲线,则E是一个点的集合:
E/K = { ( x, y ) | y2+a1xy+a3y=x3+a2x2+a4x+a6,a1,a3,a2,a4,a6x, y, K }
{ O } 其中O表示无穷远点。
在E上定义‘+’运算,P + Q = R,R是过P、Q的直线与曲线的另一交点关于x轴的对称点,当P = Q时R是P点的切线与曲线的另一交点关于x轴的对称点。
这样,( E, + )构成可换群( Abel群),O是加法单位元(零元)。
椭圆曲线离散对数问题(ECDLP)定义如下:给定定义在K上的椭圆曲线E,一个n阶的点P∈E/K,和点Q∈E/ K,如果存在l,确定整数l, 0≤l≤n-1,Q = lP。
我们知道,RSA是基于因子分解,其算法的核心就是如何寻找大数的因子分解,但ECDLP是比因子分解难得多的问题。
椭圆曲线上的加法: P + Q = R(如果曲线三点在一条直线上,则三点和为0)
椭圆曲线上一点的2倍: P + P = R(一个点的两倍是它的切线与曲线的另一个交点).
以上的椭圆曲线是连续的,不适合用来进行加密,因此我们必须把椭圆曲线变成离散的点。因此,我们要把椭圆曲线定义在有限域上(顾名思义,有限域是一种只有由有限个元素组成的域)。
下面,我们给出一个有限域Fp,这个域只有有限个元素。
Fp中只有p(p为素数)个元素0,1,2 …… p-2,p-1;
Fp 的加法(a+b)法则是 a+b≡c (mod p);即,(a+b)÷p的余数 和c÷p的余数相同。
Fp 的乘法(a×b)法则是 a×b≡c (mod p);
Fp 的除法(a÷b)法则是 a/b≡c (mod p);即 a×b-1≡c (mod p);(b-1也是一个0到p-1之间的整数,但满足b×b-1≡1 (mod p))。
Fp 的单位元是1,零元是 0。
同时,并不是所有的椭圆曲线都适合加密。y2=x3+ax+b是一类可以用来加密的椭圆曲线,也是最为简单的一类。下面我们就把y2=x3+ax+b 这条曲线定义在Fp上:
则满足下列方程的所有点(x,y),再加上无穷远点O∞,构成一条椭圆曲线。
y2=x3+ax+b (mod p)
其中 x,y属于0到p-1间的整数,并将这条椭圆曲线记为Ep(a,b)。
Fp上的椭圆曲线同样有加法,但已经不能给以几何意义的解释。不过,加法法则和实数域上的差不多。
2.椭圆曲线上简单的加密/解密
- 椭圆曲线加密法
- 椭圆曲线加密ECC
- 椭圆曲线ECC加密实例
- 使用椭圆曲线进行加密解密
- 椭圆曲线加密学习的菜鸟入门
- 离散对数和椭圆曲线加密原理
- 使用椭圆曲线进行加密解密
- 椭圆曲线
- 椭圆曲线
- 椭圆曲线
- 通过椭圆曲线加密生成序列号,终于成功了
- 比特币加密技术之椭圆曲线密码学
- 万云BaaS | 椭圆曲线加密教程【上篇】
- Windows序列号产生原理(椭圆曲线法)
- 密码学中的椭圆曲线
- 椭圆曲线入门详解
- 椭圆曲线ECC加密算法
- 椭圆曲线ECC加密算法
- ioctl()获取本地网卡设备信息
- Play!连接MySQL配置
- Oracle中如何复制表结构和表数据进行备份
- 天使说:好人创业先谈钱,坏人只和你谈理想
- CF#280 (Div. 2) B.(益智)
- 椭圆曲线加密法
- java中,进行Json转换时出错:java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeE
- Android中自定义属性的使用------res/values文件下定义一个attrs.xml
- Overview of the TREC-2011 Microblog Track
- 拓扑排序
- Linux等待队列
- Java开发框架Play框架快速入门
- c++ leetcode 算法题 Best Time to Buy and Sell Stock II
- bootstrap之双日历时间段选择控件—daterangepicker(汉化版)