teschlg/kryptools
GitHub: teschlg/kryptools
kryptools是一个提供多种密码学算法实现的Python库。
Stars: 0 | Forks: 0
[](https://pypi.org/project/kryptools)
[](https://www.python.org)
[](https://github.com/teschlg/kryptools/blob/main/LICENSE)
[](https://github.com/teschlg/kryptools/actions/workflows/pylint.yml)
[](https://github.com/teschlg/kryptools/actions/workflows/run_test.yml)
# kryptools
Gerald Teschl
本包是为我的密码学课程编写的。因此,其主要目的是教育性的,也就是说,展示基本算法是如何实现的。特别是,
欢迎阅读(并修改)源代码。任何关于如何使代码更易读或改进的建议都欢迎。然而,我的主要目标是保持
它简单,可读性将优于微小的速度提升。
它不需要任何外部库。
包含的工具:
* 数论:模素数的平方根,Jacobi/Legendre 符号,中国剩余定理,连分数等。
* 素数:埃拉托斯特尼筛法,素性测试,生成随机安全/强素数
* 离散对数求解器(朴素,Pollard rho,Shanks 小步/大步,指数计算,二次筛法)
* 整数分解(费马,Pollard p-1,Pollard rho,Lenstra 的 ECM,Dixon,基本二次筛法)
* 椭圆曲线(Weierstrass 形式),群运算,阶,离散对数
* 线性代数:埃尔米特正则形,史密斯正则形,格拉姆-施密特正交化
* 拉格朗日:Hadamard 比率,Babai 四舍五入/最近平面算法,拉格朗日降维(Hermite,Lenstra-Lenstra-Lovasz,BKZ),SIS,ISIS,LWE
* 线性码:汉明距离,左标准形,奇偶校验矩阵
* 矩阵:矩阵类(逆,行列式,简化行阶梯形,核,解线性系统等)
* 二元矩阵:二元矩阵类(用于更快的行操作)
* 拉格朗日:拉格朗日类(SVP,CVP,LLL,BKZ,HKZ)
* 多项式:多项式类(除法,模运算,有限域上的因式分解和不可约性测试,拉格朗日插值)
* Zmod:整数模环类
* GF2:伽罗瓦域 GF(2^n) 类
* 二元码:二元线性码编码和解码类
* GoppaCode:二元 Goppa 码编码和解码类
* CyclicCode:循环码编码和解码类
* ReedSolomonCode:Reed-Solomon 码编码和解码类
* BCHCode:原始窄带 BCH 码编码和解码类
* BlockCipher:实现常用操作模式(ECB,CBC,GCM 等)的类
* AESCipher:AES 单独操作
* DESCipher:DES 单独操作
* SHA1:自定义初始状态,填充函数
* Keccak:单独的海绵操作,SHA3,SHAKE
文档可以在 jupyter 笔记本中找到
(大部分已完成,但可能不包含所有内容:使用力量,阅读源代码)。
标签:Python 库, Python 版本兼容, 代码审查, 密码学, 手动系统调用, 教育工具, 数论, 整数分解, 格, 椭圆曲线, 测试, 矩阵, 离散对数, 算法实现, 素数, 线性代数, 线性码, 许可证, 逆向工具