简单加密工具
pbp的Python项目详细描述
PBP
V0.2.1-实验性
pbp[0]是一个简单的python包装器和命令行接口 提供类似PGP的基本功能。它使用 用于kdf和更简单的包格式的scrypt,它应该是 很难找到指纹,PBP也提供了一个实验性的进展 保密模式和多方dh模式。
安装
您可能需要运行(或等效的命令)sudo apt get install git python virtualenv gcc python dev libffi dev scrypt以满足所有基本依赖项。 安装libnadium(http://doc.libsodium.org/installation/README.html)。
pip安装pbp
也可选择用于干草叉支架
pip install pyusb==1.0.0b1
设计目标:
- use modern crypto
- provide similar functionality to PGP
- be extensible
- difficult to identify based on fingerprinting
- provide extensive testing
- strive for security
加密
加密原语基于 http://nacl.cr.yp.to。使用的kdf是scrypt。
PGP类
提供基本的公钥加密/解密、签名/验证和密钥 加密/解密模式,以及签名、验证、列表, 生成、导出和导入密钥。
可扩展性
使用pbp和底层pynadium[1]库很容易扩展 PBP公司。一些例子是实验性的前向保密模式(参见 doc/chaining dh.txt中的说明),支持ECDH密钥 从命令行交换并生成任意大的 随机字节流。
指纹识别
PBP试图避免存储任何敏感的明文信息, 加密文件都应该看起来像随机噪声。为了一个描述 数据包格式见doc/fileformats.txt。
测试
所有py文件都带有内部测试,单元测试在 tests.py,命令行功能在test.sh中测试。
安全性
PBP锁定进程内存,因此无法将其交换到磁盘。阿尔索 pbp使用securestring[2]在 在内存中使用,因此密钥有很短的泄漏机会。
[2]https://github.com/dnet/pysecstr
用法
生成密钥
pbp -g -n alice
使用公钥加密将howdy.txt从alice发送到bob
pbp -c -S alice -r bob -i howdy.txt
使用公钥加密解密加密文件
pbp -d -S bob -i howdy.txt.pbp
使用密钥加密发送howdy.txt
pbp -c -i howdy.txt
使用密钥加密解密加密文件
pbp -d -i howdy.txt.pbp
在howdy.txt上签名
pbp -s -S alice -i /howdy.txt
验证howdy.txt
pbp -v -i howdy.txt.sig
签名bobs键
pbp -m -S alice -n bob
按Carlos键检查信号
pbp -C -n carol
alice使用实验性的前向机密模式将howdy.txt加密到bob
pbp -e -S alice -r bob -i howdy.txt -o ./secret-message
bob使用实验性的前向机密模式从alice解密howdy.txt
pbp -E -S bob -r alice -i ./secret-message
启动ECDH密钥交换
pbp -D1
响应ECDH密钥交换
pbp -D2 -Dp ‘public component from D1’
完成ECDH密钥交换
pbp -D3 -Dp ‘public component from D2’ -De ‘secret exponent from D1’
加密随机性的随机流23GB
pbp -R -Rs 23G -o /mnt/huge_fs/random_data
参与4路DH交换,第一条消息
pbp -Ds -Dp 4 -S alice -n ‘friends001’ -i oldkeychain -o newkeychain
参与4路DH交换,第2条消息
pbp -De -S alice -n ‘friends001’ -i oldkeychain -o newkeychain
这是一个大管道,它在爱丽丝、鲍勃和卡罗尔之间创建了一个3路ECDH秘密:
- pbp -Ds -S alice -Dp 3 -n ‘test-dh’ -i /dev/null |
- pbp -Ds -S bob -Dp 3 -n ‘test-dh’ | pbp -Ds -S carol -Dp 3 -n ‘test-dh’ | pbp -De -S alice -Dp 3 -n ‘test-dh’ | pbp -De -S bob -Dp 3 -n ‘test-dh’
当然,您可以使用任何类型的传输机制来代替管道
集成
您可以将以下内容添加到.vimrc中
map ;e :%!/bin/sh -c ‘pbp -c 2>/dev/tty | base64’<C-M> map ;d :%!/bin/sh -c ‘base64 -d | pbp -d 2>/dev/tty’<C-M> map ;s :,$! /bin/sh -c ‘pbp -s -a -S stf 2>/dev/tty’<C-M> map ;v :,$! /bin/sh -c ‘pbp -v -a 2>/dev/tty’<C-M>
- 2013年,STF<;s@ctrlc.hu>;,DNETvsza@vsza.hu,AGPLv3.0+
[0]而且,嘴里塞满干饼干的PBP也很有趣。 不要在公司里尝试这个!
[![生成状态](https://travis-ci.org/stef/pbp.svg?branch=master)](https://travis-ci.org/stef/pbp)