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
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Systemd Fixes Bug While Facing New Challenger in GNU Shepherd
The systemd developers have fixed a really nasty bug amid the release of the new GNU Shepherd init system.
-
AlmaLinux 10.0 Beta Released
The AlmaLinux OS Foundation has announced the availability of AlmaLinux 10.0 Beta ("Purple Lion") for all supported devices with significant changes.
-
Gnome 47.2 Now Available
Gnome 47.2 is now available for general use but don't expect much in the way of newness, as this is all about improvements and bug fixes.
-
Latest Cinnamon Desktop Releases with a Bold New Look
Just in time for the holidays, the developer of the Cinnamon desktop has shipped a new release to help spice up your eggnog with new features and a new look.
-
Armbian 24.11 Released with Expanded Hardware Support
If you've been waiting for Armbian to support OrangePi 5 Max and Radxa ROCK 5B+, the wait is over.
-
SUSE Renames Several Products for Better Name Recognition
SUSE has been a very powerful player in the European market, but it knows it must branch out to gain serious traction. Will a name change do the trick?
-
ESET Discovers New Linux Malware
WolfsBane is an all-in-one malware that has hit the Linux operating system and includes a dropper, a launcher, and a backdoor.
-
New Linux Kernel Patch Allows Forcing a CPU Mitigation
Even when CPU mitigations can consume precious CPU cycles, it might not be a bad idea to allow users to enable them, even if your machine isn't vulnerable.
-
Red Hat Enterprise Linux 9.5 Released
Notify your friends, loved ones, and colleagues that the latest version of RHEL is available with plenty of enhancements.
-
Linux Sees Massive Performance Increase from a Single Line of Code
With one line of code, Intel was able to increase the performance of the Linux kernel by 4,000 percent.