简单椭圆曲线加密算法(ECC)示例(MATLAB实现)

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

摘要

本文主要是使用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)可以得到两个结果 1013 (有多个结果是正常的不用在意,如果不限定y的范围,理论上是有无数个的)

计算(0,0)->(p,p)正方形范围内所有满足“椭圆公式“的点

使用这个工具可以方便我们将该范围内所有满足“椭圆公式”(如果看了上边说的两篇文章就知道这里的椭圆公式可不是指传统意义上的椭圆公式)的点,并将其打印出来。


%file:ECCPlot.m
%a,b分别为椭圆的参数,p为一个质数
function [x,y] =  ECCPlot( a,b,p)

x=[];
y=[];
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iblks

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值