一个历史上精确的谜机模拟库。
py-enigma的Python项目详细描述
用python 3编写的一个历史精确的谜机库
Author: | Brian Neal <bgneal@gmail.com> |
---|---|
Version: | 0.1 |
Date: | June 5, 2012 |
Home Page: | https://bitbucket.org/bgneal/enigma/ |
License: | MIT License (see LICENSE.txt) |
Documentation: | http://py-enigma.readthedocs.org/ |
Support: | https://bitbucket.org/bgneal/enigma/issues |
概述
py enigma是一个python 3库,用于模拟使用的Enigma machines 在第二次世界大战期间由德国武装部队(国防军)执行。py谜成功了 可以对可以发送到或接收到的消息进行加密和解密 德国陆军(HEER)和空军使用的真正的谜机 (德国空军)和海军(克里格斯马林)。
我希望图书馆对迷迷、历史学家和 对密码学感兴趣的学生。
py enigma力求成为pythonic,易于使用,带有单元测试,并且 文档。
范围
py enigma的当前范围是模拟wehrmacht enigma机器。 其他谜团的模拟,如各种商业,铁路,外国, 如果足够的话,abwher(军事情报)模型可能会在晚些时候出现 兴趣和数据。
目前,py enigma可以模拟 德国陆军、海军和空军。
快速示例
此示例显示如何使用库来使用 德国军队采用的程序:
from enigma.machine import EnigmaMachine # setup machine according to specs from a daily key sheet: machine = EnigmaMachine.from_key_sheet( rotors='II IV V', reflector='B', ring_settings=[1, 20, 11], plugboard_settings='AV BS CG DL FU HZ IN KM OW RX') # set machine initial starting position machine.set_display('WXC') # decrypt the message key msg_key = machine.process_text('KCH') # decrypt the cipher text with the unencrypted message key machine.set_display(msg_key) ciphertext = 'NIBLFMYMLLUFWCASCSSNVHAZ' plaintext = machine.process_text(ciphertext) print(plaintext)
此程序打印:
THEXRUSSIANSXAREXCOMINGX
py enigma还包括一个用于处理消息的命令行应用程序。 假设您有一个正确的密钥文件,其中包含与 上面的代码,上面的示例可以在命令行上执行:
$ pyenigma.py --key-file=keys.txt --start=WXC --text='KCH' BLA $ pyenigma.py --key-file=keys.txt --start=BLA --text='NIBLFMYMLLUFWCASCSSNVHAZ' THEXRUSSIANSXAREXCOMINGX
密钥文件的格式可以在文档中找到。
要求
py enigma是用Python编写的,特别是python 3.2。没有别的了 需求或依赖关系。
安装
py enigma可以在Python Package Index(pypi)上找到。你可以安装它 使用pip:
$ pip install py-enigma # install $ pip install --upgrade py-enigma # upgrade
您还可以使用“get”下载最新代码的tarball或.zip文件 source“链接到Py-Enigma Bitbucket page。或者如果你使用 Mercurial,您可以使用以下命令克隆存储库:
$ hg clone https://bitbucket.org/bgneal/enigma
如果没有使用pip,可以使用以下命令进行安装:
$ python setup.py install
文档
最新的文档可在Read the Docs找到。在那里你可以browse the documentation online,或者 download it in a variety of formats。
文档源也以Sphinx格式包含。如果你 安装sphinx您可以用几种输出格式生成文档。
支架
在issue tracker处的Py-Enigma Bitbucket page处提供支持。 如果您有一般性的问题或意见,请随时给我发电子邮件(地址 在这个文件的顶部)。
拜托,如果你用py enigma做任何事,即使它只是学习, 请告诉我!
致谢和推荐信
如果没有全面详细的 关于德克·里米南特“不可思议的Cipher Machines and Cryptology website上的神秘机器的描述。尤其是,他的页面是信息的金矿。
德克还在visual basic中编写了一个Enigma simulator。尽管我没有 看看他的源代码,我确实用他的模拟器检查了 py谜。
我还想推荐托马斯·佩雷拉博士的照片和视频 Enigma Museum。
另一个好的网站是格雷厄姆埃尔斯伯里的The Enigma and the Bombe。
一个很好的视频,展示了谜的基本组成和操作 机器在youtube上:Nadia Baker & Enigma demo。