首页 > 编程语言 >python 代码说明 RAS基本原理

python 代码说明 RAS基本原理

时间:2024-06-12 16:54:54浏览次数:23  
标签:13 私钥 python 基本原理 step RAS print nstep mod

import gmpy2

q = 7
p = 11
e = 13
m = 71
if __name__ == '__main__':
    print('step 0 公钥和私钥')
    print('     公钥(n,e)')
    print('     私钥(n,d)')

    # step 1
    n = p * q
    print(f'\nstep 1 最大公约数')
    print(f'    随机质数:p: {p}')
    print(f'    随机质数:q: {q}')
    print(f'    选择一个与φ(n)互质的整数e,e任意选取一个大整数e,满足 gcd(e, φ(n))=1 所有大于p和q的素数都可用 e: 13')
    print(f'    质数之和(最大公约数):n=pq = (7 * 11) = {n}')
    print(f'    公钥(n,e) => (77,13) ')

    # step 2
    phi = (q - 1) * (p - 1)
    print(f'\nstep 2  ( n ) 的欧拉函数')
    print(f'    φ(n)=(p-1)(q-1) => ({p}-1)({q}-1)  = {phi} ')

    # step 3
    d = gmpy2.invert(e, phi)
    print(f'\nstep 3 私钥(n,d) d 的计算:  d计算')
    print(f' (de) mod φ(n) = 1 : d*13 mod 60 = 1  => d*13 ≡ 1 (mod 60)  =>d= {d}  ')
    print(f'  v(n,d) => (77,37)  d 私密保存')

    # step 4
    c = pow(m, e, n)
    print(f'\nstep 4 明文公钥加密成密文')
    print(f' m:明文 {m}   公钥(n,e) => (77,13) ')
    print(f' c:密文  c = m^e mod n  => {m} ^ {e} mod {n}  => {c} ')

    # step 5
    m = pow(c, d, n)
    print(f'\nstep 4 私钥解密密文成明文')
    print(f' c:密文 {c}    私钥(n,d) => (77,37)')
    print(f' c:明文  m = c^d mod n  => {c} ^ {d} mod {n}  => {m} ')

    print('RSA 核心原路:欧拉定理,模运算与指数运算之间的关系')
    print('RSA 安全性:依赖于大整数分解的难度')
    print('RSA 缺点: RSA 算法涉及大数运算,包括大素数生成、模幂运算等。 计算非常耗时,随着密钥长度增加计算开销会进一步增加')

标签:13,私钥,python,基本原理,step,RAS,print,nstep,mod
From: https://www.cnblogs.com/guanchaoguo/p/18244270

相关文章

  • SSM-小区物业管理系统-48954(免费领源码+开发文档)可做计算机毕业设计JAVA、PHP、爬虫、
    基于SSM小区物业管理系统摘要随着计算机科学技术日渐成熟,人们已经深刻认识到了计算机功能的强大,计算机已经进入到了人类社会发展的各个领域,并且发挥着十分重要的作用。每个社区的物业管理是一项系统而复杂的工作,它需要一个团队互相配合、分工协作。在该领域,传统的手工存取......
  • pythonocc基础:OCC.Core.TopAbs 类简介
    在PythonOCC库中,OCC.Core.TopAbs模块定义了一系列枚举类型,这些枚举类型代表了拓扑形状的不同类别(Topology)。这些类别是构建和操作三维几何模型的基础,特别是在处理布尔运算、几何约束、参数化设计等复杂任务时。TopAbs类提供了统一的接口来识别和区分不同的拓扑元素,是OpenCASCAD......
  • Anomaly Detection on Attributed Networks via Contrastive Self-Supervised Learnin
    PaperAnomalyDetectiononAttributedNetworksviaContrastiveSelf-SupervisedLearnin代码实现异常注入inject_anomaly.pyinject_anomaly.py注入异常过程,处理原始数据集,并添加结构和属性扰动,注入结构属性异常。importnumpyasnpimportscipy.sparseasspim......
  • python-数据分析-Matplotlib-1-基础图形(曲线图-散点-柱状-堆叠柱状-饼状图-直方图)
    曲线图#-*-coding:utf-8-*-#基础、曲线图importnumpyimportmatplotlib.pyplotasplt#设置字体SimHei:黑体#需要注意的是,使用中文字体后坐标轴上的负号将会无法显示,需要将`axes.unicode_minus`参数设置为`False`,这样才能让坐标轴上的负号正常显示plt.rcParams['f......
  • python-数字反转 ll
    [问题描述]:现在给出一个正整数n,请将n倒序输出(末尾是0也输出)输入:一行一个正整数n输出:一行一个正整数,表示数字n倒过来输出的结果样例输入112345678910111213样例输出131211101987654321提示1<=n<=10^5000来源/分类(难度系数:一星) 完整代码如下:a=list(input())a......
  • python - pip安装三方库超时、安装慢解决办法
    前言:WARNING:Retrying(Retry(total=4,connect=None,read=None,redirect=None,status=None))afterconnectionbrokenby'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org',port=443):今天在一台新的电脑上时候pip下载requests库,报错这个链接超时的错误。我们直......
  • Python 详述 Python 中的 property 语法
    在大多数语言的程序中,一个类,每有一个属性,就会对应setter和getter,基本都是标配。示例:classMoney(object):def__init__(self):self.__money=0defgetMoney(self):returnself.__moneydefsetMoney(self,value):ifisinsta......
  • python通过COM接口调用CANoe工具实现相关操作
    使用Python来操作CANoe(一个用于汽车总线系统设计、分析、仿真和测试的强大工具),你可以借助win32com库来实现。这涉及到使用COM接口来控制CANoe。以下是一个示例,演示了如何使用Python通过win32com库来操作CANoe。一、前提条件安装Python和win32com库:确保你已经安装了Python......
  • [数据分析与可视化] 基于Python绘制简单动图
    动画是一种高效的可视化工具,能够提升用户的吸引力和视觉体验,有助于以富有意义的方式呈现数据可视化。本文的主要介绍在Python中两种简单制作动图的方法。其中一种方法是使用matplotlib的Animations模块绘制动图,另一种方法是基于Pillow生成GIF动图。python学习资料已打包好,需......
  • 程序猿大战Python——容器——列表的基本使用
    列表的定义==目标:==掌握如何定义列表。列表类型为list,是Python中的一种常见类型。列表可以存放各种数据类型的数据,且列表的长度会随着添加数据的变化而变化。列表语法:变量名=[元素1,元素2,元素3,...]说明:列表的多个元素之间使用,逗号分隔。例如,一起来完成:(1)定义......