一:目前主流的加密密钥分为两大类:对称密钥和非对称密钥
1)对称密钥:数据发送方和接收方使用的是同一个密钥,即加密和解密的密钥是同一个(K)

2)非对称密钥:数据发送方使用接收方的公钥进行加密,接收方使用自己的私钥进行解密(GK,SK)

二: RSA算法原理分析

1.核心:如何生成公钥和私钥?如何确保加密解密后信息前后一致?

2.数学原理:
        1)原则:攻击者很难破解私钥——>大质数分解难题
        2)step1:选择两个不同的素数p,q(越大越好);
        3)step2:N=p*q;φ(N) = (p-1)*(q-1),令φ(N)等于:U,φ(N)为欧拉函数;
        4)step3:选取整数E,满足1<E<U且gcd(E,U)=1即E,U互质;
        5)step4:计算E对于U的模反元素D,E*D ≡ 1mod(U),即E*D=k*U+1,k为整数;
                          同余定理: a和b除n所得余数相等,则称“a和b对模n同余”,记为a≡b(mod n)
        6)step5:(E,N)为公钥;(D,N)为私钥

3.加密解密:
        1)加密过程
                ① 对M进行加密;
                ②密文C=M ^ E mod  N ;
        2)解密过程
                ①对C进行解密;
                ②明文M=C ^ D mod N = (M ^ E  mod  N ])^ D mod N = M^(E*D) mod N = M;

4.实用举例(引用博主“Shell>y”的博文例子):
        1)取p=103,q=97;
        2)N = 103*97=9991;φ(N) = (102-1)*(97-1)=9792 = U;
        3)E = 1213,满足 gcd(U,E) = 1,且1<E<U;
        4)1213*D - 9792*k = 1;k = 510,D = 4117;
        5)公钥(E,N)=(1213,9991);(D,N)=(4117,9991);

1)明文M=6;密文C=6^1213(mod 9991) = 7863;
        2)密文C=7863;明文M=7863^4117 mod 9991 = 6;
        3)发送明文=接收明文

三:ECC算法原理分析

1.核心:如何生成公钥和私钥?如何保证加密解密前后信息一致?

2.数学原理:
        1)原则: 攻击者很难破解私钥——>离散对数求解
        2)step1:接收方选择一条椭圆曲线Ep(a,b),并随机取椭圆曲线上一点,作基点G
        3)step2:接收方随机选择一个私钥k,并生成公钥K=kG;
        4)step3:接收方将Ep(a,b),K,G传给发送方;
        5)step4:发送方将明文编码到Ep(a,b)上一点M,并产生一个随机整数r
        6)step5:发送方,加密数据:C1=M+rK;C2=rG;
        7)step6:接收方,解密数据:C1-kC2 = M+rK-k(rG) = M +rK-r(kG) = M;

3.私密性说明:
        1)整个过程,只公开Ep(a,b),K,G,C1,C2;而解密还必须要k(私钥);
        2)椭圆曲线上,已知两个点K,G,要反向求满足K=k*G中的k是很难的,即对应数学中的求解离散对数问题。例如,已知p,g,y,求解满足y = g^x mod p的x的值,这个很难;但如果知道x,p,g,求解y = g^x mod p却很快。ECC算法正是利用这点生成了难以破解的密钥。

(2)非对称密钥加密——RSA算法ECC算法(简介)相关推荐

  1. SSL证书RSA和ECC算法区别

    RSA算法和ECC算法是目前流行的主要两种SSL证书公钥加密算法 RSA 加密算法:国际标准算法,应用较早的算法之一,普遍性更强,同比 ECC 算法的适用范围更广,兼容性更好,一般采用2048位的加密 ...

  2. ecc算法的代码实现

    ecc算法的代码实现 文章目录 ecc算法的代码实现 什么是ecc算法 有关与go语言的ecc包 具体实现流程 代码实现 使用以太坊的ecc加密算法实现 以太坊的crypto模块 sha3模块 sec ...

  3. 你不知道的对称密钥与非对称密钥

    (一)对称加密(Symmetric Cryptography) 对称密钥加密,又称私钥加密,即信息的发送方和接收方用一个密钥去加密和解密数据.它的最大优势是加/解密速度快,适合于对大数据量进行加密,对 ...

  4. c语言字符串非对称加密,RSA算法C语言实现(支持任意位密钥)

    之前分享过三种常用MD5.SHA2和AES加密算法(点这里)实现源码,前三者分别属于哈希加密和对称加密,而另一种很常用的非对称加密RSA算法实现这次分享出来.RSA算法的原理和用途大家可以网上自行搜索 ...

  5. 非对称加密 ECC算法

    ECC 算法 椭圆曲线密码学(Elliptic Curve Cryptography,缩写:ECC)是一种基于椭圆曲线数学的公开密钥加密算法. ECC的主要优势是它相比RSA加密算法使用较小的密钥长度 ...

  6. php封装一个加密算法,PHP封装的非对称加密RSA算法示例

    本文实例讲述了PHP封装的非对称加密RSA算法.分享给大家供大家参考,具体如下: 将php的openssl扩展中的非对称加密函数封装成一个Rsa类. 需要注意的是,在windows上,需要打开open ...

  7. 加密基础知识二 非对称加密RSA算法和对称加密

    一.RSA的计算过程 上述过程中,出现了公钥(3233,17)和私钥(3233,2753),这两组数字是怎么找出来的呢?参考RSA算法原理(二) 首字母缩写说明:E是加密(Encryption)D是解 ...

  8. 【工具编写】python实现非对称加密RSA算法

    python实现非对称加密RSA算法 0x01 RSA算法介绍 RSA加密算法是一种非对称加密算法.在公开密钥加密和电子商业中RSA被广泛使用.RSA是1977年由罗纳德·李维斯特(Ron Rives ...

  9. 非对称加密RSA算法原理及实际应用场景

    非对称加密RSA算法原理及实际应用场景 引言 应用场景 RSA 算法原理 数学基础 质数 欧拉定理 模指数运算 小白理解 为什么需要足够大的质数 引言 我数学差的离谱,所以我朋友去学AI,我还在这搞这 ...

最新文章

  1. Java 转换流 简介
  2. Matlab中画图以及plot函数及legend函数详解
  3. Live555研究之二Sleep实现
  4. Mybatis中的#号与$符号的区别
  5. 赛尔号什么时候支持html5,赛尔号三全能时代即将来临 你准备好了吗
  6. DNS常用记录类型和服务发现(DNS解析)
  7. c#语言程序设计上机实验,《C#语言程序设计》实 验 报 告
  8. python中的ix是啥_pandas中ix的使用详细讲解
  9. Histogram Normalization 图像直方图归一化
  10. 如何创建多个条形图_在R中创建条形图
  11. RHEL6基础三十七之系统时间修正、GRUB背景图片修改
  12. c++ 怎么输出保留2位小数的浮点数
  13. 记一次物理服务器Linux系统中未找到网卡的处理方式
  14. 在Linux下群ping脚本,Linux下使用screen和ping命令对网络质量进行监控
  15. java类和对象的详解
  16. 折合分数的公式计算机,高考分数换算公式(高考分数折合怎么算)
  17. Spring Guide:Securing a Web Application(中文大概意思)
  18. 51单片机入门(4)蜂鸣器(无源+有源)
  19. Adaptive AUTOSAR Diagnostic Manager模块介绍(一)
  20. 数据库修改DEDECMS后台密码,忘记了织梦后台密码怎么办?

热门文章

  1. ASP.NET 2.0 数据绑定概述(谭振林)
  2. Between and 对比 大于等于 小于等于
  3. 微课堂V2v4.6.6 知识付费
  4. 雅思词汇之万词plan:第7-365天
  5. css拖动音乐进度条,用css3绘制酷狗音乐闪烁的进度条
  6. 期刊(2)中文期刊查询
  7. 内网渗透:九、certutil-远程下载绕过
  8. 围绕精准农业这一议题,撰写一篇不小于3000字的论文,就其中的技术问题探讨解决方案与实验结果。...
  9. 2011年亚信联创公用研发中心AIUEGroup大史记
  10. bugkuctf 杂项-待续