Python——实现密码学中的模逆运算

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: Python——实现密码学中的模逆运算

00 前情提要

最近临近期末,这学期上的现代密码学要求我们实现密码学上一些小知识点的代码实现,这就从最简单的模逆运算开始。


01 实现背景

先简单介绍一下什么是模逆运算呢,要定义这个运算,需要三个整数。a的模逆元素(对n取模) 为b,意味着a*b mod n= 1。则我们称b为a的模逆。比如17mod26的模逆值为19,其中a = 17 ; m = 26 ; b=19

再比如:
35 mod 7=1 , 3 关于 7 的模逆元素就是5
3
3 mod 8=1,3 关于 8的模逆元素是3



02 实现源码

#要定义这个运算,需要三个整数。a的模逆元素(对n取模)为b,意味着a*b mod m=1,则称a关于m的模逆为b
def     gcd(a,b):
        while a!=0:
            a,b = b%a,a
        return b
#定义一个函数,参数分别为a,n,返回值为b
def     findModReverse(a,m):#这个扩展欧几里得算法求模逆

        if gcd(a,m)!=1:
            return None
        u1,u2,u3 = 1,0,a
        v1,v2,v3 = 0,1,m
        while v3!=0:
            q = u3//v3
            v1,v2,v3,u1,u2,u3 = (u1-q*v1),(u2-q*v2),(u3-q*v3),v1,v2,v3
        return u1%m

print('''"******************欢迎来到模逆计算器******************

            提示信息:a关于m的模逆为b
示范: 17mod26的模逆值为19,其中a = 17 ; m = 26 ; b=19 
'''
)

a = int(input("现在,请输入a值>>>>>"))
m = int(input("现在,请输入m值>>>>>"))
print(f'你所求的b值为:{findModReverse(a,m)}')


print('''"*********************感谢您的使用*********************


                by: 3171106127 XXX


    ''')

部分代码参考自CSDN的博主


03 实现效果

image.png

image.png

目录
相关文章
|
9月前
|
存储 安全 网络安全
Python网络安全与密码学
【5月更文挑战第23天】 探索Python在网络安全与密码学的实践,从加密算法(如AES、RSA)和哈希函数(MD5、SHA-256)到网络安全工具(Scapy、Socket)的应用。了解如何使用PyCryptodome和hashlib进行加密解密及哈希计算,通过Scapy进行网络数据包操作和端口扫描,利用Socket实现TCP通信。深入密码学,学习RSA加密和数字签名,以及使用Django和Flask实现安全Web开发。此外,掌握高级网络安全技术,如Wireshark流量分析、Bro/Zeek入侵检测,以及自动化安全运维(Ansible)和安全数据分析(Pandas、Matplotlib)。
118 2
|
9月前
|
算法 Linux 数据安全/隐私保护
Python 密码学实用指南(全)(3)
Python 密码学实用指南(全)
42 1
|
9月前
|
Linux 数据安全/隐私保护 iOS开发
Python 密码学实用指南(全)(1)
Python 密码学实用指南(全)
82 1
|
9月前
|
安全 算法 物联网
Python 密码学实用指南(全)(4)
Python 密码学实用指南(全)
73 0
|
9月前
|
算法 安全 数据安全/隐私保护
Python 密码学实用指南(全)(2)
Python 密码学实用指南(全)
53 0
|
Python
Python——验证密码学常见运算
Python——验证密码学常见运算
88 0
|
安全 算法 数据安全/隐私保护