安全兼容椭圆曲线密码

seccure的Python项目详细描述


py seccure

适用于python的简单椭圆曲线密码 优秀的SECCURE命令 线路实用程序(0.5版)。它是根据lgplv3授权的。见许可证。

当其操作可以由 攻击者。请参阅timing attack

使用量

来自私钥的公钥

要从私钥获取公钥,可以使用原始密钥 命令行实用程序:

$ seccure-key
Assuming curve p160.
Enter private key: my private key
The public key is: 8W;>i^H0qi|J&$coR5MFpR*Vn

在python中:

>>>importseccure>>>str(seccure.passphrase_to_pubkey(b'my private key'))'8W;>i^H0qi|J&$coR5MFpR*Vn'

加密字符串

要加密公钥,可以使用原始命令行 效用如下。

$ seccure-encrypt -o private.msg '8W;>i^H0qi|J&$coR5MFpR*Vn'
Assuming MAC length of 80 bits.
Go ahead and type your message ...
This is a very very secret message!
^D

在python中:

>>>ciphertext=seccure.encrypt(b'This is a very secret message\n',b'8W;>i^H0qi|J&$coR5MFpR*Vn')>>>ciphertext'\x00\x146\x17\xe9\xc1\x1a\x7fkX\xec\xa0n,h\xb4\xd0\x98\xeaO[\xf8\xfa\x85\xaa\xb37!\xf0j\x0e\xd4\xd0\x8b\xfe}\x8a\xd2+\xf2\xceu\x07\x90K2E\x12\x1d\xf1\xd8\x8f\xc6\x91\t<w\x99\x1b9\x98'

有一个速记法可以加密文件:

>>>seccure.encrypt_file('/path/to/file','/path/to/file.enc','8W;>i^H0qi|J&$coR5MFpR*Vn')

解密

使用原始实用程序解密邮件:

$ seccure-decrypt -i private.msg
Assuming MAC length of 80 bits.
Assuming curve p160.
Enter private key: my private key
This is a very very secret message!
Integrity check successful, message unforged!

在python中:

>>>seccure.decrypt(ciphertext,b'my private key')'This is a very secret message\n'

解密文件:

>>>seccure.decrypt_file('/path/to/file.enc','/path/to/file',b'my private key')

创建签名

创建签名:

$ seccure-sign
Assuming curve p160.
Enter private key: my private key
Go ahead and type your message ...
This message will be signed
^D
Signature: $HPI?t(I*1vAYsl$|%21WXND=6Br*[>k(OR9B!GOwHqL0s+3Uq

在python中:

>>>seccure.sign(b'This message will be signed\n',b'my private key')'$HPI?t(I*1vAYsl$|%21WXND=6Br*[>k(OR9B!GOwHqL0s+3Uq'

验证签名

验证签名:

$ seccure-verify '8W;>i^H0qi|J&$coR5MFpR*Vn' '$HPI?t(I*1vAYsl$|%21WXND=6Br*[>k(OR9B!GOwHqL0s+3Uq'
Go ahead and type your message ...
This message will be signed
^D
Signature successfully verified!

在python中:

>>>seccure.verify(b'This message will be signed\n',b'$HPI?t(I*1vAYsl$|%21WXND=6Br*[>k(OR9B!GOwHqL0s+3Uq',b'8W;>i^H0qi|J&$coR5MFpR*Vn')True

安装

关于Debian喘息
$ apt-get install libgmp3-dev build-essential python-dev python-pip libmpfr-dev libmpc-dev
$ pip install seccure
在ubuntu上
$ apt-get install libgmp-dev build-essential python-dev python-pip libmpfr-dev libmpc-dev
$ pip install seccure

在带有MacPorts的Mac上
$ port install py27-gmpy2
$ pip install seccure

请贡献!

为了帮助您,您可以:

  1. 测试并报告任何错误或其他困难。
  2. 实现缺少的功能,例如seccure-dhseccure-veridecseccure-signcrypt
  3. 为您的 站台。
  4. 写更多的单元测试。
https://travis-ci.org/bwesterb/py-seccure.png

py seccure更改日志

0.4.0(2019-07-28)

  • 使用gmpy2而不是gmpy

0.3.3(2019-04-28)

  • 向薄片8鞠躬
  • py seccure没有像seccure预期的那样用零填充签名。 这导致py seccure生成的一些签名不被接受 通过seccure。这个问题已经解决了。旧的未添加签名仍然 被py seccure接受以保持向后兼容性。 参见16(感谢:Tanner Collin)
  • 添加对Python3.7的支持
  • 放弃对Python2.6和Python3.3的支持

0.3.2(2016-08-07)

  • 添加generate_keypair
  • 修正仿射点的加倍。#10(感谢:Joep Peeters)

0.3.1.3(2016-01-03)

  • python 2.6的小补丁

0.3.1.2(2015-12-29)

  • 使用静态版本属性。
  • 对自述文件使用rst

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java InputStream对象在声明后关闭   java未定义名为“transactionManager”的bean重命名transactionManager   java“jar”命令何时会拒绝将类添加到java中。jar文件?   java JPA标准依赖WHERE子句   安卓中从SD卡读取文本文件时出现java错误   java直接启用类似位置的权限   使用@WebMvcTest和Mockito-BDDMockito对SpringBoot-RestController进行java测试   java JSESSIONID存储在哪里?   java jtextarea鼠标事件覆盖容器鼠标事件   java DRL无法解析动态加载的类   java是从一个方法返回多个对象的最简单方法   java自定义按钮/编辑框是否不可见?   java GUI如何在保存用户输入的同时在面板或框架之间切换   swing Java自定义JSlider不会更新   GridBagLayout中的java超过1个JPanel   java从ProjectReactor中的flux中采样除第一个元素外的所有元素   Java泛型和泛型类型   Java代码生成宽指令的jvm