teschlg/kryptools

GitHub: teschlg/kryptools

kryptools是一个提供多种密码学算法实现的Python库。

Stars: 0 | Forks: 0

[![Pypi](https://img.shields.io/pypi/v/kryptools)](https://pypi.org/project/kryptools) [![PyVersion](https://img.shields.io/pypi/pyversions/kryptools)](https://www.python.org) [![License](https://img.shields.io/pypi/l/kryptools)](https://github.com/teschlg/kryptools/blob/main/LICENSE) [![Pylint](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/77bd91387a063732.svg)](https://github.com/teschlg/kryptools/actions/workflows/pylint.yml) [![Pytest](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/1d0282caf6063733.svg)](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 版本兼容, 代码审查, 密码学, 手动系统调用, 教育工具, 数论, 整数分解, 格, 椭圆曲线, 测试, 矩阵, 离散对数, 算法实现, 素数, 线性代数, 线性码, 许可证, 逆向工具