![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
密码学
Heisenberg_888
互联网工程师,努力学习中
展开
-
公钥密码体制概述
1976年,Whitefield Diffie和Martin Hellman在论文《密码学的新方向》(New Directions in Cryptography)中提出一个设想:用户A有一对密钥:加密密钥,和解密密钥,公开,保密。若B要给A发送加密信息,他需要在公开的目录中查出A的公开(加密)密钥,用它加密消息;A收到密文后,用自己秘密保存的解密密钥解密密文,由于别人不知道,即使截获了密文,也无...原创 2019-03-25 20:38:31 · 12195 阅读 · 0 评论 -
圆锥曲线条件4a3+27b2 !=0
圆锥曲线有个要求,为什么呢,看个图像比如a=-3,b=2时就不满足这个条件,看的图像:随便换个满足条件的结论:该条件保证方程中不会出现非奇异点以获得平滑的椭圆曲线下图展示了一些合法的椭圆曲线下图展示了两种非法的椭圆曲线,分别存在一个尖点和叉点使曲线不平滑。reference:http://www.eeworld.com.cn/mp/Latticesemi...原创 2019-04-12 15:35:46 · 919 阅读 · 0 评论 -
椭圆曲线加密体制和解密算法
假设接收方为B,发送方为A,A将消息加密后传送给B(注:加法和乘法都是定义在GF(P)上的运算)。1.加密过程(1)A将明文消息编码成一个数m<p,并在椭圆群中选择一点(2)在区间[1,n-1]内,A选取一个随机数k,计算点P1:P1=(x1,y1)=kG;(3)依据接收方B的公钥,A计算点(4)A计算密文(5)A传送加密数据给接收方B。2.解密过程(1)接收方B收到加密数据...原创 2019-03-29 10:03:47 · 1401 阅读 · 0 评论 -
自信息量,熵及其性质
一般地,如果一个随机事件有种等可能的结果,那么对其编码恰需要n位二进制数,即n比特来储存消息。因此,可以把对所有可能消息的最小二进制编码位数近似着作该随机事件的熵,记为H。对于上面的例子分别有定义2.3 随机事件,发生概率的对数的相反数定义为该随机事件的自信息量,记作。设的发生概率为,则其自信息为当,即随机事件,不发生时,定义为无限大;当,即随机事件为确定事件必然发生时,;...原创 2019-04-02 14:53:33 · 11919 阅读 · 0 评论 -
零知识证明
零知识证明Zero Knowledge Proof 是由S.Goldwasser等人在20世纪80年代首先引入的。零知识证明是一种密码协议,该协议的一方称为证明者(Prover),通常用P表示,协议的另一方是验证者(Verifier),一般用V表示。零知识证明是指P试图使V相信某个论断是正确的,但却不向V提供任何有用的信息,或者说在P论证的过程中V得不到任何有用的信息。也就是说,...原创 2019-04-01 16:12:35 · 1640 阅读 · 0 评论 -
快速取模指数
#include<bits/stdc++.h>using namespace std;int main(){ int a,b,p; cin>>a>>b>>p; int res=1; while(b) { int t=a%p; if(b&1) res=(res*t)%p; a=t*t%p; b>&g...原创 2019-03-27 11:42:21 · 1259 阅读 · 0 评论 -
ElGamal加密原理和代码实例
具体原理和证明过程参见ElGamal加密体制,看个例子:假设发送方为A,接收方为B,B选择素数p=13171,生成元g=2,私钥x=23。A欲用EIGamal算法将消息m=nupt加密为密文C后传送给B。消息m按英文字母表a=00,b=01,…,z=25编码,求加解密过程。原题是bupt,我的代码中用的是nuptlovebupt(南邮)。#include<bits/stdc...原创 2019-03-26 21:27:17 · 7168 阅读 · 1 评论 -
ElGamal加密体制
ElGamal加密体制的公私密钥生成过程如下。(1)随机选择一个满足安全要求的大素数p,并生成有限域。的一个生成元;(2)选一个随机数x(1<r<p-1),计算,则公钥为(y,g,p),私钥为x。1.加密过程与RSA密码体制相同,加密时首先将明文比特串分组,使得每个分组对应的十进制数小于,即分组长度小于,然后对每个明文分组分别加密。具体过程分为如下几步:(1)得到接收方的...原创 2019-03-26 19:56:30 · 10879 阅读 · 0 评论 -
C+实现RSA加密解密
这份代码对应的公钥密钥如下:p=43,q=59,e=13。消息m,按照字典序a=00,b=01,...,z=25。n=2537,=2436e=13,私钥d=937#include<bits/stdc++.h>using namespace std;string e_to_binary(int e)//模指数转二进制数{ string str="";...原创 2019-03-25 22:24:38 · 8298 阅读 · 7 评论 -
环签名定义
原创 2019-04-15 10:30:06 · 790 阅读 · 0 评论