diceware Documentation

Similar documents
TPS Documentation. Release Thomas Roten

Python Project Example Documentation

DNS Zone Test Documentation

Roman Numeral Converter Documentation

Python wrapper for Viscosity.app Documentation

chatterbot-weather Documentation

Simple libtorrent streaming module Documentation

google-search Documentation

I2C LCD Documentation

Python simple arp table reader Documentation

Release Nicholas A. Del Grosso

sainsmart Documentation

PyCRC Documentation. Release 1.0

Poetaster. Release 0.1.1

Redis Timeseries Documentation

Aircrack-ng python bindings Documentation

Google Domain Shared Contacts Client Documentation

Frontier Documentation

django-reinhardt Documentation

Python Schema Generator Documentation

Poulpe Documentation. Release Edouard Klein

doconv Documentation Release Jacob Mourelos

smartfilesorter Documentation

Release Fulfil.IO Inc.

django-idioticon Documentation

Game Server Manager Documentation

Pykemon Documentation

Archan. Release 2.0.1

Python AMT Tools Documentation

Simple Binary Search Tree Documentation

Python AutoTask Web Services Documentation

I hate money. Release 1.0

Release Ralph Offinger

Python State Machine Documentation

eventbrite-sdk-python Documentation

withenv Documentation

pyldavis Documentation

AnyDo API Python Documentation

Aldryn Installer Documentation

OpenUpgrade Library Documentation

gunny Documentation Release David Blewett

Python Project Documentation

pydrill Documentation

Mantis STIX Importer Documentation

django CMS Export Objects Documentation

open-helpdesk Documentation

gpib-ctypes Documentation

pytest-benchmark Release 2.5.0

cwmon-mysql Release 0.5.0

Django Wordpress API Documentation

Job Submitter Documentation

lazy-object-proxy Release 1.3.1

Dragon Mapper Documentation

Python Finite State Machine. Release 0.1.5

Python data pipelines similar to R Documentation

yardstick Documentation

e24paymentpipe Documentation

Python State Machine Documentation

ndeftool documentation

tinycss Documentation

django-cas Documentation

django-users2 Documentation

Pulp Python Support Documentation

django-dynamic-db-router Documentation

The RestructuredText Book Documentation

zope.location Documentation

Gearthonic Documentation

ameh Documentation Release Eric Pierce

ejpiaj Documentation Release Marek Wywiał

oemof.db Documentation

API Wrapper Documentation

PyCon APAC 2014 Documentation

dj-libcloud Documentation

Bitdock. Release 0.1.0

spinnerchief Documentation Release 0.1.1

OTX to MISP. Release 1.4.2

pvl Documentation Release William Trevor Olson

BanzaiDB Documentation

Nirvana Documentation

dh-virtualenv Documentation

Release Manu Phatak

nacelle Documentation

Libra Client Documentation

doto Documentation Release 0.2 Benjamin Zaitlen

xmljson Documentation

bottle-rest Release 0.5.0

django-stored-messages Documentation

linkgrabber Documentation

PrettyPandas Documentation

Django-CSP Documentation

smsghussd Documentation

dicompyler-core Documentation

supernova Documentation

xmodels Documentation

tld Documentation Release 0.9 Artur Barseghyan

django-telegram-bot Documentation

pykafka Release dev.2

django-private-chat Documentation

django-composite-foreignkey Documentation

ouimeaux Documentation

Transcription:

diceware Documentation Release 0.1 Uli Fouquet March 28, 2015

Contents 1 Install 3 2 Usage 5 3 What is it good for? 7 4 Is it secure? 9 5 Developer Install 11 5.1 Documentation Install.......................................... 11 6 Credits 13 7 Links 15 8 License 17 9 Changes 19 9.1 0.1 (2015-02-18)............................................. 19 10 Indices and tables 21 i

ii

diceware Documentation, Release 0.1 Passphrases to remember... diceware is a passphrase generator following the proposals of Arnold G. Reinhold on http://diceware.com. It generates passphrases by concatenating words randomly picked from wordlists. For instance: $ diceware MyraPend93rdSixthEagleAid The passphrase contains by default six words (with first char capitalized) without any separator chars. Optionally you can let diceware insert special chars into the passphrase. Contents diceware Install Usage What is it good for? Is it secure? Developer Install * Documentation Install Credits Links License Changes 0.1 (2015-02-18) Indices and tables Contents 1

diceware Documentation, Release 0.1 2 Contents

CHAPTER 1 Install This Python package can be installed via pip: $ pip install diceware The exact way depends on your operating system. 3

diceware Documentation, Release 0.1 4 Chapter 1. Install

CHAPTER 2 Usage Once installed, use --help to list all available options: $ diceware --help usage: diceware [-h] [-n NUM] [-c --no-caps] [-s NUM] Create a passphrase optional arguments: -h, --help show this help message and exit -n NUM, --num NUM number of words to concatenate. Default: 6 -c, --caps Capitalize words. This is the default. --no-caps Turn off capitalization. -s NUM, --specials NUM Insert NUM special chars into generated word. With -n you can tell how many words are supposed to be picked for your new passphrase: $ diceware -n 1 Thud $ diceware -n 2 KnitMargo You can diceware additionally let generate special chars to replace characters in the normal passphrase. The number of special chars generated can be determined with the -s option (default is zero): $ diceware -s 2 Heroic%unkLon#DmLewJohns Here "%" and "#" are the special chars. Special chars are taken from the following list: ~!#$%^&*()-=+[]\{}:;\" <>?/0123456789 Please note that several special chars might replace the same original char, resulting in a passphrase with less special chars than requested. By default the single phrase words are capitalized, i.e. the first char of each word is made uppercase. This does not neccessarily give better security (1 bit at most), but it helps reading a phrase. You can nevertheless disable caps with the --no-caps option: $ diceware --no-caps oceanblendbaronferrylistenvalet 5

diceware Documentation, Release 0.1 This leads to lower-case passphrases, maybe easier to type on smart phones or similar. 6 Chapter 2. Usage

CHAPTER 3 What is it good for? Normally, diceware passphrases are easier to remember than shorter passwords constructed in more or less bizarre ways. But at the same time diceware passphrases provide more entropy as xkcd can show with the famous 936 proof: The standard english wordlist of this diceware implementation contains 8192 == 2**13 different english words. It is a copy of the Diceware8k list provided by Mr. Reinhold. Therefore, picking a random word from this list gives an entropy of 13 bits. Picking six words means an entropy of 6 x 13 == 73 bits. The special chars replacing chars of the originally created passphrase give some more entropy (the more chars you have, the more additional entropy), but not much. For instance, for a sixteen chars phrase you have sixteen possibilities to place one of the 36 special chars. That makes 36 x 16 possibilitities or an entropy of about 9.17 you can add. To get an entropy increase of at least 10 bits, you have to put a special char in a phrase with at least 29 chars (while at the same time an additional word would give you 13 bits of extra entropy). Therefore you might think again about using special chars in your passphrase. 7

diceware Documentation, Release 0.1 8 Chapter 3. What is it good for?

CHAPTER 4 Is it secure? The security level provided by Diceware depends heavily on your source of random. If the delivered randomness is good, then your passphrases will be very strong. If instead someone can foresee the numbers generated by a random number generator, your passphrases will be surprisingly weak. This Python implementation uses the random.systemrandom source provided by Python. On Un*x systems it accesses /dev/urandom. You might want to follow reports about manipulated random number generators in operating systems closely. The Python API of this package allows usage of other sources of randomness when generating passphrases. 9

diceware Documentation, Release 0.1 10 Chapter 4. Is it secure?

CHAPTER 5 Developer Install Developers want to fork me on github: $ git clone https://github.com/ulif/diceware.git We recommend to create and activate a virtualenv first: $ cd diceware/ $ virtualenv -p /usr/bin/python3.3 py33 $ source py33/bin/activate (py33) $ We support Python versions 2.6, 2.7, 3.2, 3.3, 3.4, pypy. Now you can create the devel environment: (py33) $ python setup.py dev This will fetch test packages (py.test). You should be able to run tests now: (py33) $ py.test If you have also different Python versions installed you can use tox for using them all for testing: (py33) $ pip install tox (py33) $ tox # only once Should run tests in all supported Python versions. 5.1 Documentation Install The docs can be generated with Sphinx. The needed packages are installed via: (py33) $ python setup.py docs To create HTML you have to go to the docs/ directory and use the prepared Makefile: (py33) $ cd docs/ (py33) $ make This should generate the docs in docs/_build/html/. 11

diceware Documentation, Release 0.1 12 Chapter 5. Developer Install

CHAPTER 6 Credits Arnold G. Reinhold deserves all merits for the working parts of Diceware. The non-working parts are certainly my fault. 13

diceware Documentation, Release 0.1 14 Chapter 6. Credits

CHAPTER 7 Links The Diceware home page. Reading definitely recommended! fork me on github Wordlists: Diceware8k list by Arnold G. Reinhold. 15

diceware Documentation, Release 0.1 16 Chapter 7. Links

CHAPTER 8 License This Python implementation of Diceware, (C) 2015 Uli Fouquet, is licensed under the GPL v3+. The Copyright for the Diceware idea and the Diceware8k list are Copyright by Arnold G. Reinhold. See file LICENSE for details. 17

diceware Documentation, Release 0.1 18 Chapter 8. License

CHAPTER 9 Changes 9.1 0.1 (2015-02-18) Initial release. 19

diceware Documentation, Release 0.1 20 Chapter 9. Changes

CHAPTER 10 Indices and tables genindex modindex search 21