摘要
本文主要是使用MATLAB演示椭圆曲线加密算法(ECC)的加密/解密过程,内容包括密钥、公钥生成,以及通过加密并解密一个简单数字的过程来描述其使用方法。
本文实际是对以下两篇文章的一个MATLAB实现,并且提供了两个实用的MATLAB工具函数以便在阅读过程中可以随时检验计算的结果。本文不讲ECC数学原理,但代码中又实际用到其数学规则,所以读者应该结合下面两篇文章阅读本文。(本文更像是对下面第一篇文章内容的一个检验)
- 《ECC椭圆曲线详解(有具体实例)》
- 《Elliptic Curve Cryptography: a gentle introduction》
工具
当指定x的值时,计算区间[0,p]内所有y的值。
这个工具功能很容易理解,通俗点说就是给定x求y,y的取值范围为[0,p]
%file:ECCCal.m
%a,b为椭圆参数,p为质数,x为给定的值
function [ y ] = ECCCal( a,b,p,x )
y=[];
mm = mod(x^3+a*x+b,p);
index = 1;
for yy = 0:1:p
if mod(yy^2,p) == mm
y(index)=yy;
index=index+1;
end
end
end
如计算ECCCal(1,1,23,3)可以得到两个结果 10和13 (有多个结果是正常的不用在意,如果不限定y的范围,理论上是有无数个的)
计算(0,0)->(p,p)正方形范围内所有满足“椭圆公式“的点
使用这个工具可以方便我们将该范围内所有满足“椭圆公式”(如果看了上边说的两篇文章就知道这里的椭圆公式可不是指传统意义上的椭圆公式)的点,并将其打印出来。
%file:ECCPlot.m
%a,b分别为椭圆的参数,p为一个质数
function [x,y] = ECCPlot( a,b,p)
x=[];
y=[];

本文通过MATLAB展示了椭圆曲线加密算法(ECC)的加密和解密过程,包括密钥生成、加法运算、常量乘法的实现。借助两个工具函数,计算椭圆曲线上的点并验证操作结果。详细步骤和示例解释了ECC的工作原理。
最低0.47元/天 解锁文章
4601

被折叠的 条评论
为什么被折叠?



