Finite fields(ENCYCLOPEDIA OF MATHEMATICS AND ITS APPLICATIONS, vol.20), Rudolf Lidl, 2003.djvu
2021-02-22 15:04:12 3.87MB Finite fields
1
SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法,SM2算法和RSA算法都是公钥密码算法,SM2算法是一种更先进安全的算法。 随着密码技术和计算机技术的发展,目前常用的1024位RSA算法面临严重的安全威胁,我们国家密码管理部门经过研究,决定采用SM2椭圆曲线算法替换RSA算法。 目前电力行业使用的通信数据加密也基于此算法,正好有项目需要此功能,将此界面化,供大家平时使用。 主要功能: 1、可选填SM2椭圆曲线参数 2、生成公私钥 3、具备普通字符串和16进制数据的加解密
2020-11-24 12:00:08 4.62MB SM2 加密 解密 公钥
1
整理了一份从零开始入门椭圆曲线的文档,初学者可从此文学到基本原理。
2020-01-09 03:15:30 3.96MB 椭圆曲线;
1
GMT 0003-2012(全部) SM2椭圆曲线公钥密码算法 第一部分:总则 第二部门:数字签名算法 第三部分:密钥交换协议 第四部门:公钥加密算法 第五部分:参数定义
2020-01-09 03:02:02 50.1MB SM2 0003 椭圆曲线
1
用VC++实现了在Fp(p为大素数)上的椭圆曲线密码体制的基本参数p,a b的生成。
2020-01-03 11:41:07 471KB 椭圆曲线 Ecc 参数
1
此篇论文由西北工业大学博士03年作,文件为.nh格式。专讲椭圆曲线的,本人觉得不错。
2020-01-03 11:27:33 6.35MB 椭圆曲线 论文 公钥密码 离散对数
1
对于有兴趣研究椭圆曲线加密算法及硬件实现的朋友们非常有帮助
2019-12-24 03:07:25 1.72MB ecc,椭圆曲线加密,verilog
1
### 椭圆曲线密码系统的MATLAB实现 #### 引言 椭圆曲线密码体制(Elliptic Curve Cryptography, ECC)是一种基于椭圆曲线代数结构的公钥密码技术,由Neal Koblitz和Victor Miller在1985年提出。与传统的RSA等密码系统相比,ECC能够在保证相同安全级别的前提下使用更短的密钥长度,这使得它在资源受限的设备(如智能手机、物联网设备等)中尤其受欢迎。本文旨在探讨如何使用MATLAB实现椭圆曲线密码系统,并首次尝试将其应用于汉字加密和解密。 #### 1. 椭圆曲线加密和解密的基本原理 ##### 1.1 椭圆曲线的建立 椭圆曲线密码体制依赖于一个特定的椭圆曲线,该曲线定义在一个有限域F_q上,其中q通常是一个素数或素数的幂。椭圆曲线的标准形式为: \[ y^2 = x^3 + ax + b \mod q \] 其中,\(a\) 和 \(b\) 是曲线的系数,满足 \(4a^3 + 27b^2 ≠ 0\) 来确保曲线是非奇异的。此外,还需要选定一个椭圆曲线上具有较大阶数的点 \(P\) 作为生成元。 ##### 1.2 密钥的产生 每个用户需要生成一对密钥——公钥和私钥。私钥是一个随机选取的大整数 \(d\),范围通常为 \([1, n-1]\),其中 \(n\) 是生成元点 \(P\) 的阶。公钥 \(Q\) 可通过椭圆曲线上的标量乘法计算得出,即 \(Q = dP\)。 ##### 1.3 加密过程 假设发送方 \(B\) 想要向接收方 \(A\) 发送消息 \(m\),加密过程如下: 1. 获取接收方 \(A\) 的公钥 \(Q\)。 2. 将消息 \(m\) 表示为椭圆曲线所在域中的元素。 3. 随机选取一个整数 \(k\),范围为 \([1, n-1]\)。 4. 计算点 \(R = kP\)。 5. 计算点 \(S = kQ\),若 \(S\) 的 \(x\) 坐标为 0,则返回步骤 3 重新选择 \(k\)。 6. 计算加密消息 \(C = m + x(S)\)。 7. 发送加密消息 \((R, C)\) 给接收方 \(A\)。 ##### 1.4 解密过程 接收方 \(A\) 收到密文 \((R, C)\) 后,可以通过自己的私钥 \(d\) 进行解密: 1. 计算点 \(T = dR\)。 2. 计算 \(x(T)\) 并解出原始消息 \(m = C - x(T)\)。 #### 2. MATLAB 实现 ##### 2.1 安全椭圆曲线的选择 在MATLAB中实现椭圆曲线密码系统之前,首先需要选择一条安全的椭圆曲线。通常选择形如 \(y^2 = x^3 + ax + b\) 的曲线,且 \(4a^3 + 27b^2 ≠ 0\),确保其非奇异。为了简化计算,常使用投影坐标系。 以下是一个MATLAB函数,用于根据给定的参数 \(a\)、\(b\) 和阶数 \(n\) 生成椭圆曲线上的点: ```matlab function E = EllipticCurve(a, b, n) if (4*a^3 + 27*b^2 == 0) error('Please choose safe parameters for the elliptic curve.'); end for i = 1:n for j = 1:n for k = 1:n if mod((j^2)*k, n) == mod((i^3)*k + a*i*k^2 + b*k^3, n) z = [i-1, j-1, k-1]; end end end end end ``` ##### 2.2 将汉字转化为数组 为了实现MATLAB对汉字的加密,首先需要将汉字转换为对应的ASCII码值。可以使用MATLAB内置函数完成这一任务: ```matlab function encodedStr = encodeChineseString(str) % Convert Chinese string to ASCII codes asciiCodes = double(str); encodedStr = asciiCodes; end ``` 通过以上方法,我们可以在MATLAB环境中成功实现椭圆曲线密码系统,并将其应用于汉字的加密与解密。这种技术不仅扩展了椭圆曲线密码的应用范围,也为保护敏感信息提供了更加强大的工具。
2019-12-21 22:07:46 133KB 椭圆曲线 matlab
1
使用eclipse开发的ecm大数分解算法
2019-12-21 22:03:01 64KB ecm java
1
给出椭圆曲线密码体制的公钥,私钥等参数,实现用椭圆曲线密码体制加解密文件
2019-12-21 21:53:09 415KB 椭圆曲线 ECC 加解密 C++实现
1