07.07.2023 Views

Implementing-cryptography-using-python

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

32 Chapter 2 ■ Cryptographic Protocols and Perfect Secrecy

■■

Gain an understanding of the one-time pad

■■

Create message secrecy using the binary XOR operator

■■

Gain an understanding of cryptographic hashes

■■

Explore the basics of Claude Shannon’s theorem

■■

Explore the concepts of perfect forward secrecy

The Study of Cryptology

The term cryptology, which was first used in 1844, means the study of codes and

the practice or art of writing or solving them. The word originates from the

Greek words kryptós, meaning “hidden secret”; graphein, meaning “to write”; and

logia, meaning “to study.” It has become a much-researched field that focuses

on techniques for securing communications from eavesdroppers.

Cryptology’s focus is in the construction and analysis of protocols that

prevent any person or system from decrypting messages without authorization.

Cryptology helps ensure the core tenets of cybersecurity by providing confidentiality,

integrity, authentication, and nonrepudiation. We will explore how we

use cryptology for each of these using Python as we move through this book.

For now, the important takeaway is that the study of cryptology is broken down

into two fields: cryptography and cryptanalysis.

Understanding Cryptography

Specifically, cryptography is the science of secret writing with the goal of hiding

the meaning of the message. Cryptography is further broken down into

cryptographic protocols, symmetric algorithms, and asymmetric (or public-key)

algorithms.

Cryptographic protocols, also known as security or encryption protocols,

consist of a well-defined series of steps and message exchanges between several

entities in order to achieve a specific security objective. Cryptographic protocols

should encapsulate a number of properties in order to be viable:

■■

The protocol must be known by each party involved, and each party must

know the well-defined steps to follow in advance of the protocol’s use.

■■

The protocol must be unambiguous; every step is well-defined and easy

to understand.

■■

The protocol must be followed by each party involved.

■■

The protocol must also be complete.

■■

The protocol must not give away any details about the message.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!