• 椭圆曲线加密和rsa对比


    最近在导师的要求下接手了基于欧洲标准的车联网项目中的安全层,需要学习密码学,以及网络安全的相关内容,这里做一个总结

    引用的大部分内容为一个西安的大佬(哈哈我老家也是西安的),大佬主页:https://my.csdn.net/qq_30866297
    

    正文:

    关于椭圆曲线的基础知识这里不讲,网上很多,下面记录一下重点
    

    一:椭圆曲线上的简单加密/解密
    公开密钥算法总是要基于一个数学上的难题。比如RSA 依据的是:给定两个素数p、q 很容易相乘得到n,而对n进行因式分解却相对困难。那椭圆曲线上有什么难题呢?

    考虑如下等式:
    K=kG [其中 K,G为Ep(a,b)上的点,k为小于n(n是点G的阶)的整数]
    不难发现,给定k和G,根据加法法则,计算K很容易;但给定K和G,求k就相对困难了。
    这就是椭圆曲线加密算法采用的难题。我们把点G称为基点(base point),k(k<n,n为基点G的阶)称为私有密钥(privte key),K称为公开密钥(public key)。

    现在我们描述一个利用椭圆曲线进行加密通信的过程:

    1、用户A选定一条椭圆曲线Ep(a,b),并取椭圆曲线上一点,作为基点G。
    2、用户A选择一个私有密钥k,并生成公开密钥K=kG。
    3、用户A将Ep(a,b)和点K,G传给用户B。
    4、用户B接到信息后 ,将待传输的明文编码到Ep(a,b)上一点M(编码方法很多,这里不作讨论),并产生一个随机整数r(r<n)。
    5、用户B计算点C1=M+rK;C2=rG。
    6、用户B将C1、C2传给用户A。
    7、用户A接到信息后,计算C1-kC2,结果就是点M。因为
    C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M
    再对点M进行解码就可以得到明文。

    在这个加密通信中,如果有一个偷窥者H ,他只能看到Ep(a,b)、K、G、C1、C2 而通过K、G 求k 或通过C2、G求r 都是相对困难的。因此,H无法得到A、B间传送的明文信息。

    密码学中,描述一条Fp上的椭圆曲线,常用到六个参量:
    T=(p,a,b,G,n,h)。
    p 、a 、b 用来确定一条椭圆曲线,
    G为基点,
    n为点G的阶,
    h 是椭圆曲线上所有点的个数m与n相除的整数部分

    这几个参量取值的选择,直接影响了加密的安全性。参量值一般要求满足以下几个条件:

    1、p 当然越大越安全,但越大,计算速度会变慢,200位左右可以满足一般安全要求;
    2、p≠n×h;
    3、pt≠1 (mod n),1≤t<20;
    4、4a3+27b2≠0 (mod p);
    5、n 为素数;
    6、h≤4。

    二:密钥交换算法(Diffie-Hellman)

    我做的这个项目貌似要用Diffie-Hellman密钥交换算法,相关的算法还有RS等,这里一起介绍了吧

    使用对称加密算法时,密钥交换是个大难题,所以Diffie和Hellman提出了著名的Diffie-Hellman密钥交换算法。
    Diffie-Hellman密钥交换算法原理:

    Alice与Bob确定两个大素数n和g,这两个数不用保密

    Alice选择另一个大随机数x,并计算A如下:A=gx mod n

    Alice将A发给Bob

    Bob 选择另一个大随机数y,并计算B如下:B=gy mod n

    Bob将B发给Alice

    计算秘密密钥K1如下:K1=Bx mod n

    计算秘密密钥K2如下:K2=Ay mod n

    理论上K1=K2,因此Alice和Bob可以用其进行加解密

    RSA加密算法是基于这样的数学事实:两个大素数相乘容易,而对得到的乘积求因子则很难。加密过程如下:

    (1)选择两个大素数P、Q

    (2)计算N=P*Q

    (3)选择一个公钥(加密密钥)E,使其不是(P-1)与(Q-1)的因子

    (4)选择私钥(解密密钥)D,满足:(D*E) mod (P-1)(Q-1)=1

    (5)加密时,明文PT计算密文CT:CT=PTE mod N

    (6)解密时,从密文CT计算明文PT:PT=CTDmodN

    这篇文章就总结到这里,后面引用http://blog.sciencenet.cn/home.php?mod=space&uid=223843&do=blog&id=452565本文来自文勇刚科学网博客。

    指导我接下来毕设的论文写作思路:

    个人分类: 安全层实现

  • 相关阅读:
    列举ASP.NET 页面之间传递值的几种方式
    SQL Server 2010附加数据库失败:无法打开物理文件拒绝访问解决方法
    运行出现错误是:未能加载文件或程序集 CrystalDecisions.Web Version=10.2.3600,找不到它的依赖项,并且问题出现在web.config里面
    快捷键
    VS中出现无法嵌入互操作类型
    Java模拟试题(2015-9-2)
    IDEA 的配置文件导入命名空间
    第四章、程序计数器
    IDEA建Mappper.xml
    第三章、运行时数据区概述及线程
  • 原文地址:https://www.cnblogs.com/xiaocongcong888/p/9487686.html
Copyright © 2020-2023  润新知