Cryptographiethumb|La machine de Lorenz utilisée par les nazis durant la Seconde Guerre mondiale pour chiffrer les communications militaires de haut niveau entre Berlin et les quartiers-généraux des différentes armées. La cryptographie est une des disciplines de la cryptologie s'attachant à protéger des messages (assurant confidentialité, authenticité et intégrité) en s'aidant souvent de secrets ou clés. Elle se distingue de la stéganographie qui fait passer inaperçu un message dans un autre message alors que la cryptographie rend un message supposément inintelligible à autre que qui de droit.
Preuve à divulgation nulle de connaissanceUne preuve à divulgation nulle de connaissance est une brique de base utilisée en cryptologie dans le cadre de l'authentification et de l'identification. Cette expression désigne un protocole sécurisé dans lequel une entité, nommée « fournisseur de preuve », prouve mathématiquement à une autre entité, le « vérificateur », qu'une proposition est vraie sans toutefois révéler d'autres informations que la véracité de la proposition. En pratique, ces schémas se présentent souvent sous la forme de protocoles de type « défi/réponse » (challenge-response).
Boîte noire (système)Une boîte noire, ou boîte opaque, est la représentation d'un système sans considérer son fonctionnement interne (que ce soit un objet mécanique ou électronique, un organisme, une personne, un mode d'organisation sociale, ou n'importe quel autre système). Ce fonctionnement interne est soit inaccessible (ce qui est semble-t-il l'utilisation première, qui reste courante), soit omis délibérément (c'est alors un outil théorique qui permet de choisir d'étudier exclusivement les échanges extérieurs).
Protocole cryptographiqueUn protocole de sécurité (protocole cryptographique ou protocole de chiffrement) est un protocole abstrait ou concret qui remplit une fonction liée à la sécurité et applique des méthodes cryptographiques, souvent sous forme de séquences de primitives cryptographiques. Un protocole décrit comment les algorithmes doivent être utilisés et inclut des détails sur les structures de données et les représentations, à quel point il peut être utilisé pour implémenter plusieurs versions interopérables d'un programme.