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
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
News
-
An All-Snap Version of Ubuntu is In The Works
Along with the standard deb version of the open-source operating system, Canonical will release an-all snap version.
-
Mageia 9 Beta 2 Ready for Testing
The latest beta of the popular Mageia distribution now includes the latest kernel and plenty of updated applications.
-
KDE Plasma 6 Looks to Bring Basic HDR Support
The KWin piece of KDE Plasma now has HDR support and color management geared for the 6.0 release.
-
Bodhi Linux 7.0 Beta Ready for Testing
The latest iteration of the Bohdi Linux distribution is now available for those who want to experience what's in store and for testing purposes.
-
Changes Coming to Ubuntu PPA Usage
The way you manage Personal Package Archives will be changing with the release of Ubuntu 23.10.
-
AlmaLinux 9.2 Now Available for Download
AlmaLinux has been released and provides a free alternative to upstream Red Hat Enterprise Linux.
-
An Immutable Version of Fedora Is Under Consideration
For anyone who's a fan of using immutable versions of Linux, the Fedora team is currently considering adding a new spin called Fedora Onyx.
-
New Release of Br OS Includes ChatGPT Integration
Br OS 23.04 is now available and is geared specifically toward web content creation.
-
Command-Line Only Peropesis 2.1 Available Now
The latest iteration of Peropesis has been released with plenty of updates and introduces new software development tools.
-
TUXEDO Computers Announces InfinityBook Pro 14
With the new generation of their popular InfinityBook Pro 14, TUXEDO upgrades its ultra-mobile, powerful business laptop with some impressive specs.