首页 > 其他分享 >非对称密钥的,签名和验签,可否理解为另一种加密和解密???

非对称密钥的,签名和验签,可否理解为另一种加密和解密???

时间:2023-05-06 16:44:37浏览次数:45  
标签:椭圆 私钥 17 和验 公钥 密钥 ECC 非对称 mod

背景

  • 突然有人这么一给我干蒙了!

非对称首先想到的是 RSA DSA

  • RSA 也是我们比较熟悉的对称算法 也用的比较多 私钥 公钥
    • 比如 gitlab ssh
    • openssh、生成秘钥、rsa秘钥
  • DSA 用的少 也是非对称的签名算法 也要用到公钥红河私钥

另外一个不常用的 非对称算法 ECC

下面简单的验证一下 RSA的概念的计算过程

  • 原理:基于大数分解困难的 和欧若拉函数 来实现的
    • 例如 两个质数A,B 相乘得到一个 P 但是你很难P推断出两个质数
  • 公钥私钥的过程演示:
  • 1 选择两个质数p 和 q 计算乘积
    • 例如 :phi(12) = 4 有四个质数 1、5 、7 、 11
    • 随机选择两个 p= 7 、p= 11 即n= 7 * 11 = 77
  • 2 计算欧公式 phi(n) = (p-1)(q-1) : (7-1) * (11-1) = 60
  • 3 选择选择一个整数 e作为公钥且 1 < e < phi(n) 并且和phi(n)互质
    • e 选取为 17 得到公钥(n,e)= (77,17)
  • 4 计算私钥d 满足ed ≡ 1(mod phi(n)) 即:d为e的模phi(n)的逆元
    • 使用拓展欧力几德算法得到: d=53 得到私钥(n,d)= (77,53)
  • 5 使用公钥对明文进行加密 ,得到密文C = M^e(mod n)
  • 选择 M =25 C = b^e(mod n) = 00011001 ^ 17(mod 77) = 59
  • 6 使用私钥对密文进行解密 ,得到密文M = C^d(mod n)
    • 选择 C = 59 M = C^e(mod n) = 59^ 53 (mod 77) = 25
下面简单的验证一下 ECC 的概念的计算过程
  • ECDH 是对DH和ECC算法改进和拓展

  • ECDSA 也是对DSA和ECC算法改进和拓展

  • ECC原理:利用椭圆曲线在在有限的上的离散对数

    • 任意取椭圆曲线上两点P、Q 做直线(若P、Q两点重合,则做P点的切线),
    • 交于椭圆曲线的另一点R,那么规定 P + Q + R = 0,也就是 P + Q = - R。
    • P+Q 做椭圆运算 ,给定的n和p则有最高次幂的算法来计算Q=nP 可以算出Q
      • 但是如果Q和P,需要找到n呢?就很难,这就是离散对数数学问题
  • 公钥私钥的过程演示:

  • 1 选择合适的椭圆曲线E 也就是二元方程(至关重要不可泄露)

    • 例如 y²= x³+ax+b
    • a、b为常数 a=1 、b = 6 得到 y²= x³+x+1
  • 2 选择一个点G作为基点且G必须满足其阶n位素数 (至关重要不可泄露)

    • 在有限域上计算在模数p情况下得到
      • x =0 ,y² =6 不满足整数解
      • x =1 ,y² = 8 不满足整数解
      • x =2 ,y² =16 解为y=4或y=-4,其中y=4满足方程
  • 选定一个起点G,可以是椭圆曲线上的任意一点;

    • 选择起始点为 G = (0,1),私钥为 n = 5,已知椭圆曲线上的点为(2,4)
      • G = (0,1);
      • n = 5;
  • 4 计算公钥 P = nG

    • 2G = (2,-3)
    • 3G = (0,-1)
    • 4G = 自相撞
    • 5G = 4G + G = 自相撞
    • 得到 P = nG = 5G = (0,-1)
  • 5 计算私钥 Q = n(x,y)

    • 2n = (2,4) + (2,4) = (3,3)
    • 3n= 自相撞
    • 4n = 自相撞
    • 5n = (3,3) + (2,4) = (6,10)
    • 得到 Q = n(x,y) = 5(2,4) = (6,10)
  • 6 使用公钥对明文进行加密

    • 首先选择一个随机数 k,例如 k = 17。
    • 第一部分 : 计算点 C = kP = 17(0,-1) = (8,15)
    • 第二部分: s = kQ + m = 17(6,10) + 123 = (195,343)
    • 完整密文 (C,s) = ((8,15),(195,343))
  • 7 使用私钥对密文进行解密

    • 对点 C 进行 k 倍的计算得到 kP = 17(0,-1) = (8,15)。
    • 计算 s - kQ = (195,343) - 17(6,10) = 123

标签:椭圆,私钥,17,和验,公钥,密钥,ECC,非对称,mod
From: https://www.cnblogs.com/guanchaoguo/p/17377159.html

相关文章

  • 完善接口:输出值班医生的电话,查询小程序的密钥
    接口的开发:输出值班医生的电话我发现我之前创建的管理员的表是多余的,我可以直接借用若依自带的表来做。其中还有这角色,正好符合添加值班医生,而且后台管理的前端页面是有着功能的,这样更为方便,也可以添加值班医生的信息,我将自带的实体类导入到项目代码的指定的位置。根据角色和管......
  • Android dtbo(3) 编译和验证
    您可以使用设备树编译器(DTC)编译设备树源文件。不过,在将叠加层DT应用于目标主DT之前,您还应该通过模拟DTO的行为来验证结果。1.通过DTC进行编译构建主DT.dts的示例命令:dtc-@-Odtb-omy_main_dt.dtbmy_main_dt.dts构建叠加DT.dts的示例命令:dtc-@-Odtb......
  • MATLAB代码:基于非对称纳什谈判的多微网电能共享运行优化策略
    MATLAB代码:基于非对称纳什谈判的多微网电能共享运行优化策略关键词:纳什谈判合作博弈微网电转气-碳捕集P2P电能交易交易参考文档:《基于非对称纳什谈判的多微网电能共享运行优化策略》仿真平台:MATLABCPLEX+MOSEK/IPOPT主要内容:该代码主要做的是微网间基于非对称纳什谈判......
  • MATLAB代码:基于非对称纳什谈判的多微网电能共享运行优化策略
    MATLAB代码:基于非对称纳什谈判的多微网电能共享运行优化策略关键词:纳什谈判合作博弈微网电转气-碳捕集P2P电能交易交易参考文档:《基于非对称纳什谈判的多微网电能共享运行优化策略》完美复现仿真平台:MATLABCPLEX+MOSEK/IPOPT主要内容:该代码主要做的是微网间基于非对称......
  • NYK --ssh密钥指定与GTFObins
    主机发现sudonmap-sn192.168.28.0/24tcp端口扫描sudonmap-sT--min-rate10000-p-192.168.28.33-oAnmapscan/portstcp版本扫描sudonmap-sT-sC-sV-O-p22,80192.168.28.33-oAnmapscan/detial udp扫描sudonmap-sU--top-ports20-p-192.168.28.33-oA......
  • [github]创建SSH密钥,并连接github
    一、Windows环境下生成SSHkey且连接GitHubstep1、看看是否存在SSH密钥(keys)首先,我们需要看看是否看看本机是否存在SSHkeys,打开GitBash,并运行:$cd~/.ssh#检查你本机用户home目录下是否存在.ssh目录如果,不存在此目录,则进行第二步操作,否则,你本机已经存在ssh公钥和私钥......
  • 【密码】量子密钥分发密钥率仿真附MATLAB代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 非对称加密算法的两种应用:签名与加密
    非对称加密的特点在于:首先:有一对私钥和公钥,其中私钥加密的东西,只能对应公钥解密。反之,公钥加密的东西,只能对应私钥解密。换种角度讲,私钥可以用来加密、用来解密(与之相对的公钥可以用来解密、用来加密)。其次:公钥可以公开传播,私钥需要私密保存。利用这两点我们可以实现加密通信......
  • token的创建和验证
    创建tokenpublicclassJWTUtil{privatestaticfinallongEXPIRE_TIME=3*60*1000;//默认3分钟//私钥privatestaticfinalStringTOKEN_SECRET="privateKey";publicstaticStringcreateToken(UserEntityuserMode......
  • Diffie-Hellman密钥交换算法
    目录前置知识密钥交换算法隐私计算常用到各种加密算法,那么双方如何协商得到同一个不被泄露的密钥呢?一种做法是基于RSA,拥有公钥的一方将随机私钥加密提供给对方,对方再利用私钥解密出密钥。于是双方都得到了会话密钥。上面这种基于非对称加密的方法是SSL最古老的密钥协商方式,早......