Alex Gaynor | 8c9dcb3 | 2013-11-03 13:10:57 -0800 | [diff] [blame] | 1 | Glossary |
| 2 | ======== |
| 3 | |
| 4 | .. glossary:: |
Alex Gaynor | 2d16012 | 2014-01-02 09:41:24 -0800 | [diff] [blame] | 5 | :sorted: |
Alex Gaynor | 8c9dcb3 | 2013-11-03 13:10:57 -0800 | [diff] [blame] | 6 | |
| 7 | plaintext |
| 8 | User-readable data you care about. |
| 9 | |
| 10 | ciphertext |
| 11 | The encoded data, it's not user readable. Potential attackers are able |
| 12 | to see this. |
| 13 | |
| 14 | encryption |
| 15 | The process of converting plaintext to ciphertext. |
| 16 | |
| 17 | decryption |
| 18 | The process of converting ciphertext to plaintext. |
| 19 | |
| 20 | key |
| 21 | Secret data is encoded with a function using this key. Sometimes |
Alex Gaynor | a0516bf | 2013-11-03 13:20:41 -0800 | [diff] [blame] | 22 | multiple keys are used. These **must** be kept secret, if a key is |
| 23 | exposed to an attacker, any data encrypted with it will be exposed. |
Alex Gaynor | 8c9dcb3 | 2013-11-03 13:10:57 -0800 | [diff] [blame] | 24 | |
| 25 | symmetric cryptography |
| 26 | Cryptographic operations where encryption and decryption use the same |
| 27 | key. |
| 28 | |
Alex Gaynor | 049a368 | 2014-02-17 13:21:39 -0800 | [diff] [blame] | 29 | public-key cryptography |
Alex Gaynor | 8c9dcb3 | 2013-11-03 13:10:57 -0800 | [diff] [blame] | 30 | asymmetric cryptography |
| 31 | Cryptographic operations where encryption and decryption use different |
Alex Gaynor | 049a368 | 2014-02-17 13:21:39 -0800 | [diff] [blame] | 32 | keys. There are separate encryption and decryption keys. Typically |
| 33 | encryption is performed using a :term:`public key`, and it can then be |
| 34 | decrypted using a :term:`private key`. Asymmetric cryptography can also |
| 35 | be used to create signatures, which can be generated with a |
| 36 | :term:`private key` and verified with a :term:`public key`. |
| 37 | |
| 38 | public key |
| 39 | This is one of two keys involved in :term:`public-key cryptography`. It |
Alex Gaynor | 2c89df5 | 2014-02-17 13:30:16 -0800 | [diff] [blame] | 40 | can be used to encrypt messages for someone possessing the |
| 41 | corresponding :term:`private key` and to verify signatures created with |
| 42 | the corresponding :term:`private key`. This can be distributed |
| 43 | publicly, hence the name. |
Alex Gaynor | 049a368 | 2014-02-17 13:21:39 -0800 | [diff] [blame] | 44 | |
| 45 | private key |
| 46 | This is one of two keys involved in :term:`public-key cryptography`. It |
| 47 | can be used to decrypt messages which were encrypted with the |
Alex Gaynor | 2c89df5 | 2014-02-17 13:30:16 -0800 | [diff] [blame] | 48 | corresponding :term:`public key`, as well as to create signatures, |
| 49 | which can be verified with the corresponding :term:`public key`. These |
Alex Gaynor | 049a368 | 2014-02-17 13:21:39 -0800 | [diff] [blame] | 50 | **must** be kept secret, if they are exposed, all encrypted messages |
| 51 | are compromised, and an attacker will be able to forge signatures. |
Alex Gaynor | 953ebf8 | 2013-12-08 10:28:30 -0800 | [diff] [blame] | 52 | |
| 53 | authentication |
| 54 | The process of verifying that a message was created by a specific |
| 55 | individual (or program). Like encryption, authentication can be either |
| 56 | symmetric or asymmetric. Authentication is necessary for effective |
| 57 | encryption. |
| 58 | |
Alex Gaynor | 2d16012 | 2014-01-02 09:41:24 -0800 | [diff] [blame] | 59 | ciphertext indistinguishability |
Alex Gaynor | 953ebf8 | 2013-12-08 10:28:30 -0800 | [diff] [blame] | 60 | This is a property of encryption systems whereby two encrypted messages |
| 61 | aren't distinguishable without knowing the encryption key. This is |
| 62 | considered a basic, necessary property for a working encryption system. |
Paul Kehrer | d5852cb | 2015-01-30 08:25:23 -0600 | [diff] [blame] | 63 | |
| 64 | text |
Paul Kehrer | 76c6990 | 2015-02-04 13:07:20 -0600 | [diff] [blame] | 65 | This type corresponds to ``unicode`` on Python 2 and ``str`` on Python |
Paul Kehrer | 834d22f | 2015-02-06 11:01:07 -0600 | [diff] [blame] | 66 | 3. This is equivalent to ``six.text_type``. |
Eeshan Garg | 9475900 | 2015-05-20 20:35:33 +0530 | [diff] [blame] | 67 | |
| 68 | nonce |
| 69 | A nonce is a **n**\ umber used **once**. Nonces are used in many |
| 70 | cryptographic protocols. Generally, a nonce does not have to be secret |
| 71 | or unpredictable, but it must be unique. A nonce is often a random |
| 72 | or pseudo-random number (see :doc:`Random number generation |
| 73 | </random-numbers>`). Since a nonce does not have to be unpredictable, |
| 74 | it can also take a form of a counter. |
Paul Kehrer | 5bc8c7d | 2017-06-24 13:21:20 -1000 | [diff] [blame] | 75 | |
| 76 | opaque key |
| 77 | An opaque key is a type of key that allows you to perform cryptographic |
| 78 | operations such as encryption, decryption, signing, and verification, |
| 79 | but does not allow access to the key itself. Typically an opaque key is |
| 80 | loaded from a `hardware security module`_ (HSM). |
| 81 | |
Paul Kehrer | 1b86dc5 | 2017-09-20 23:42:34 +0800 | [diff] [blame] | 82 | A-label |
| 83 | The ASCII compatible encoded (ACE) representation of an |
| 84 | internationalized (unicode) domain name. A-labels begin with the |
| 85 | prefix ``xn--``. To create an A-label from a unicode domain string use |
| 86 | a library like `idna`_. |
Paul Kehrer | 5bc8c7d | 2017-06-24 13:21:20 -1000 | [diff] [blame] | 87 | |
Paul Kehrer | 1aac78c | 2017-10-11 19:49:57 +0800 | [diff] [blame] | 88 | bits |
| 89 | A bit is binary value -- a value that has only two possible states. |
| 90 | Typically binary values are represented visually as 0 or 1, but |
| 91 | remember that their actual value is not a printable character. A byte |
| 92 | on modern computers is 8 bits and represents 256 possible values. In |
| 93 | cryptographic applications when you see something say it requires a 128 |
| 94 | bit key, you can calculate the number of bytes by dividing by 8. 128 |
| 95 | divided by 8 is 16, so a 128 bit key is a 16 byte key. |
| 96 | |
Paul Kehrer | e885bd6 | 2017-10-11 20:29:23 +0800 | [diff] [blame] | 97 | U-label |
| 98 | The presentational unicode form of an internationalized domain |
| 99 | name. U-labels use unicode characters outside the ASCII range and |
| 100 | are encoded as A-labels when stored in certificates. |
| 101 | |
Paul Kehrer | 5bc8c7d | 2017-06-24 13:21:20 -1000 | [diff] [blame] | 102 | .. _`hardware security module`: https://en.wikipedia.org/wiki/Hardware_security_module |
Paul Kehrer | 1b86dc5 | 2017-09-20 23:42:34 +0800 | [diff] [blame] | 103 | .. _`idna`: https://pypi.org/project/idna/ |