Elgamal密码系统

Elgamal密码系统是一种非对称加密算法,通过选取特定参数生成群Ep(a, b)。加密过程涉及使用generator point G和私钥、公钥的计算,解密时利用私钥对加密信息进行还原。例子展示了在E11(1,6)上计算点的加法操作,以理解算法的实际应用。" 104944935,5003989,Type A1椭圆曲线双线性群初始化,"['双线性曲线', 'Type a1', '曲线参数初始化']
摘要由CSDN通过智能技术生成
function [x3,y3,lamda]=add(x1,y1,x2,y2,a,p)
%方法(Elgamal密码系统):
%1. 选取p约等于2^180和整数a, b得到群Ep(a, b), 公开;
%2. 选取generator point G=(x1, y1), 满足:G的阶n是一个非常大的素数,公开;
%3. Alice 选取nA<n为私人密钥,并产生公开密钥PA=nA?G是Ep(a, b)中的点;
%4. Bob选取nB<n为私人密钥,并产生公开密钥PB=nB?G是Ep(a, b)中的点;
%5. Alice, Bob分别产生秘密密钥: K= nA*PB= nA*(nB*G)= nB*PA.
%加密:
%  Alice要发报文Pm给Bob,取随机数k,并将Pm加密为:
%                      Cm={kG, Pm+kPB} 
%解密(Bob):
%      Pm+kPB?nB(kG) = Pm+k(nBG)-nB(kG)=Pm
%例:考虑E11(1,6)上的点,G=(2,7),计算2G到13G的值
%2G=G+G 
%对应的命令为 (x,y)=add(2,7,2,7,1,11)
if x1==x2 & y1==y2
    lamda=rem((3*x1^2+a)*myinver(2*y1,p),p);
else
    lamda=rem((y2-y1)*myinver(x2-x1,p),p);
end
if la
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值