OpenSSLOpenSSL est une boîte à outils de chiffrement comportant deux bibliothèques, libcrypto et libssl, fournissant respectivement une implémentation des algorithmes cryptographiques et du protocole de communication SSL/TLS, ainsi qu'une interface en ligne de commande, openssl. Développée en C, OpenSSL est disponible sur les principaux systèmes d'exploitation et dispose de nombreux wrappers ce qui la rend utilisable dans une grande variété de langages informatiques. En 2014, deux tiers des sites Web l'utilisaient.
Transport Layer SecurityLa Transport Layer Security (TLS) ou « Sécurité de la couche de transport », et son prédécesseur la Secure Sockets Layer (SSL) ou « Couche de sockets sécurisée », sont des protocoles de sécurisation des échanges par réseau informatique, notamment par Internet. Le protocole SSL a été développé à l'origine par Netscape Communications Corporation pour son navigateur Web. L'organisme de normalisation Internet Engineering Task Force (IETF) en a poursuivi le développement en le rebaptisant Transport Layer Security (TLS).
LibreSSLLibreSSL est une boîte à outils de chiffrement implémentant les protocoles SSL et TLS et résultant d'un fork de la populaire OpenSSL par le projet OpenBSD à la suite de la découverte de la faille Heartbleed en . Dans un premier temps, LibreSSL s'est orienté avant tout vers OpenBSD, afin d’accroitre l’efficacité de l'audit et des corrections, pour ensuite étendre la portabilité vers d'autres systèmes.
Chiffrement par blocvignette|un schéma de chiffrement par bloc Le chiffrement par bloc (en anglais block cipher) est une des deux grandes catégories de chiffrements modernes en cryptographie symétrique, l'autre étant le chiffrement par flot. La principale différence vient du découpage des données en blocs de taille généralement fixe. La taille de bloc est comprise entre 32 et 512 bits. Dans le milieu des années 1990, le standard était de 64 bits. Depuis 2000 et le concours AES, le standard est de 128 bits.
Remplissage (cryptographie)En cryptographie, le remplissage ou bourrage (padding) consiste à faire en sorte que la taille des données soit compatible avec les algorithmes utilisés. Un grand nombre de schémas cryptographiques décrivent des algorithmes qui utilisent un partitionnement en blocs de taille fixe. Si la taille des données n'est pas un multiple de la taille d'un bloc alors l’utilisation d’un schéma de remplissage doit être envisagé. Plusieurs algorithmes classiques placent le texte en clair dans des grilles rectangulaires ou carrées.
Chosen-ciphertext attackA chosen-ciphertext attack (CCA) is an attack model for cryptanalysis where the cryptanalyst can gather information by obtaining the decryptions of chosen ciphertexts. From these pieces of information the adversary can attempt to recover the hidden secret key used for decryption. For formal definitions of security against chosen-ciphertext attacks, see for example: Michael Luby and Mihir Bellare et al. A number of otherwise secure schemes can be defeated under chosen-ciphertext attack.
Chosen-plaintext attackA chosen-plaintext attack (CPA) is an attack model for cryptanalysis which presumes that the attacker can obtain the ciphertexts for arbitrary plaintexts. The goal of the attack is to gain information that reduces the security of the encryption scheme. Modern ciphers aim to provide semantic security, also known as ciphertext indistinguishability under chosen-plaintext attack, and they are therefore, by design, generally immune to chosen-plaintext attacks if correctly implemented.
Réseau de FeistelUn réseau de Feistel est une construction utilisée dans les algorithmes de chiffrement par bloc, nommée d'après le cryptologue d'IBM, Horst Feistel. Elle a été utilisée pour la première fois dans Lucifer et DES. Cette structure offre plusieurs avantages, le chiffrement et le déchiffrement ont une architecture similaire voire identique dans certains cas. L'implémentation matérielle est aussi plus facile avec un tel système même si les choses ont passablement changé depuis la fin des années 1970.
Chiffrement de fluxvignette|Schéma du A5/1 et ses trois registres à décalage, un chiffrement par flot utiliser pour chiffrer les communications téléphoniques mobiles. Le chiffrement de flux, chiffrement par flot ou chiffrement en continu (en anglais stream cipher) est une des deux grandes catégories de chiffrements modernes en cryptographie symétrique, l'autre étant le chiffrement par bloc. Un chiffrement par flot arrive à traiter les données de longueur quelconque et n'a pas besoin de les découper.
GnuTLSGnuTLS (prononcé , GNU Transport Layer Security Library) est une implémentation libre des protocoles SSL et TLS. GnuTLS est distribué sous la forme d'une bibliothèque (libgnutls) permettant au programme qui l'utilise de disposer de protocoles de communication sécurisée, et de diverses interfaces en ligne de commande (dont gnutls-cli, gnutls-serv et gnutls-cli-debug). La bibliothèque libgnutls fournit les fonctionnalités suivantes : Protocoles SSL 3.0, DTLS, TLS 1.0, TLS 1.1, TLS 1.2 et TLS 1.