标签芯片 | 读写器 | 天线 | 中间件 | 智能卡 | 生物识别 | 条码 | 制造设备 | 物流 | 零售 | 防伪 | 交通 | 停车 | 资产管理 | 动物 | 身份识别 | 军事 | 航空 | 门禁 | 一卡通
供求商机 资讯中心 产品中心 企业资料 人才招聘
 
 首页 >> 技术中心>> 正文
椭圆曲线密码体制与智能卡研究
来源:RFID射频快报   2007-4-19 14:27:01
关键词: 公钥密码算法  椭圆曲线  智能卡  Satoh算法  


提要介绍了椭圆曲线的基本知识、椭圆曲线上的密码体制及其在智能卡方面的应用。分析了安全椭圆曲线的几种构造方法,实现了特征2的有限域上安全椭圆曲线的构造。

引言

人们根据密钥的特点,将密码系统分为私钥和公钥两大密码系统。在私钥密码系统中,解密密钥和加密密钥相同或者很容易从加密密钥导出,这一特点致使加密系统变得不安全。1976年Diffie和Hellman发表了著名的“密码学的新方向”一文[1],提出公开密钥密码的思想,从此开始公钥密码的发展。在公钥密码体制中,解密密钥和加密密钥不同,从一个难于推出另一个,加密和解密是可分离的,通信双方事先无须交换密钥就可建立起保密通信。1978年由Rivest、Shamir和Adleman提出的RSA[2]方案及1984年提出的ELGamal[3]方案均属于公钥密码体制。RSA的安全性依赖于大整数分解因子问题的困难性,ELGamal的安全性则是建立在有限域上离散对数问题困难性基础上的。

随着计算机网络的迅速发展,相互之间进行通信的用户数量的增多,RSA与ELGamal公钥密码体制的公钥位数较大(一般为512比特以上)的弱点逐渐暴露出来。1985年Koblitz[4]和Miller[5]分别独立地提出利用椭圆曲线上离散对数代替有限域上离散对数,可以构作公钥位数较小的ELGamal类公钥密码。

1  椭圆曲线

定义1:设K=GF(q)(其中q=pd)为一有限域,K上椭圆曲线方程E为:

y2=x3+ax+b       (p≥5,a,b∈K,4a3+27b2≠0)

y2+xy=x3+ax+b    (p=2,a,b∈K)

满足椭圆曲线方程E的所有点及一个称为无穷远点O[6]的点所构成的集合

E(K)={(x,y)|(x,y)∈E,且x,y∈K}∪O

为该曲线的K-有理点集合,它是一个有限集,元素个数称为该椭圆曲线E的阶,记#E(K).我们在该有限集上定义一个加法运算[6],使得这些点对于该加法运算形成一个Abel群,群的单位元为无穷远点O.

定理1(Hasse不等式):设K=GF(q), E/K为有限域上的椭圆曲线,有不等式

|#E(K)-pd-1|≤2(pd)1/2成立。

定义5:设E/K为椭圆曲线,点P为其上的点,最小的满足条件rP=O,正整数r称为点P的阶。根据有限域的知识,我们知道这样的r总是存在且整除椭圆曲线阶#E(K).整数k,l,满足条件kP=lP,当且仅当k=lmod(r).

2  椭圆曲线上的密码体制

椭圆曲线上离散对数问题ECDLP定义如下:给定素数p和椭圆曲线E,对Q=kP,在已知P,Q 的情况下求出小于p的正整数k.可以证明由k和P计算Q比较容易,而由Q和P计算k则比较困难。ECDLP是比整数因子分解问题IFP和离散对数问题DLP难得多的数学难题。基于该难题,Neal Koblitz和Victor Miller[4][5]在1985年分别提出了椭圆曲线密码系统(ECC).ECC既可以用于数据加密,也可以用于数字签名。

将椭圆曲线中的加法运算与离散对数中的模乘运算相对应,将椭圆曲线中的乘法运算与离散对数中的模幂运算相对应,我们就可以建立基于椭圆曲线的对应的密码体制。

例如,对应Diffie-Hellman公钥系统,我们可以通过如下方式在椭圆曲线上予以实现:在E上选取生成元P,要求由P产生的群元素足够多,通信双方A和B分别选取a和b,a和b 予以保密,但将aP和bP公开,A和B间通信用的密钥为abP,这是第三者无法得知的。

对应ELGamal密码系统可以采用如下的方式在椭圆曲线上予以实现:

将明文m嵌入到E上Pm点,选一点B∈E,每一用户都选一整数a,0<a<N,N为阶数已知,a 保密,aB公开。欲向A送m,可送去下面一对数偶:[kB,Pm+k(aAB)],k是随机产生的整数。A可以从kB求得k(aAB).通过:Pm+k(aAB)- k(aAB)=Pm恢复Pm.同样对应DSA我们可以在椭圆曲线上构造ECDSA.

3  椭圆曲线密码与智能卡

智能卡通常用在安全性要求比较高的场合,并与密码学的应用相结合。这首先是由于智能卡能够保护并安全的处理敏感数据;而智能卡能保护密钥也是相当重要的,因为“一切秘密寓于密钥之中”,为了能达到密码所提供的安全服务,密钥绝对不能被泄密,但为安全原因所增加的成本却不能太多。

智能卡自身硬件的资源极为有限。用其实现安全系统面临着存储器容量和计算能力方面受到的限制。目前市场上的大多数智能卡有128到1024字节的RAM,1 k到16 k字节的EEPROM,6 k到16 k字节的ROM,CPU通常为8比特的,典型的时钟频率为3.57 MHz.任何存储或者是处理能力的增强都意味着智能卡成本的大幅度提高。

另外智能卡的数据传送是相对慢的,为提高应用的效率,基本的数据单元必须要小,这样可以减少智能卡与卡终端之间的数据流量,其传送时间的减少则意味着实用性的增强。

将椭圆曲线密码体制应用于智能卡的优点是:生成私钥公钥方便;节省内存空间;节省带宽,提高实用性;节省处理时间,而不需要增加硬件的处理等方面。ECC密钥短所带来的各优点恰好弥补了智能卡硬件的各种局限,不仅能有效地降低智能卡的生产成本,也能提高智能卡的实用性。

4  参数的选取

椭圆曲线上的公钥密码体制的安全性是建立在椭圆曲线离散对数的基础上,但并不是所有椭圆曲线都可以应用到公钥密码体制中,为了保证其安全性,我们必须选取安全椭圆曲线,即阶为大素数或含大素数因子的椭圆曲线为安全椭圆曲线。一般来说有四种寻找安全椭圆曲线的方法:

1)有限域GF(q)上随机生成一椭圆曲线,直接计算其阶,判断阶是否为大素数或含大素数因子,若是即确定,否则继续选取曲线,直至符合条件。

2)取具有一定特殊性椭圆曲线的系数,计算该椭圆曲线的阶,对该阶进行判断,直至找到所需要的安全曲线。

3)如果q=2m,其中m能被一个比较小的整数d整除,我们首先在有限域GF(q1)(q1=2d)上选择一椭圆曲线E‘并计算其阶,根据此值,利用Weil定理[6]计算该曲线在其扩域GF(q)上的阶,若此阶符合安全标准,我们再找曲线E‘在域GF(q)上的嵌入E,则E即为所需的安全椭圆曲线。

4)首先给出具有安全条件的曲线阶,然后构造一具有此阶的椭圆曲线。

目前国内外比较流行的计算椭圆曲线阶的算法有complex multiplication算法、SEA算法、Satoh算法[7],[8]均属于上述几种方法之一种。应用广泛的椭圆曲线公钥密码体制中大多是基于特征2的有限域上,因此寻找特征2的有限域上的安全椭圆曲线必须先予以解决,Satoh算法正是为此提出的。

5  有关Satoh算法的实现问题

作者使用Mathematica语言实现了特征2时Satoh算法。在算法实现的验证部分用到了上述方法,为了在有限域F2160上寻求安全椭圆曲线,首先在有限基域F216上随机生成一条椭圆曲线E,利用Satoh算法计算其Frobenius同态迹C,根据椭圆曲线阶的计算方法可知该曲线的阶为216+1-C.设方程x2-Cx+216=0的两个根为α,β,根据Weil共轭[6]可知该条椭圆曲线在扩域上的阶为:(216)10+1-(α10+β10),如果这个阶为大素数或含大素数因子,我们将E嵌入到F2160上就找到了一条符合密码体制要求的安全曲线。

Satoh算法的C语言实现所涉及的运算领域有:有限域Fq,2-adic环Zq和2-adic整数环Z2,各个领域的元素之间的运算是大整数的基本运算,这里q=2160.2-adic整数环Z2中元素α的形式如同α=a1+a22+a322+a423+...an2n-1+...幂级形式,ai的值或为0或为1.由于算法只需要精度precision为83=[160+62],2-adic整数环Z2中元素级数不能超出83.2-adic整数环中元素的数据结构定义为:

Typedef unsigned long BIGword;

Typedef  struct{

int  length

BIGword  value[3]

}Z2word;

两个元素的相加减运算为模283意义下的大整数的加减运算,相乘为模283意义下的乘法运算。求元素a的逆元运算采用牛顿迭代算法,迭代的初始值为1(该元素为奇数,否则无逆元),迭代公式为x←x-x(ax-1),迭代一次精度翻倍,达到所需83的精度要迭代7次。

有限域Fq上的元素α=a1+a2t+a3t2+a4t3+...a160t159,其形式为一次数不高于159次的多项式,多项式的系数或为0或为1,两个多项式相加为对应次数的系数模2加,减法与加法是一个运算。相乘为模一多项式f(t)=t160+t5+t3+t2+1意义下的乘法,在实际的运算过程中采用边乘边模的方法,也即次数出现160,就用低次多项式t5+t3+t2+1代替。求逆运算采用扩展欧几里德算法。Fq元素的数据结构定义如下:

typedef  struct {

int  length

BIGword  coef[5]

}Fqword

环Zq为2-adic整环Z2上的多项式Z2[t],模去多项式f(t)生成的理想[f(t)]所形成的商环,即Zq:=Z2[t]/[f(t)],f(t)同上。从环Zq的构造可知,Zq中元素的形式为一次数不高于159的多项式,系数为2-adic整环Z2上的元素,这样,我们可以定义Zq的元素数据结构。

typedef  struct {

int  length

Z2word  coef[159]

}Zqword

元素的加、减法运算同一般多项式运算类似,只是对应次数的系数进行加、减运算是2-adic环Z2上元素的加、减。乘法运算的处理方式如同有限域中元素乘法的运算处理。求元素a的逆运算采用牛顿迭代方法。迭代初始值求法为:首先将元素a系数模2,得到有限域上的一元素a‘,利用有限域上元素求逆方法计算出a‘的逆,a‘的逆即为迭代初始值。迭代多项式与2-adic整数环中元素的求逆迭代多项式相同。

在上述基本运算得到解决后,我们着手于椭圆曲线阶的计算。随机选取椭圆曲线y2+xy=x3+α(α为有限域中元素),利用Satoh算法可求出该曲线的阶。每给出一个α值(实际上给出了一条曲线E),就会算出该曲线的阶。

a的选取

对应曲线的点的个数

0x40582590ac00873494fc02b180ba640130acb252

0x1000000000000000000014c3ec7372a968d0b1138

0xd80c00e8008e2021384a0243012d600554e10200

0xfffffffffffffffffffed059c32e5457a83e0314

0x8992b8ca2b70624440f6003100411646002d102c

0xffffffffffffffffffff203b8ad8bf63e2891eac

作者在攻读硕士学位期间实现了素域上安全椭圆曲线构造的SEA算法,在后期学习和工作中,分别用Mathematica和C两种语言实现Satoh算法。这两个算法的实现解决了有限域上安全曲线的构造问题,对今后的研究——椭圆曲线密码体制在移动通信领域中的应用做了充分的准备工作。

6  结束语

1.分析了将安全椭圆曲线引进公钥密码体制的优点是,与目前应用较普遍的RSA算法相比,在同等安全的情况下,其所需的密钥长度远比RSA低,因而ECC的特性更适合当今电子商务需要快速反应的发展潮流,在快速加密、密钥交换、身份认证、数字签名、移动通信、智能卡的安全保密等领域,具有广阔的市场前景。

2.椭圆曲线公钥密码体制实现的关键是安全曲线的构造问题,对此本文给出了实现Satoh算法验证部分的技巧:首先计算小基域上一椭圆曲线阶,通过Weil定理可知该曲线在其有限扩域上的阶,若该阶符合椭圆曲线公钥密码体制的要求,则将曲线嵌入到其扩域上即可求得一条安全曲线。

参考文献:

[1] W Diffie,M E Hellman.NEW Directions in Cryptography[J].IEEE Trans Informat Theory,1976,IT-22:644-654.

[2] Rivest R L,Shamir A,Adleman L.A Method for obtaining Digital Signatures and Public-key Cryptosystem[J].Comm ACM,1978,21(2):120-126.

[3] L ElGamal.A Public Key Cryptosystem and Signature Scheme Base on Discrete Logarithm[J].IEEE Transactions of  information Theory,1985,31:469-472.

[4] V Miller.Use of Elliptic Curves in Cryptography[A].A M Odlyzko.Advances in Cryptology-Proceedings of CRYPTO 1986,volume 263 of Lecture Notes in Computer Science[C].New york:Springer,1986.417-426.

[5] N Koblitz.Elliptic Curve Cryptosystems[J].Mathematics of Compution,1987,48:203-309.

[6] Joseph H Silberman.The Arithmetic of Elliptic Curves[M].New York:Springer-Verlag,1986.46-61,130-136.

[7] T Satoh.The canonical lift of an ordinary elliptic curve over a finite field and its point counting[J].Ramanujan Mathematical Society,2000,15:247-270.

[8] M Fouquet,P Gaudry,R Harley.An extention Satoh‘ algorithm and its implementation[J].Ramanujan Mathematical Society,2000,15:281-318.

本文作者:华南农业大学理学院计算机系 郭艾侠

作者:郭艾侠


      
推荐 】【 打印 】【 发表评论

 相关文章
· 利用基于ECC算法的密码芯片实现安全高效的
· 智能卡的边频攻击分析及安全防范措施
· 智能卡定制推动移动业务拓展
· IC设计业“偏科”严重 企业整合成难点
· 智能卡实时监控考勤系统的设计与实现
· 基于智能卡的多表一卡管理系统的研究
· 城市社区采用双界面智能卡建立一卡通系统的
· 应对智能卡硬件攻击的软件方法
· 一卡通系统是否适合弱电总包
· 路桥射频自动识别不停车收费(ETC)系统
 最新供求
·buy 2.5 Million RFID Tag for library use
·小本创业投资赚钱好项目免费加盟家居安防专
·小投资创业赚钱好项目免费加盟防盗专卖店
·大量采购2.45G有源电子标签和读写器
·求购915MHz电子标签(量大)
·求购PA薄膜
·井下人员定位招标
·北京学校校园一卡通系统招标
·求购标签,定制也行
·求购低温银浆
 相关关键词搜索
·资讯中心公钥密码算法  椭圆曲线  智能卡  Satoh算法  
·技术中心公钥密码算法  椭圆曲线  智能卡  Satoh算法  
 
 
 
业界资讯 纵深报道 技术学院
国际资讯 | 国内资讯 | 国内企业 | 国外企业 | Global News
  重点专题
· 自动识别协会射频工作组 · RFID圈内企业动态
· RFID行业高层访谈 · 智能卡与一卡通
· RFID与食品安全 · Scan China展会专题
· 远望谷IPO之路 · RFID与医疗卫生
· NFC手机与支付 · RFID联盟产业园建设介绍
· RFID与智能交通 · 各国RFID频段标准与政策
  相关产品

汽车无钥匙进入防盗系统
LIR2450,LIR2032,LIR2025电池
ID读卡器
银行柜员身份识别指纹仪/社保指纹仪
CR2450,CR2477电池
中科虹霸虹膜识别门禁
指纹模块/生物射频指纹模块
ID模块
中科虹霸虹膜识别SDK
  推荐文章
· 美加州体育馆用RFID技术提升应急处理水平
· 德消防部门采用RFID技术管理防护服装及装置
· 瑞士零售巨头利用RFID技术防止食品腐烂变质
· 基于RFID的预付费电能表管理系统的设计
· RFID在高速公路综合管理系统中的应用设计
· 印度煤矿利用RFID技术跟踪矿工与矿下环境
· 基于RF技术的机械数码一体化防盗锁设计
· 基于MF RC500的RFID射频读写器设计
· 美国眼镜零售商使用RFID技术管理商品
· 轻量级RFID安全协议研究
  相关案例和方案
· Smartkey一卡通智能管理系统
· 高校大门智能卡安全通道管理系统
· 鹏软智能小区一卡通系统解决方案
· 基于RFID制造业物流管理解决方案
· 人员、资产管理解决方案--科思中国
· 基于RFID的智能会议签到解决方案
  相关资讯文章
· 智能卡助港澳居民重阳节经珠海过关
· 同方携手银联展示可信支付系统
· 青岛:200万医保卡明年全智能
· 支付终端机增添新的功能部件不断改变市场面
· Peratech大力宣扬基于聚合物的智能卡安全材
· 日本电子货币发卡量超1亿张
快 报 论 坛
· NORDIC最新推出 nRF24LE1= 2.4GHz + Flash
· [求助]18000-6c或者epc c1 gen2的安全机制
· 关于企业一卡通系统的几点思考
· [求助]本人初看RFID,想问一下安全方面的问
· [讨论]温度传感器与RFID的结合应用
· ADS2006A安装文件,需要的赶紧下
快 报 问 吧
· 请教em4001和em4100的区别?
· 什么芯片比A V R成本低
· 急,急死了,射频的频率标准是什么???
· UHF 18000-6b 和6c的区别
· 无限传感器网络和RFID
· TRF7960能正常读写是不是就说明能用了?
快 报 博 客
· “十一”黄金周福建接待国内外游客超过538万
· runescape supply
· 曼陀羅さん情報
· 伝票の秘密
· 中古車オークション代行のお得具合い
· 履歴書を何十年か振りで書きました

关于我们 | 广告服务 | 帮助中心 | 联系我们 | 友情链接 | 版权申明
客服电话:0531-82679069   编辑部电话:0531-82679328   节假日电话:0531-88035500   客服QQ:651127860 QQ群:41109672   MSN:RFIDinfo@126.com
版权所有©2003-2008  RFID射频快报 鲁ICP备05021498号 增值电信业务经营许可证鲁B2-20050166号