Python——验证密码学常见运算

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: Python——验证密码学常见运算

00 前情提要

最近处于期末复习阶段,对于现代密码学这门学科来说,解题过程中经常出现几种运算的身影,其中包括整数模运算、分数模运算、乘法逆元运算等。

而为方便检验自己的笔算结果,这里使用一个简单的python程序验证计算结果。

01 实现背景

先来简单举几个笔算的例子,既方便大家理解,也方便用于验证python脚本的正确性。

整数模运算,如 2 mod 5 = 2

分数模运算,如 1/3 mod 5 = 2

乘法逆元运算,1 关于 6 的乘法逆元为 7

02 实现源码

import os
def ny(e,z):
    k=1
    e=e%z
    while((k*z+1)%e!=0):
        k=k+1
    d=int((k*z+1)/e)
    return d

def myfmod():
    a=int(input("请输入分子:"))
    b=int(input("请输入分母:"))
    c=int(input("请输入模:"))
    g=a
    a=a%c
    d=(a*ny(b,c))%c
    print("分数%d/%d模%d的余数为%d"%(g,b,c,d))
    f=input("按任意键继续")

def mymod():
    a=int(input("请输入整数:"))
    b=int(input("请输入模:"))
    print("整数数%d模%d的余数为%d"%(a,b,a%b))
    f=input("按任意键继续")

flag=1
while(flag!=0):
    print("欢迎使用密码学计算器")
    print("1.求整数模")
    print("2.求分数模")
    print("3.求乘法逆元")
    print("0.退出")
    flag=int(input("请选择:"))
    if flag==1:
        mymod()
    elif flag==2:
        myfmod()
    elif flag==3:
        a=int(input("请输入整数a:"))
        b=int(input("请输入整数b:"))
        print(f'{a}关于{b}的乘法逆元为{ny(a,b)}')
        f=input("按任意键继续")
    os.system('cls')



03 实现效果

image.png

image.png

image.png

目录
相关文章
|
4天前
|
Python
python幂运算——计算x的y次方
python幂运算——计算x的y次方
28 0
|
4天前
|
Python
python增量赋值运算的应用
Python中的增量赋值运算符用于便捷地执行算术操作,如`+=`, `-=`等,它们分别代表加法、减法、乘法、除法、取模、整除和幂运算。
15 1
|
2天前
|
Python
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交
|
2天前
|
存储 算法 Python
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交(2)
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交(2)
|
2天前
|
存储 算法 Python
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交(1)
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交(1)
|
4天前
|
安全 算法 物联网
Python 密码学实用指南(全)(4)
Python 密码学实用指南(全)
6 0
|
4天前
|
算法 Linux 数据安全/隐私保护
Python 密码学实用指南(全)(3)
Python 密码学实用指南(全)
8 1
|
4天前
|
算法 安全 数据安全/隐私保护
Python 密码学实用指南(全)(2)
Python 密码学实用指南(全)
10 0
|
4天前
|
Linux 数据安全/隐私保护 iOS开发
Python 密码学实用指南(全)(1)
Python 密码学实用指南(全)
13 1
|
4天前
|
数据挖掘 测试技术 数据处理
在python读取相邻两行的数据进行运算
在python读取相邻两行的数据进行运算
11 1