Provable security and other problems in modern cryptography
Airtight!

A concept called provable security brings the rigor of mathematics to the art of cryptography.
Cryptography was originally a mystical art form with the goal of concealing information from unauthorized persons. For example, a simple method for encrypting messages was developed by Gaius Julius Caesar around the year 100 BC. The basic idea of the method was to shift each letter of a message by a fixed amount in the alphabet. This position then served as a secret key. For example, if Caesar were to encrypt Veni, vidi, vici with a secret key of 3, it would result in a ciphertext of Yhql, ylgl, ylfl.
However, the method was soon seen through, then improved, cracked again, and so on. In this way, over time, a kind of cat-and-mouse game developed between the designers of encryption methods and the attackers who cracked the methods in order to access the secret information. This dragged on until the discovery of provable security in the 1980s.
Provable security is a field that seeks to assess the security of systems through mathematical proofs . People often think of cryptography as a sea of digits and huge numbers, which it often is; however, for a mathematician, the goal is to sweep away the details and define the system symbolically in a way that lends itself to logical proof. The development of provable security has brought rigor to the ancient practice of cryptography, which was once considered more art than science.
This article will introduce you to the concept of provable security and will put the principles to work with an example analysis of email communication. I'll also describe some typical errors in the use of cryptographic methods, as well as the strengths and limitations of provable security. And, last but not least, I'll use practical examples to illustrate current research topics in the field of modern cryptography.
Provable Security: The 6 Steps
According to the principles of security-by-design, the provable security process has six steps, as shown in Figure 1.
Step 1: Describe the Functionality
The first step is to describe the functionality of the system – What is the intended purpose? This description often takes the form of a requirements specification.
Step 2: Define the Security Properties
The task of defining the security characteristics usually has two parts. First, you need to describe the security objectives in a way that everyone can understand. After that, you need to formalize the whole thing precisely in order to avoid ambiguous interpretations.
Note that the formal security case applies only to the formal description. That is why this formalization must break down the real protection goals as precisely as possible. As a rule, this step covers the following aspects: What security property does the system need to provide? What system(s) with what setup are we talking about? What class of attackers do we need to fend off? What are their capabilities? When is an attack deemed successful?
Identifying and formalizing the security properties is a challenging task, and a suitable security model has not yet been found for many cryptographic schemes. For example, the research community has still not agreed on a definition for authenticated encryption [1]. In addition, there is always a natural state of competition between efficiency and security. Ideally, you would want to provide protection against all types of adversaries and rely on the best possible security guarantees. However, security is not free, and stronger security guarantees are often less efficient. Inefficient systems are not usually adopted in practice.
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Direct Download
Read full article as PDF:
Price $2.95
News
-
KaOS 2022.06 Now Available With KDE Plasma 5.25
The newest iteration of KaOS Linux not only adds the latest KDE Plasma desktop but sets LibreOffice as the default.
-
Manjaro 21.3.0 Is Now Available
Manjaro “Ruah” has been released and includes the latest Calamares installer, GNOME 42, and much more.
-
SpiralLinux is a New Linux Distribution Focused on Simplicity
A new Linux distribution, from the creator of GeckoLinux, is a Debian-based operating system with a focus on simplicity and ease of use.
-
HP Dev One Linux Laptop is Now Available for Pre-Order
The System76/HP collaboration Dev One laptop, geared toward developers, is now available for pre-order.
-
NixOS 22.5 Is Now Available
The latest release of NixOS with a much-improved package manager and a user-friendly graphical installer.
-
System76 Teams up with HP to Create the Dev One Laptop
HP and System76 have come together to develop a new laptop, powered by Pop!_OS and aimed toward developers.
-
Titan Linux is a New KDE Linux Based on Debian Stable
Titan Linux is a new Debian-based Linux distribution that features the KDE Plasma desktop with a focus on usability and performance.
-
Danielle Foré Has an Update for elementary OS 7
Now that Ubuntu 22.04 has been released, the team behind elementary OS is preparing for the upcoming 7.0 release.
-
Linux New Media Launches Open Source JobHub
New job website focuses on connecting technical and non-technical professionals with organizations in open source.
-
Ubuntu Cinnamon 22.04 Now Available
Ubuntu Cinnamon 22.04 has been released with all the additions from upstream as well as other features and improvements.