Cryptophane Help

Welcome to Cryptophane help.

Use the Contents tab on the left side of this window to view the different sections of the documentation.

If you're new to cryptography, start with the Cryptography Primer.


What is Cryptophane?

A User's Perspective

Cryptophane is an application that lets you:

  • Encrypt files for sending so no-one but your intended receipients can read them
  • Sign files so that others can verify that you originally sent the file
  • Decrypt files that were encrypted using Cryptophane, PGP, GnuPG, or any other OpenPGP-compliant application
  • Verify signatures that were generated using Cryptophane, PGP, GnuPG, or any other OpenPGP-compliant application

In addition to the four basic cryptographic functions, it allows you to:

  • Import and export keys from your Cryptophane keyring
  • Generate new secret keys
  • Search, receive and send keys from/to keyservers on the Internet
  • Browse your keyring and view each key's properties
  • Sign keys on your keyring
  • Edit your trust of the keys on your keyring

To learn the basics of cryptography, view the Cryptography Primer. Use the Contents menu to the left to find out more about Cryptophane's features.

A Technical Perspective

Cryptophane "wraps" the GnuPG application to provide a visual, easy-to-use frontend. Instead of intimidating users new to cryptography with a command-line interface, Cryptophane allows all commonly used cryptographic functions to be accessed via a familiar Windows interface.


A Cryptography Primer

This primer is divided up into the following sections:

  1. What is assymetric cryptography?
  2. Encrypting and decrypting messages using assymetric cryptography
  3. Signing and verifying messages using assymetric cryptography
  4. Signing public keys to indicate a key's authenticity
  5. The web of trust

If you're new to cryptography, start at the first section and work your way sequentially through them.


A Cryptography Primer

What is asymetric cryptography?

You have a problem: you want to send a secret message to your friend.

You could encode your message using an algorithm, for example, move each letter one along the alphabet, so "Secret message" becomes "Tfdsfu nfttbhf". But it's just as likely that someone who intercepts your message will be able to guess what's going on.

You could encode your message using a secret password, so only someone who knew the password could retrieve the original message. But how will you get the password to your friend so that they can decode it, without the password being intercepted by someone with malicious intent?

Asymetric cryptography solves this problem. Instead of trying to transmit a secret password to your friend, your friend sends you a key that allows you to encrypt messages to him/her. This key is called the "public key" because it doesn't matter who has it -- a lot of public keys are put on public key servers so that anyone can download them. Your friend then decrypts the message with their "secret key".

Because only your friend has their secret key, only they can read messages encrypted with their public key that you (or anyone else) sends to them.

This process is called asymetric because a different key is used to encrypt the message (the public key) than is used to decrypt the message (the secret key.) The "old" process of sending a secret password is called symetric because the same key is used to encrypt and decrypt the message.

Next Chapter

Confused? Maybe an example will help!

  • In chapter 2 learn about how to use cryptography to send a private message.


A Cryptography Primer

Encrypting and decrypting a message

Let's say Alice wants to send a private message to Bob.

  1. Bob uses Cryptophane (or any OpenPGP application) to create an asymetric "key pair". Half of the key is called the "public key" and the other half the "secret key".
  2. Bob keeps the secret key half to himself, and sends the public key to Alice unencrypted, or puts it on a web site so that Alice (or anyone else) can download it.
  3. Alice receives Bob's public key and adds it to her Cryptophane keyring.
  4. Alice checks the public key came from Bob: since anyone can upload a public key, she'll have to check that it's really his [primer chapter 4]
  5. Alice encrypts the message using Bob's public key, and then sends him the message.
  6. Bob receives the message and uses his secret key to decrypt it.

From now on, Alice can use Bob's public key to send as many private messages to him as she wants. Due to the mathematical properties of asymetric algorithms, only people who posses Bob's secret key can decrypt messages encrypted with his public key.

What would happen if Eve, a person with questionable morality, should try to intrude upon Alice and Bob's private conversation? Eve may have acquired access to Bob's mailbox and be able to read the encrypted messages. She can also download Bob's public key off the Internet. But because she doesn't have Bob's secret key (which only exists on Bob's computer), she is not able to decrypt the encrypted messages.

Using Cryptophane

  • Find out how to create a key pair using Cryptophane so that people can send encrypted messages to you.
  • Learn how to upload your public key to a keyserver so anyone can get your public key.
  • Read about how to encrypt or decrypt messages.

Next Chapters

  • In chapter 3 learn about checking the authenticity of a message: who was the message really sent from?
  • In chapter 4 you can find out about how to check that a public key belongs to the right person: remember anyone can make and send you a fake public key.


A Cryptography Primer

Signing and verifying messages

We're back with our friends Alice and Bob. This time, Alice wants to send Bob a message and digitally sign it, so that Bob can be assured that the message came from Alice and was not tampered in transit.

  1. Alice generates a key pair, sends her public key to Bob, and Bob adds it to his keyring (as described in primer chapter 2)
  2. Alice signs the message with her secret key and sends it to Bob.
  3. Bob receives the message, and validates that the message was really sent by Alice by checking the message's signature using Alice's public key. If it matches, the message came from Alice and wasn't tampered with.

Mallory, who is up to no good, wants to manipulate Alice's message to Bob so it says something different. She goes into Bob's mailbox and changes the contents of the message. But when Bob goes to validate the signature on the message, he finds that the signature does not match the contents of the message and knows that it has been altered. Mallory can't make a new signature for the altered message, because she doesn't have Alice's secret key.

Encryption and signing together

Alice can send a message to Bob that is both encrypted and signed. She encrypts it using Bob's public key, then signs it using her private key. This way, no-one can intercept and read the private message, and no-one can tamper with the message so Bob can be assured of its authenticity.

Secure file distribution

Another use of cryptographic signing is to distribute software. A software manufacturer can sign an application installer with their secret key. When a user downloads the software, they can check that the signature of the application installer matches the installer they download. If they match, the user is assured that the installer has not been tampered with: no viruses or spyware have been added. If the signature does not match, the installer has been tampered with and the user should not install the software!

Using Cryptophane

  • Learn how to sign and validate signatures on messages you send and receive.

Next Chapter

  • In chapter 4 you can find out about how to check that a public key belongs to the right person: remember anyone can make and send you a fake public key.


A Cryptography Primer

Checking a key belongs to the right person

Consider this scenario: Bob is about to upload his public key to the Internet so that Alice can download it and send him a private message. Mallory hears that Bob has told Alice he's going to do this, so Mallory kills Bob's Internet connection, creates a key in Bob's name, and uploads it to the Internet.

Now when Alice goes to find Bob's key, she'll in fact get Mallory's fake key. If she encrypts a message using that key, Mallory will be able to read it.

Alternatively, Mallory may not stop Bob from uploading his key but also upload one herself. When Alice goes to get Bob's key, she'll find two keys both claiming they're Bob's. She wouldn't know which one to choose.

How do we make sure this doesn't happen?

Checking the fingerprint

Each key has a "fingerprint". This is a 32 character string that is unique to the key. Alice will download Bob's key and then ring Bob up on the phone or go and meet him to compare fingerprints. If the fingerprint on Alice's computer matches Bob's fingerprint of his own key, the keys are the same. If the fingerprints don't match, someone malicious has tried to deceive Alice into using the wrong key and she should discard it.

Signing a key

In the previous chapter, we looked at how we could sign messages to indicate their authenticity. In a similar way, we can sign other people's public keys to show that we are sure that this key belongs to them.

To make sure you don't use someone's key when you haven't yet checked their key's fingerprint, Cryptophane requires that you sign their key before letting you encrypt anything to them. This is the process that Alice and Bob will go through:

  1. Bob uploads his key to the Internet, or sends his key directly to Alice.
  2. Alice gets the key and imports it into her keyring.
  3. Alice rings Bob and checks the fingerprints match.
  4. Since they do, Alice signs Bob's public key to indicate that she is sure that the key really belongs to Bob.

Do I have to sign EVERY new key I get?

Not necessary. Take a look at chapter 5 where we discuss the web of trust. If someone else that you trust has signed a key, you won't have to sign it. Because you trust them, and they've asserted the key is legitimate, you trust their assertion.

Using Cryptophane

  • Learn how to check the fingerprint of a key on your keyring.
  • Find out how to sign a key on your keyring so that you can use it.

Next Chapter

  • In chapter 5 learn about the web of trust.


A Cryptography Primer

The Web of Trust

As discussed in chapter 4, we have to check the fingerprint of new keys when we add them to our keyrings. If we don't check, we may be using a key that doesn't really belong to who we think it does.

Understandably, this can get very tedious if you have to check every single key you add. To lessen this hassle, Cryptophane allows you to trust other people's signatures.

An example:

  1. Alice has Carol's key on her keyring, and she has checked the fingerprint and signed it.
  2. Bob trusts Alice's signatures.
  3. Bob wants to send a private message to Carol.
  4. Bob gets Carol's public key. Since it is signed by Alice, and Bob trusts Alice, Bob does not need to check Carol's key before he uses it.

Using Cryptophane

  • Learn how to set the trust level of keys on your keyring.

Conclusion

Congratulations! You should have a rough understanding of the basics of asymetric cryptography.

The best way to really understand what's going on is to have a bit of hands-on experience, however. It's time to get started. You miht like to het hold of a friend, make up some test keys, and try it out. Refer back to this primer once you've had a chance to give it a go but for now, "Let's get started!"


Start using Cryptophane

If you haven't already, take a look at the encryption primer.

Now that you know how assymetric cryptography works, you're ready to beign using it for yourself. Learn how to:

  • create a key pair
  • send your public key to a keyserver so other people can encrypt messages to you
  • encrypt and decrypt messages
  • sign messages and validate signed messages
  • check the fingerprint of a key on your keyring
  • sign a key on your keyring to show that you are sure who it came from
  • set the level of trust of a key on your keyring

Can't find what you're looking for? Try the Cryptophane web site.


Creating a Key Pair

The first thing you need to do is create a key pair. You'll remember from the primer that we need to make two keys: a public key and a secret key. In Cryptophane, it's very simple to generate a key pair.

From the Keys menu, select the 'Generate Secret Key...' option. You'll be presented with the 'Generate Secret Key' screen, which requires you to complete the following information.

Name: Enter your full name. This will help people find your public key by allowing them to search using your name.

E-mail address: Enter your e-mail address. This is another way to help people find your public key. If you have more than one e-mail address, use the address you're likely to be using to send any encrypted data. A permanent, server-based address (rather than a webmail service) is a better option if you have the choice.

Comment: Enter any text that you'd like anyone searching for your key to be able to read. For example, you might want to make it clear who you are by putting your occupation in the comment field or by putting in some other identifiable information.

Key expires: Selecting the 'expiry' checkbox will make your key expire in one year from the date of creation. Although optional, it's a good idea to set an expiry on your key. In the unlikely event that a someone else gets hold of your secret key and passphrase (for example by getting access to your computer, stealing your secret key file and installing a keyboard sniffer), then by setting a expiry date you're limiting the amount of time they can potentially exploit this information. Having an expiry does mean that you have to reissue a key every year so you should weigh up whether the annoyance of doing that every year is worth the alternative. If you're paticularly security conscious we suggest checking this option.

Setting a passphrase

Because this is the most important step of creating your new key, we've given it its own heading.

Your passphrase is your way of verifying that you really are who you say you are. A malicious third-party who gets hold of your secret key AND your passphrase can, cryptographically, pretend to be you. They can also decrypt any information or communication that you've encrypted. Think of your passphrase like your bank PIN number or the password to your most secret information. It's worth taking the time to come up with a passphrase that is:

  1. easy for you to remember AND;
  2. impossible for anyone else to guess
It should be easy to remember as you'll need to type it in to cryptophane every time you sign a key and encrypt or decrypt anything. Capitalisation matters so a passphrase with some upper- and lower-case letters is recommended. Using numbers and other non-alphabetic characters (such as "@!% etc...) dramatically increases the possible combinations. Best of all, make it long: an example of a good passphrase is short sentence containing some words not found in a dictionary.

Now you've created your key pair, learn how to send your public key to a keyserver, or how to encrypt or decrypt messages.


Upload public key

Once you've generated your key pair, you're ready to make your public key available for anyone who wants to encrypt something to you. To do this, you must upload your public key to a public keyserver.

In Cryptophane it is a simple matter of selecting your public key from the key grid and then choosing the 'Send key to keyserver...' option which is available either by clicking the right mouse button on the key, or by selecting the option from the 'Keys' menu.

Now you're ready to start encrypting and decrypting messages and files.


Help To-Do

This section has not yet been written.

If you'd like to help out with the Cryptophane documentation, please contact cryptophane@ecosm.com.


Command-line Options

All command-line options may be specified starting with a slash (/), dash (-) or double dash (--). We have used a double dash in the examples below.

Actions

If an action is specified, Cryptophane will perform the action and then exit. If no action is specified, Cryptophane will show its graphical user interface.

--encrypt [filename]
Encrypt the specified file.
--sign [filename]
Sign the specified file.
--encryptsign [filename]
Encrypt and sign the specified file.
--decrypt [filename]
Decrypt the specified file.
--verify [filename]
Verify the signature of the specified file.
[filename]
Either encrypt the specified file, or decrypt it if its file extension ends in .pgp, .gpg or .asc.

Options

--gpg-path [path to GnuPG executable]
Do not automatically detect the location of GnuPG and use this path instead. If the path does not contain gpg.exe, the application will not start.
--homedir [path to key files]
Use the public and secret key files, and trust database, stored in this directory. The directory must already exist; key files will be created automatically if they do not exist.
--no-config
Do not write or read Cryptophane configuration from/to the registry. Useful if you're running Cryptophane from a computer that isn't yours.
--ignore-gpg-registry
By default, Cryptophane looks in GnuPG's configuration to find where the gpg.exe executable is stored. If this switch is supplied, Cryptophane will not use the registry to find GnuPG.
--memstick
A convenience option for --no-config --ignore-gpg-registry. If you intend to run Cryptophane from a memory stick on a computer that isn't yours, run it with this option and place the GnuPG executables in either the same folder as the Cryptophane executable, or in a sub-folder named "GnuPG" or "GPG".


About Cryptophane

Cryptophane was written by Roger Nesbitt.

Cryptophane is copyright ©2004-2005 eCOSM. It is currently licensed under a free-to-use binary license, and will be moved to the GPL in the near future. Cryptophane is written using Delphi 7. It provides a wrapper around the GnuPG application, available from gnupg.org.

Donations to support further development are appreciated. Please use PayPal to send to paypal@ecosm.com.

E-mail comments, criticisms or bug reports to cryptophane@ecosm.com.

Visit the Cryptophane web site.

This product comes with no warranty. Use at your own risk.