`
bbeenn
  • 浏览: 3608 次
  • 性别: Icon_minigender_1
  • 来自: 甘肃
最近访客 更多访客>>
社区版块
存档分类
最新评论

ecc

ecc 
阅读更多

 

2002年,美国SUN公司将其开发的椭圆加密技术赠送给开放源代码工程

公钥密码体制根据其所依据的难题一般分为三类:大整数分解问题类、离散对数问题类、椭圆曲线类。有时也把椭圆曲线类归为离散对数类。

椭圆曲线密码体制来源于对椭圆曲线的研究,所谓椭圆曲线指的是由韦尔斯特拉斯(Weierstrass)方程:

y2+a1xy+a3y=x3+a2x2+a4x+a6 (1)

所确定的平面曲线。其中系数ai(I=1,2,…,6)定义在某个域上,可以是有理数域、实数域、复数域,还可以是有限域GF(pr),椭圆曲线密码体制中用到的椭圆曲线都是定义在有限域上的。

椭圆曲线上所有的点外加一个叫做无穷远点的特殊点构成的集合连同一个定义的加法运算构成一个Abel群。在等式

mP=P+P+…+P=Q (2)

中,已知m和点P求点Q比较容易,反之已知点Q和点P求m却是相当困难的,这个问题称为椭圆曲线上点群的离散对数问题。椭圆曲线密码体制正是利用这 个困难问题设计而来。椭圆曲线应用到密码学上最早是由Neal Koblitz 和Victor Miller在1985年分别独立提出的。

椭圆曲线密码体制是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。解椭圆曲线上的离散对数问题的最好算法是Pollard rho方法,其时间复杂度为,是完全指数阶的。其中n为等式(2)中m的二进制表示的位数。当n=234, 约为2117,需要1.6x1023 MIPS 年的时间。而我们熟知的RSA所利用的是大整数分解的困难问题,目前对于一般情况下的因数分解的最好算法的时间复杂度是子指数阶的,当n=2048时,需 要2x1020MIPS年的时间。也就是说当RSA的密钥使用2048位时,ECC的密钥使用234位所获得的安全强度还高出许多。它们之间的密钥长度却 相差达9倍,当ECC的密钥更大时它们之间差距将更大。更ECC密钥短的优点是非常明显的,随加密强度的提高,密钥长度变化不大。

德国、日本、法国、美国、加拿大等国的很多密码学研究小组及一些公司实现了椭圆曲线密码体制,我国也有一些密码学者做了这方面的工作。许多标准化组 织已经或正在制定关于椭圆曲线的标准,同时也有许多的厂商已经或正在开发基于椭圆曲线的产品。对于椭圆曲线密码的研究也是方兴未艾,从 ASIACRYPTO’98上专门开辟了ECC的栏目可见一斑。

在椭圆曲线密码体制的标准化方面,IEEE、ANSI、ISO、IETF、ATM等都作了大量的工作,它们所开发的椭圆曲线标准的文档有:IEEE P1363 P1363a、ANSI X9.62 X9.63、 ISO/IEC14888等。

2003年5月12日中国颁布的无线局域网国家标准 GB15629.11 中,包含了全新的 WAPI(WLAN Authentication and Privacy Infrastructure)安全机制,能为用户的WLAN系统提供全面 的安全保护。这种安全机制由 WAI和WPI两部分组成,分别实现对用户身份的鉴别和对传输的数据加密。WAI采用公开密钥密码体制,利用证书来对 WLAN系统中的用户和AP进行认证。证书里面包含有证书颁发者(ASU)的公钥和签名以及证书持有者的公钥和签名,这里的签名采用的就是椭圆曲线ECC 算法。

加拿大Certicom公司是国际上最著名的ECC密码技术公司,已授权300多家企业使用ECC密码技术,包括Cisco 系统有限公司、摩托罗拉、Palm等企业。Microsoft将Certicom公司的VPN嵌入微软视窗移动2003系统中。
以下资料摘自:http://www.hids.com.cn/data.asp

公钥密码系统的加密算法ECC与RSA的对比
第六届国际密码学会议对应用于公钥密码系统的加密算法推荐了两种:基于大整数因子分解问题(IFP)的RSA算法和基于椭圆曲线上离散对数计算问题 (ECDLP)的ECC算法。RSA算法的特点之一是数学原理简单、在工程应用中比较易于实现,但它的单位安全强度相对较低。目前用国际上公认的对于 RSA算法最有效的攻击方法--一般数域筛(NFS)方法去破译和攻击RSA算法,它的破译或求解难度是亚指数级的。ECC算法的数学理论非常深奥和复 杂,在工程应用中比较难于实现,但它的单位安全强度相对较高。用国际上公认的对于ECC算法最有效的攻击方法--Pollard rho方法去破译和攻击ECC算法,它的破译或求解难度基本上是指数级的。正是由于RSA算法和ECC算法这一明显不同,使得ECC算法的单位安全强度高 于RSA算法,也就是说,要达到同样的安全强度,ECC算法所需的密钥长度远比RSA算法低(见表1和图1)。这就有效地解决了为了提高安全强度必须增加 密钥长度所带来的工程实现难度的问题。(见表2)

分享到:
评论

相关推荐

    ECC_C语言ECC_ECC算法_ecc_ECCC实现_

    ECC,全称为椭圆曲线密码学(Elliptic Curve Cryptography),是一种基于数学难题——椭圆曲线上的离散对数问题的公钥加密技术。它在信息安全领域中被广泛应用,因为其安全性高且密钥长度相对较短,使得计算效率更高...

    明文嵌入式ECC加密方案_明文嵌入式ECC加密方案_ECC嵌入式加密_

    ECC,全称为椭圆曲线密码学(Elliptic Curve Cryptography),是一种先进的公钥加密技术,被广泛应用于嵌入式系统中,因为其在安全性和效率方面具有显著优势。在明文嵌入式ECC加密方案中,我们通常会涉及到以下几个...

    ECC.zip_C++ 椭圆_ECC算法_椭圆 加密_椭圆曲线ecc_椭圆曲线算法

    相比传统的RSA等加密算法,ECC在安全性和效率上具有显著优势。在C++环境下实现ECC算法,可以有效地进行数据加密与解密,保障信息安全。 首先,我们来理解椭圆曲线的基本概念。椭圆曲线是一类代数几何对象,其数学...

    ECC算法c代码

    ECC(Error Correction Code,错误纠正码)是一种用于检测和纠正数据传输或存储过程中可能出现错误的技术。在IT领域,特别是嵌入式系统和存储设备中,ECC算法扮演着至关重要的角色,它能够提高数据的可靠性,确保...

    256字节ECC代码

    ### 256字节ECC代码:深入解析与应用 #### ECC算法概览 **错误纠正码(Error Correction Code,简称ECC)**是一种在数据传输或存储过程中用于检测和纠正错误的编码技术。其核心在于能够在不重传原始数据的情况下...

    C++实现ECC算法

    ECC,全称为椭圆曲线密码学(Elliptic Curve Cryptography),是一种基于数学难题——椭圆曲线离散对数问题的公钥加密算法。它在安全性与效率方面相较于传统的RSA算法具有显著优势,尤其在处理小尺寸密钥时。在通信...

    verilog_ecc_gen

    本项目"verilog_ecc_gen"专注于实现ECC(错误检测和校正码)的生成,特别是针对8位和16位数据流的编码。 ECC是一种有效的错误检测和纠正技术,特别是在存储器系统和数据传输中,它可以检测并修正由于噪声或硬件故障...

    ECC算法(基于openssl)

    ECC,全称为椭圆曲线密码学(Elliptic Curve Cryptography),是一种现代的公钥加密算法,以其高效性和安全性而被广泛应用于网络安全领域。基于OpenSSL库的ECC算法,能够实现包括密钥生成、加密和解密在内的多种功能...

    ECC数字签名的实现(C语言)

    ECC,全称为椭圆曲线密码学(Elliptic Curve Cryptography),是一种现代的公钥加密算法,以其高效性和安全性在信息安全领域广泛应用。在本文中,我们将深入探讨ECC数字签名的实现,主要关注C语言的编程实践。 首先...

    ECC加密算法源代码

    **椭圆曲线加密算法(ECC)** 椭圆曲线加密算法是一种先进的公钥加密技术,以其高效性和安全性在现代密码学中占据重要地位。ECC是基于数学中的椭圆曲线理论构建的,与传统的RSA、DSA等算法相比,ECC在相同的安全...

    基于fpga的ecc算法实现

    **基于FPGA的ECC算法实现** 在现代电子系统中,数据存储的可靠性至关重要,特别是在非易失性存储器(如NAND Flash)中。错误校验和纠正代码(Error Correction Codes,简称ECC)是一种有效提高数据完整性的技术。...

    NAND FLASH中的ECC校验

    ### NAND Flash中的ECC校验详解 #### 一、引言 随着计算机技术的发展,数据存储设备变得越来越重要。在众多存储解决方案中,NAND Flash因其高密度、低成本等特点成为了移动设备、固态硬盘等存储领域的首选。然而,...

    ECC的verilog代码

    **错误校验编码(Error Correction Code,ECC)在数字电子系统中扮演着至关重要的角色,尤其是在内存和数据传输领域。Verilog是一种硬件描述语言,用于设计和验证数字系统的逻辑功能。本篇将深入探讨ECC在Verilog中...

    ECC算法 C#实现代码

    ECC,全称为椭圆曲线密码学(Elliptic Curve Cryptography),是一种先进的加密技术,广泛应用于现代网络安全,包括数字签名、密钥交换和身份验证等领域。C#是一种常用的编程语言,尤其在开发Windows应用程序和游戏...

    ECC和RECC的区别

    在众多服务器内存技术中,ECC(Error Checking and Correcting)和RECC(Register ECC)是两种常见的内存类型,它们在实现错误检查和纠正技术方面有着显著的区别。正确理解和选择这两种内存类型,对于确保服务器的...

    ECC密钥生成、加密解密、签名验签工具

    ECC(椭圆曲线密码学)是一种现代的公钥加密技术,因其安全性高、效率优良而被广泛应用在网络安全、数字签名以及身份验证等领域。在这个项目中,开发者使用C语言和Visual Studio 2010创建了三个工具:ECC密钥生成器...

    FLASH-ECC校验算法的C语言实现

    **标题:“FLASH-ECC校验算法的C语言实现”** 在存储系统中,尤其是在嵌入式设备中,Flash存储器由于其非易失性、低功耗和高密度等特点,被广泛使用。然而,Flash存储器在多次读写操作后可能会出现数据错误,这是...

    SAP ECC6.0 IDES 带测试数据

    根据给定文件的信息,我们可以提炼出的关键知识点主要围绕"SAP ECC6.0 IDES"及其包含的测试数据展开。下面将对这些知识点进行详细的解读与扩展。 ### SAP ECC6.0 IDES概述 #### 1. SAP ECC6.0简介 SAP ECC ...

    ECC的标准C语言设计与实现

    ### ECC的标准C语言设计与实现 #### 摘要与背景 随着信息技术的快速发展与广泛应用,信息安全变得尤为重要。为了确保数据传输过程中的安全性,各种密码技术应运而生。其中,椭圆曲线密码系统(Elliptic Curve ...

    32bit ecc纠错verilog代码 输入数据位宽为32位,生成6位纠错码,内含仿真文件

    在电子设计自动化(EDA)领域,错误检测与校正(Error Correction Code,ECC)是保障数据传输和存储可靠性的重要技术。本资源提供了一个32位ECC纠错的Verilog代码实现,它专为处理32位数据宽度设计,并能生成6位纠错...

Global site tag (gtag.js) - Google Analytics