# data[].attributes.body
Here's an article briefly discussing the basics of Cryptography and it's integration to the realm of cybersecurity.

# data[].attributes.attachment_link.readable_text
What is Cryptography? - Edureka

Encryption is essentially important because it secures data and information from unauthorized access and thus maintains confidentiality. Here's an article to help you understand "w hat is cryptography " and how can it be used to protect corporate secrets, secure classified information, and personal information to guard against things like identity theft.

Here's what I have covered in this article:

Introduction to Cryptography?

Encryption Algorithms

How various Cryptographic Algorithms Works?

Now, I'm going to take help of an example or a scenario to explain what is cryptography?

Let's say there's a person named Andy. Now suppose Andy sends a message to his friend Sam who is on the other side of the world. Now obviously he wants this message to be private and nobody else should have access to the message. He uses a public forum, for example, WhatsApp for sending this message. The main goal is to secure this communication.

Let's say there is a smart guy called Eaves who secretly got access to your communication channel. Since this guy has access to your communication, he can do much more than just eavesdropping, for example, he can try to change the message. Now, this is just a small example. What if Eave gets access to your private information? The result could be catastrophic.

So how can Andy be sure that nobody in the middle could access the message sent to Sam? That's where Encryption or Cryptography comes in. Let me tell you " What is Cryptography ".

Cryptography is the practice and study of techniques for securing communication and data in the presence of adversaries.

Alright, now that you know " what is cryptography " let's see how cryptography can help secure the connection between Andy and Sam.
So, to protect his message, Andy first converts his readable message to unreadable form. Here, he converts the message to some random numbers. After that, he uses a key to encrypt his message, in Cryptography, we call this ciphertext.

Andy sends this ciphertext or encrypted message over the communication channel, he won't have to worry about somebody in the middle of discovering his private messages. Suppose, Eaves here discover the message and he somehow manages to alter it before it reaches Sam.

Now, Sam would need a key to decrypt the message to recover the original plaintext. In order to convert the ciphertext into plain text, Sam would need to use the decryption key. Using the key he would convert the ciphertext or the numerical value to the corresponding plain text.

After using the key for decryption what will come out is the original plaintext message, is an error. Now, this error is very important. It is the way Sam knows that message sent by Andy is not the same as the message that he received. Thus, we can say that encryption is important to communicate or share information over the network.

Cryptography is broadly classified into two categories: Symmetric key Cryptography and Asymmetric key Cryptography (popularly known as public key cryptography).

Now Symmetric key Cryptography is further categorized as Classical Cryptography and Modern Cryptography.

Further drilling down, Classical Cryptography is divided into Transposition Cipher and Substitution Cipher. On the other hand, Modern Cryptography is divided into Stream Cipher and Block Cipher.

So, let's understand these algorithms with examples.

Let's start with the Symmetric key encryption

Symmetric Key Cryptography

An encryption system in which the sender and receiver of a message share a single, common key that is used to encrypt and decrypt the message. The most popular symmetric- key system is the Data Encryption Standard (DES).

Transposition Ciphers

In Cryptography, a transposition cipher is a method of encryption by which the positions held by units of plaintext (which are commonly characters or groups of characters) are shifted according to a regular system, so that the ciphertext constitutes a permutation of the plaintext.

That is, the order of the units is changed (the plaintext is reordered). Mathematically, a bijective function is used on the characters' positions to encrypt and an inverse function to decrypt.
Example:

Substitution Cipher

Method of encryption by which units of plaintext are replaced with ciphertext, according to a fixed system; the "units" may be single letters (the most common), pairs of letters, triplets of letters, mixtures of the above, and so forth.

Example:
Consider this example shown on the slide: Using the system just discussed, the keyword "zebras" gives us the following alphabets:

Stream Cipher

Symmetric or secret-key encryption algorithm that encrypts a single bit at a time. With a Stream Cipher, the same plaintext bit or byte will encrypt to a different bit or byte every time it is encrypted.

Block Cipher

An encryption method that applies a deterministic algorithm along with a symmetric key to encrypt a block of text, rather than encrypting one bit at a time as in stream ciphers

Example: A common block cipher, AES, encrypts 128-bit blocks with a key of predetermined length: 128, 192, or 256 bits. Block ciphers are pseudorandom permutation (PRP) families that operate on the fixed size block of bits. PRPs are functions that cannot be differentiated from completely random permutations and thus, are considered reliable until proven unreliable.

The encryption process where different keys are used for encrypting and decrypting the information. Keys are different but are mathematically related, such that retrieving the plain text by decrypting ciphertext is feasible.

RSA is the most widely used form of public key encryption,

RSA Algorithm

RSA stands for Rivest, Shamir, and Adelman, inventors of this technique

Both public and private key are interchangeable

Variable Key Size (512, 1024, or 2048 bits)

Here's how keys are generated in RSA algorithm
Alright, this was it for "What is Cryptography" article. To safeguard your information and data shared over the internet it is important to use strong encryption algorithms, to avoid any catastrophic situations.

This brings us to the end of our article on What is Cryptography? I hope you found this article informative and added value to your knowledge.

If you wish to check out more articles on the market's most trending technologies like Artificial Intelligence, DevOps, Ethical Hacking, then you can refer to Edureka's official site.

Do look out for other articles in this series which will explain the various other aspects of Cybersecurity.

1. What is Cybersecurity?

2. Cybersecurity Framework

3. Steganography Tutorial

4. What is Network Security?

5. What is Computer Security?

6. What is Application Security?

7. Penetration Testing

8. Ethical Hacking Tutorial

9. Everything You Need To Know About Kali Linux

10. Ethical Hacking using Python

11. DDOS attack

12. MacChanger with Python

13 ARP Spoofing

14. Proxychains, Anonsurf & MacChange

15. Footprinting

16. Top 50 Cybersecurity Interview Questions and Answers

# data[].attributes.attachment_link.title
What is Cryptography? - An Introduction to Cryptographic Algorithms

# data[].attributes.attachment_link.description
Encryption is essentially important because it secures data and information from unauthorized access and thus maintains confidentiality. Here's an article to help you understand "w hat is cryptography " and how can it be used to protect corporate secrets, secure classified information, and personal information to guard against things like identity theft.

# data[].attributes.body
1. Symmetric Key Cryptography (Private Key)
2. Asymmetric Key Cryptography (Public Key)
3. Hashing

# data[].attributes.body
Symmetric encryption is a type of encryption where only one key (a secret key) is used to both encrypt and decrypt electronic data. The entities communicating via symmetric encryption must exchange the key so that it can be used in the decryption process. This encryption method differs from asymmetric encryption where a pair of keys - one public and one private - is used to encrypt and decrypt messages.

# data[].attributes.attachment_link.readable_text
What is a Symmetric Key?

In cryptography, a symmetric key is one that is used both to encrypt and decrypt information. This means that to decrypt information, one must have the same key that was used to encrypt it. The keys, in practice, represent a shared secret between two or more parties that can be used to maintain a private information link. This requirement that both parties have access to the secret key is one of the main drawbacks of symmetric key encryption, in comparison to public-key encryption.

Asymmetric encryption, on the other hand, uses a second, different key to decrypt information. (See " What is an Asymmetric Key or Asymmetric Key Cryptography?")

Related Articles

Secure your data, comply with regulatory and industry standards, and protect your organization's reputation. Learn how Thales can help.

# data[].attributes.attachment_link.description
In cryptography, a symmetric key is one that is used both to encrypt and decrypt information. This means that to decrypt information, one must have the same key that was used to encrypt it. The keys, in practice, represent a shared secret between two or more parties that can be used to maintain a private information link.

# data[].attributes.body
Asymmetric Encryption uses two distinct, yet related keys. One key, the Public Key, is used for encryption and the other, the Private Key, is for decryption. As implied in the name, the Private Key is intended to be private so that only the authenticated recipient can decrypt the message. RSA, Diffie Hellman, and DES are the prominent algorithms which are based on Asymmetric Key Encryption

# data[].attributes.headline
Primary differentiators of Private Key and Public Key Encryption

# data[].attributes.subject
Primary differentiators of Private Key and Public Key Encryption

# data[].attributes.attachment_link.readable_text
The field of cryptography is fundamental to many Blockchain systems. Cryptography, necessarily, is the practice of secure communication in the significant presence of third parties. In other words, cryptography allows the data to be stored and communicated in such a way that third parties are unable to read the contents of the communication. Cryptography used to create public and private keys, to make decentralized systems a secure network in which users can safely operate.

Computing and Internet security may be nowadays everyone's business, but it is most critical for information technology specialists. Learning the core concepts of operating systems and network-level security helps in avoiding ongoing threats and eliminating system vulnerabilities.

Before diving into the difference between a public and a private key, we must first be aware of what a key is. A cryptographic key is a piece of information used by a cryptographic algorithm, to transform plain text into a coded form (ciphertext) or vice versa. It is this key which remains private and allows secure communication.

Of any cryptographic operation, the cryptographic key is the core part. Some cryptographic systems involve pairs of operations, such as encryption and decryption. The variable data provided as input to a cryptographic algorithm has a key as a part, to execute this kind of operation. The security of the scheme is dependent on the safety of the keys used, in a properly defined cryptographic system.

A cryptosystem is a given suite of algorithms, which generates keys. These cryptographic keys may be either symmetric or asymmetric. For symmetric encryption, only one key is required to use both encryption and decryption of data. On the other hand, two different keys needed for asymmetric encryption: one for encryption and one for decryption. The public-private pairs of the keys are provided by a certificate authority (CA) by using the public key infrastructure.
Introduction
By what we have understood above, we can thereby state the following definitions of both the public and the private key respectively:

Public key: A public key used for encryption of messages, not decryption. This key is published publicly, so that anyone who wishes to send a particular receiver a specific message securely, can do so.

Private key: Private keys, as the name tacitly suggests, are meant to be kept secret or private. A private key is used to decrypt the encrypted message that was sent using a matching public key. As compared to a public key, a private key is much faster.

Cryptographic keys can be differentiated by the purpose for which they are used. We may use this key for data encryption and decryption, digital signature verification, digital signature creation, message authentication, key transport, and key wrapping.

The length of a key generally expressed in bits. A longer key makes it more challenging to crack the encrypted data; but, a longer key result in longer periods to perform encryption and decryption processes.

The Certificate Authority provides these keys. The private key is given to the requester of the key. The public key, on the other hand, is made public in an open access directory. Private keys never travel on the Internet and thus hopefully remain private.
The Question of Ownership
A large part of security brought by cryptography concerns is about who signs a given document, or who replies at the opposite side of a connection. Assuming that keys are not compromised, that question remains of determining the owner of the corresponding public key. To be able to tell who the owner of the key is, public keys are often provided with attributes such as names, addresses, and other such similar labels. One or more supporters can digitally sign the packed collection of a public key and its characteristics. In the Public Key Infrastructure (PKI) model, the resulting object is called a certificate and signed by a certificate authority (CA). In the PGP model, it is still called a "key" and may be signed by various people who have personally verified that the attributes are similar to the subject.

In both PKI and PGP models, the compromised keys can abolish. Which has the side effect of disrupting the relationship between a key's attributes and the subject, which may be valid. To recover from such disruption, signers often use different keys for everyday tasks. Signing with an intermediate certificate (for PKI) or a subkey (for PGP) facilitates keeping the principal private key in an offline safe.

Deleting a key on purpose to make the data inaccessible is called crypto-shredding.
How does it work?
As the key pair is mathematically connected, whatever is encrypted by a Public Key can only be decrypted by its corresponding Private Key and vice versa.

For example, if Joseph wants to send some secret data to Miranda. Also wants to be sure that only Miranda may be able to read it, then he will encrypt the data with Miranda's Public Key. Only Miranda will have access to her corresponding Private Key. Therefore, she is the only person with the ability to decrypt the encrypted data back into its original form, the message that Joseph wanted to deliver to her originally.

As only Miranda has access to her Private Key, it is evident that only she can decrypt the encrypted data sent by Joseph. If someone else procures access to the encrypted data. it will remain confidential as they do not have access to Miranda's Private Key.

The key must be long enough so that a hacker is unable to try all possible combinations. A key length of 80 bits is generally considered the minimum for strong security with symmetric encryption algorithms. 128-bit keys are commonly used and considered very strong.
Conclusion
The user's digital keys are an essential element because they allow for many of the ownership features that can found in several cryptographically secure systems. It is very important to note that these digital keys not stored on those very token networks. Instead stored and created by digital token wallets, which exist independently of the network. These keys, as discussed above, are generated in pairs, consisting of a public key and private key. The public key can be thought of as being an individual's bank account, while the private key becomes the secret PIN to that bank account.

The public key is cryptographically, connected to a digital token address in a sense that the address is the representation of the public key. It is often the case that the public key is used to generate an actual digital token address. This address serves as an identity of the user's account to which we can pay funds.

The user's digital keys are an essential element because they allow for many of the ownership features that can found in several cryptographically secure systems. It is very important to note that these digital keys not stored on those very token networks. Instead stored and created by digital token wallets, which exist independently of the network. These keys, as discussed above, are generated in pairs, consisting of a public key and private key. The public key can be thought of as being an individual's bank account, while the private key becomes the secret PIN to that bank account.

The public key is cryptographically, connected to a digital token address in a sense that the address is the representation of the public key. It is often the case that the public key is used to generate an actual digital token address. This address serves as an identity of the user's account to which we can pay funds.

# data[].attributes.attachment_link.title
Differentiating between the Public and the Private keys

# data[].attributes.attachment_link.description
The field of cryptography is fundamental to many Blockchain systems. Cryptography, necessarily, is the practice of secure communication in the significant presence of third parties. In other words, cryptography allows the data to be stored and communicated in such a way that third parties are unable to read the contents of the communication.

# data[].attributes.attachment_link.readable_text
Cryptography is one of the most important tools for building secure systems. Through the proper use of cryptography, one can ensure the confidentiality of data, protect data from unauthorized modification, and authenticate the source of data. Cryptography can also enable many other security goals as well. Cryptography, however, is not a panacea. Getting cryptography right is extremely hard. Some common pitfalls are listed below.

Rolling your own cryptographic algorithms or implementations. Designing a cryptographic algorithm (including protocols and modes) requires significant and rare mathematical skills and training, and even trained mathematicians sometimes produce algorithms that have subtle problems. There are also numerous subtleties with implementing cryptographic algorithms. For example, the order of operations involved when exponentiating a number - something common in cryptographic operations - can leak secret information to attackers. Standard algorithms and libraries are preferable.

Misuse of libraries and algorithms. Even when using strong libraries, do not assume that just using the libraries will be sufficient. There have been numerous instances in which standard libraries were used, but the developers using the libraries made incorrect assumptions about how to use the library routines. In other situations, developers don't choose the right algorithm or use the algorithm incorrectly. For example, an encryption scheme may protect the confidentiality of data, but may not protect against malicious modifications to the data. As another example, if an algorithm requires an initialization vector (IV), then choosing an IV with certain properties may be required for the algorithm to work securely. Understanding the nuances of algorithm and library usage is a core skill for applied cryptographers.

Poor key management. When everything else is done correctly, the security of the cryptographic system still hinges on the protection of the cryptographic keys. Key management mistakes are common, and include hard-coding keys into software (often observed in embedded devices and application software), failure to allow for the revocation and/or rotation of keys, use of cryptographic keys that are weak (e.g., keys that are too short or that are predictable), and weak key distribution mechanisms.

Randomness that is not random. Confusion between statistical randomness and cryptographic randomness is common. Cryptographic operations require random numbers that have strong security properties. In addition to obtaining numbers with strong cryptographic randomness properties, care must be taken not to re-use the random numbers.

Failure to centralize cryptography.Numerous situations have been observed in which different teams within an organization each implemented their own cryptographic routines. Cryptographic algorithms often don't interact nicely. Best practices indicate getting it "right" once and reusing the component elsewhere.

Failure to allow for algorithm adaptation and evolution. See Bullet "Design for changes in the security properties of components beyond your control" in "Be flexible when considering future changes to objects and actors" section.

Cryptography is so hard to get right that it alwaysmakes sense to work with an expert if you can. Note that expertise in applied cryptography is not the same as being a mathematician and having a mathematical understanding of cryptography. At the highest level, make use of proven algorithms and libraries, but realize that just the use of such things does not guarantee security - it is easy to accidentally misuse these things. Have a cryptography expert work with your designers to provide an API abstraction around a strong library, so that that your developers are not making decisions on algorithms and cipher modes, and so that if you need to change algorithms behind that abstraction layer you can.

# data[].attributes.attachment_link.description
Cryptography is one of the most important tools for building secure systems. Through the proper use of cryptography, one can ensure the confidentiality of data, protect data from unauthorized modification, and authenticate the source of data. Cryptography can also enable many other security goals as well. Cryptography, however, is not a panacea.

# data[].attributes.body
Diffie-Hellman key exchange, also called exponential key exchange, is a method of digital encryption that uses numbers raised to specific powers to produce decryption keys on the basis of components that are never directly transmitted, making the task of a would-be code breaker mathematically overwhelming.

# data[].attributes.attachment_link.readable_text
As an engineer at Cermati, I have a lot of freedom to explore different technical topics - and share it with my coworkers on casual office conversations. At Cermati, Diffie-Hellman implementations can be found in our infrastructure - OpenVPN and Nginx have implementations of Diffie-Hellman key exchange protocol inside.

I have been spending my time reading some mathematics articles and books recently, and I got interested to make my own version of an article explaining how Diffie-Hellman key exchange works - which is why I created this article.

Diffie-Hellman key exchange was introduced by Whitfield Diffie and Martin Hellman to solve the problem of securely determining a shared key between two communicating parties over an insecure network.

Martin Hellman (left) and Whitfield Diffie (right), image owned by Stanford News Service.

The algorithm utilizes some basic mathematical concepts such as prime numbers and modulo operations, which we'll explain briefly.

Prime numbers is one of the basic concepts of mathematics we should have been familiar with. They, by definition, are natural numbers larger than 1 that can only be a product of 1 and its own value.

n is a prime number if and only if there's no natural numbers i and j where
1 < i < n and 1 < j < n that fulfills the condition where i × j = n.

The set of prime numbers contains 2, 3, 5, 7, 11, 13, and so on.

2 is a prime number because there's no natural numbers between 1 and 2, so there's no value i and j between 1 and 2 that can fulfill the condition where
i × j = 2.

3 is a prime number. The only natural number between 1 and 3 is 2, therefore the only possible value for both i and j is 2. Given i = 2, j = 2, and n = 3, it doesn't fulfill the condition i × j = n since 2 ×2 ≠ 3.

4 is not a prime number, as it has natural numbers i and j where 1 < i < n and 1 < j < n that fulfills the condition where i × j = n. Between 1 and n given
n = 4 we have natural numbers 2 and 3, and as for i = 2 and j = 2 we have the condition i × j = n fulfilled.

1 is not a prime number, as it doesn't fulfill the requirements to be considered as one. Given n = 1, it's impossible for i and j to be greater than 1 but less than n. 1 < i < n and 1 < j < n where n = 1 would imply that somehow 1 < i < 1 and 1 < j < 1 is true, which we can translate to 1 < 1 is true. It is a contradiction in the statement, hence the statement is false.

Therefore, the number n is a prime number if and only if n > 1 and n can be factored with number(s) other than 1 and n. If n > 1 and n can be factored with number(s) other than 1 and n, it's a composite number.

The properties of prime and composite numbers are taken into considerations on the Diffie-Hellman key exchange to choose the value for the variables used in the calculations.

Modulo operation is an operation where the result is the remainder of the division operation performed with two given integers as operands. To make it easier, here are a few examples. Please note we're using only integers in the division, and the remainders aren't added to the results.

13 / 5 = 2
13 mod 5 = 3

From the examples above, we can see the modulo operations' results equal to the remainder of the division operations performed with the same operands.

An example of the modulo operation we perform every day is clock reading.

A clock has the numbers 1 to 12 positioned in a circular manner, and we can tell to which number's direction the shorthand on the clock should be pointing given the hour of the day.

An illustration on the positioning of numbers on a clock's surface.

If it's 13:00, the shorthand should be pointing to the direction of number 13 mod 12 = 1 at the clock. If it's 19:00, the shorthand should be pointing to the direction of number 19 mod 12 = 7 on the clock.

If it's 12:00 or 24:00 (or 00:00), the shorthand should be pointing to the direction of number 12, as 0 mod 12 = 12 mod 12 = 24 mod 12 = 0.

It's easy for people owning the network devices our data passes through to intercept our communication and tamper with the data. Cryptographic algorithms are designed to prevent people from spying on us and to keep the integrity of our communication system. Yet, cryptographic algorithms would require a piece of information shared between the communicating parties for them to be able to understand each other's encrypted messages.

The shared information - which we will refer as cryptographic key or just key - should be decided by the communicating parties. The key is required for encryption and decryption process on the message to result in the correct ciphertext or plaintext.

An example of cryptographic algorithm is the Caesar's cipher, which was supposed to be used by the ancient Roman army under Julius Caesar. It's a simple algorithm that builds a circular structure using characters in the alphabetic system.

A B C D E F G H I J ... U V W X Y Z

The next character from A is B, the next character from B is C, and so on all the way until Z. The next character of Z is back to A, and the cycle continues.

Caesar's cipher works by shifting the characters in a message to the left or right by n during the encryption process, and shifting it back by n to the opposite side during the decryption process.

For example, we have the plaintext message "MEET ME AT LUNCHTIME" with key n = 8 that we're going to encrypt using Caesar's cipher.

To decrypt the message, we need to reverse the character shifting process by using the key n = 8.

By the way, did you notice that by using Caesar's cipher with 26 letters of the alphabet we're practically performing modulo operations with 26 points in the cycle instead of 12 as in the clock reading case?

An illustration on the positioning of 26 letters in alphabet on a circular disk's surface.

Since the letters A to Z can be represented with numbers 1 to 26, we can formulate the character shifting in modulo operation as follows.

t would be the number that represents the plaintext character, while n is the key. c is the ciphertext character as the result of the calculation performed.

Caesar's cipher is pretty simple to break by using brute force, so we're only using it as an example to demonstrate how things work in the big picture.

As explained, a cryptographic algorithm requires a shared key between the sender and the receiver. The sender uses the key to encrypt the message, while the receiver needs the key to decrypt it. Without the shared key, they wouldn't be able to understand each other's messages.

Diffie-Hellman key exchange can be used together to securely exchange keys over an insecure network. It works using the concepts of prime numbers and modulo operations.

Let's say Alice and Bob, the two communicating parties, are using Diffie-Hellman key exchange. Alice and Bob publicly decided values g and p to perform modulo operation. p must be a prime number decided by the two communicating parties, while g can be any number agreed by both parties.

The formula of Diffie-Hellman key exchange.

p must be a prime number to minimize the possibility of the dividend and the divisor having the same common factor, which reduces the number of possible resulting values from the modulo operation. If p is a composite number and has common factors with the dividend, the possible resulting value set size from the modulo operation wouldn't be less than p. It means less possible values to try using brute force attacks on the algorithm

The following rules regarding exponentiation and modulo operations are used during the key exchange steps we're going to perform.

A rule on exponentiation.

A rule on modulo operation with exponent dividend.

In our example, we're going to use a small prime number value to make it easier for explaining the process. To be secure in real life cases, the key exchange should use a really large prime number value.

Both of them, without telling each other what their secrets are, decided their own secrets. a and b are the secrets for Alice and Bob respectively.

Alice then performs the following calculation and send the result to Bob.

i = 22²³ mod 13 = 3

While Bob performs the following calculation and send the result to Alice.

j = 22³¹ mod 13 = 9

Using Bob's j, Alice performs the following calculation.

n = 9²³ mod 13 = 3

Using Alice's i, Bob performs the following calculation.

n = 3³¹ mod 13 = 3

They now both have the shared key n = 3, which they can use as the key for the encryption algorithm they agreed to use beforehand. Someone who's eavesdropping their communication will be able to get the numbers g = 22, p = 13, i = 3, and j = 9. But if the eavesdropper doesn't know the values of a or b, it is hard to guess the value of n. The larger the value of p, the larger the range of numbers to be brute-forced by the eavesdropper to be able to decrypt the message they intercepted.

Let's take a look at the complete flow of the communication between Alice and Bob. Alice wants to send Bob the message "HELLO" over insecure network, so Alice and Bob would perform the key exchange to get a shared key. We'll go with g = 22, p = 13, a = 23, and b = 31 as we use in the example before. From there, we get n = 3.

Alice proceed to encrypt the plaintext "HELLO" using Caesar's cipher with n = 3 into the ciphertext "KHOOR" and send it to Bob. Bob, upon receiving the message, understands how the ciphertext was supposed to be decrypted. He reversed the Caesar's cipher encryption process using n = 3, and transformed the ciphertext "KHOOR" back to the plaintext "HELLO" before reading it.

Bob knows how to decrypt the message because he knows the key. But an eavesdropper tapping their communication would need to guess the encryption algorithm and the key used to decrypt and understand the message.

Depending on the protocol agreed by both Alice and Bob, the Diffie-Hellman key exchange can be performed multiple times during the communication so it's possible that for every message sent a different key exists to decrypt it. This, while computationally more expensive than using the same key for the whole communication, forces the eavesdropper to perform brute-force attacks on every single messages sent during the communication flow since the key from the earlier message doesn't apply to the current one.

We've taken a quick look into the basic concepts regarding the Diffie-Hellman key exchange and how it's all working together to form the security protocol. This article is intended to be introductory in nature, so a lot of parts regarding the mathematical and computational complexity is not present here.

To better understand the key exchange protocol, we can look deeper into the mathematics of exponentiation and modulo operation rules to see the computational complexity of the operations performed.

# data[].attributes.attachment_link.title
A Quick Look into Diffie-Hellman Key Exchange

# data[].attributes.attachment_link.description
As an engineer at Cermati, I have a lot of freedom to explore different technical topics - and share it with my coworkers on casual office conversations. At Cermati, Diffie-Hellman implementations can be found in our infrastructure - OpenVPN and Nginx have implementations of Diffie-Hellman key exchange protocol inside.

# data[].attributes.attachment_link.readable_text
Security is top of mind for anyone in IT these days. It must be, given that Gartner estimates that spending on information security and risk management will total $172 billion in 2022, up from $155 billion in 2021. While there are plenty of technologies you can buy to secure your data, encryption is one aspect of security technology that every computer user should understand.

How Encryption Works

Encryption is a way for data-messages or files-to be made unreadable, ensuring that only an authorized person can access that data. Encryption uses complex algorithms to scramble data and decrypts the same data using a key provided by the message sender. Encryption ensures that information stays private and confidential, whether it's being stored or in transit. Any unauthorized access to the data will only see a chaotic array of bytes.

Here are some essential encryption terms you should know:

Also known as a cipher, algorithms are the rules or instructions for the encryption process. The key length, functionality, and features of the encryption system in use determine the effectiveness of the encryption.

Decryption is the process of converting unreadable ciphertext to readable information.

An encryption key is a randomized string of bits used to encrypt and decrypt data. Each key is unique, and longer keys are harder to break. Typical key lengths are 128 and 256 bits for private keys and 2048 for public keys.

There are two kinds of cryptographic key systems, symmetric, and asymmetric.

Symmetric Key Systems

In a symmetric key system, everyone accessing the data has the same key. Keys that encrypt and decrypt messages must also remain secret to ensure privacy. While it's possible for this to work, securely distributing the keys to ensure proper controls are in place makes symmetric encryption impractical for widespread commercial use.

Asymmetric Key Systems

An asymmetric key system, also known as a public/private key system, uses two keys. One key remains secret-the private key-while the other key is made widely available to anyone who needs it. This key is called the public key. The private and public keys are mathematically tied together, so the corresponding private key can only decrypt that information encrypted using the public key.

Encryption in Action

Here's an example of how encryption works with email-friendly software Pretty Good Privacy (PGP) or GnuPG-also known as GPG-for open-source aficionados. Say I want to send you a private message. I encrypt it using one of the programs listed below.

Here's the message:

wUwDPglyJu9LOnkBAf4vxSpQgQZltcz7LWwEquhdm5kSQIkQlZtfxtSTsmawq6gVH8SimlC3W6TDOhhL2FdgvdIC7sDv7G1Z7pCNzFLp0lgB9ACm8r5RZOBiN5ske9cBVjlVfgmQ9VpFzSwzLLODhCU7/2THg2iDrW3NGQZfz3SSWviwCe7GmNIvp5jEkGPCGcla4Fgdp/xuyewPk6NDlBewftLtHJVf=PAb3

Once encrypted, the message becomes a jumbled mess of random characters. But, equipped with the key I send you, you can decrypt it and find the original message.

Come on over for hot dogs and soda!

Whether it's in transit like our hot dog party email or resting on your hard drive, encryption works to keep prying eyes out of your business-even if they happen to gain access to your network or system.

The technology comes in many forms, with key size and strength generally being the most significant differences in one variety to the next.

Common Encryption Algorithms

1. Triple DES

Triple DES was designed to replace the original Data Encryption Standard (DES) algorithm, which hackers eventually learned to defeat with relative ease. At one time, Triple DES was the recommended standard and the most widely used symmetric algorithm in the industry.

Triple DES uses three individual keys with 56 bits each. The total key length adds up to 168 bits, but experts would argue that 112-bits in key strength is more accurate. Despite slowly being phased out, Triple DES has, for the most part, been replaced by the Advanced Encryption Standard (AES).

2. AES

The Advanced Encryption Standard (AES) is the algorithm trusted as the standard by the U.S. Government and numerous organizations. Although it is highly efficient in 128-bit form, AES also uses keys of 192 and 256 bits for heavy-duty encryption purposes.

AES is largely considered impervious to all attacks, except for brute force, which attempts to decipher messages using all possible combinations in the 128, 192, or 256-bit cipher.

3. RSA Security

RSA is a public-key encryption algorithm and the standard for encrypting data sent over the internet. It also happens to be one of the methods used in PGP and GPG programs. Unlike Triple DES, RSA is considered an asymmetric algorithm due to its use of a pair of keys. You've got your public key to encrypt the message and a private key to decrypt it. The result of RSA encryption is a huge batch of mumbo jumbo that takes attackers a lot of time and processing power to break.

4. Blowfish

Blowfish is yet another algorithm designed to replace DES. This symmetric cipher splits messages into blocks of 64 bits and encrypts them individually. Blowfish is known for its tremendous speed and overall effectiveness. Meanwhile, vendors have taken full advantage of its free availability in the public domain. You'll find Blowfish in software categories ranging from e-commerce platforms for securing payments to password management tools, where it protects passwords. It's one of the more flexible encryption methods available.

5. Twofish

Computer security expert Bruce Schneier is the mastermind behind Blowfish and its successor Twofish. Keys used in this algorithm may be up to 256 bits in length, and as a symmetric technique, you only need one key. Twofish is one of the fastest of its kind and ideal for use in hardware and software environments. Like Blowfish, Twofish is freely available to anyone who wants to use it.

The Future of Encryption

Cyberattacks are constantly evolving, forcing security specialists to concoct new schemes and methods to keep them at bay. Even the National Institute of Standards and Technology (NIST) is looking at the impacts of quantum cryptography on the future of encryption. Stay tuned for new developments.

Meanwhile, whether it's protecting your email communications or stored data, you should be certain that you include encryption in your lineup of security tools.

For expert help with meeting your data protection, business continuity, backup, and disaster recovery requirements, choose an Arcserve technology partner. And check out our free trials so you can see for yourself how easy to use and effective Arcserve solutions can be.

# data[].attributes.attachment_link.title
5 Common Encryption Algorithms and the Unbreakables of the Future

# data[].attributes.attachment_link.description
Security is top of mind for anyone in IT these days. It must be, given that Gartner estimates that spending on information security and risk management will total $172 billion in 2022, up from $155 billion in 2021.

# data[].attributes.headline
The Role of Cryptography in Cybersecurity

# data[].attributes.subject
The Role of Cryptography in Cybersecurity

# data[].attributes.body
Cryptography is an integral part of CIA triad. The three elements of the triad are the fundamentals of Cyber Security. Cryptography ensures the integrity of data using hashing algorithms and message digests. By providing codes and digital keys to ensure that what is received is genuine and from the intended sender, the receiver is assured that the data received has not been tampered with during transmission.

# data[].attributes.body
Security of RSA

Five possible approaches to attacking the RSA algorithm are

• Brute force: This involves trying all possible private keys.
• Mathematical attacks: There are several approaches, all equivalent in effort to factoring the product of two primes.
• Timing attacks: These depend on the running time of the decryption algorithm.
• Chosen cipher text attacks: This type of attack exploits properties of the RSA algorithm.

Brute-force approach is the same for RSA as for other cryptosystems, namely, to use a large key space.
 Thus, the larger the number of bits in d, the better.
 Because the calculations involved, both in key generation and in encryption/decryption, are

complex, the larger the size of the key, the slower the system will run.

# data[].attributes.body
Abstract
An encryption method is presented with the novel property that publicly revealing an encryption key does not thereby reveal the corresponding decryption
key. This has two important consequences:
1. Couriers or other secure means are not needed to transmit keys, since a
message can be enciphered using an encryption key publicly revealed by
the intended recipient. Only he can decipher the message, since only he
knows the corresponding decryption key.
2. A message can be “signed” using a privately held decryption key. Anyone
can verify this signature using the corresponding publicly revealed encryption key. Signatures cannot be forged, and a signer cannot later deny
the validity of his signature. This has obvious applications in “electronic
mail” and “electronic funds transfer” systems.

# data[].attributes.body
The RSA cryptosystem is based on this theorem: it implies that the inverse of the function a ↦ a e mod n, where e is the (public) encryption exponent, is the function b ↦ b d mod n, where d, the (private) decryption exponent, is the multiplicative inverse of e modulo φ(n).

# data[].attributes.attachment_link.readable_text
In 1 ≤ gcd( number theory, Euler's totient function counts the positive integers up to a given integer n that are relatively prime to n. It is written using the Greek letter phi as or Euler's phi function. In other words, it is the number of integers , and may also be called k in the range greatest common divisor k ≤ n for which the [2]n, k) is equal to 1.[3] The integers k of this form are sometimes referred to as totatives of n.

For example, the totatives of n = 9 are the six numbers 1, 2, 4, 5, 7 and 8. They are all relatively prime to 9, but the other three numbers in this range, 3, 6, and 9 are not, since gcd(9, 3) = gcd(9, 6) = 3 and gcd(9, 9) = 9. Therefore, φ(9) = 6. As another example, φ(1) = 1 since for n is 1 itself, and n = 1 the only integer in the range from 1 to gcd(1, 1) = 1.

Euler's totient function is a multiplicative function, meaning that if two numbers m and n are relatively prime, then [4]φ( mn) = φ( m) φ( n).[5] This function gives the order of the multiplicative group of integers modulo n (the ). group of units of the ring [6] It is also used for defining the RSA encryption system.

History, terminology, and notation

Leonhard Euler introduced the function in 1763. However, he did not at that time choose any specific symbol to denote it. In a 1784 publication, Euler studied the function further, choosing the Greek letter π to denote it: he wrote πD for "the multitude of numbers less than D, and which have no common divisor with it". This definition varies from the current definition for the totient function at Gauss's 1801 treatise D = 1 but is otherwise the same. The now-standard notation comes from Disquisitiones Arithmeticae, although Gauss didn't use parentheses around the argument and wrote Euler's phi function or simply the φA. Thus, it is often called phi function.

In 1879, J. J. Sylvester coined the term totient for this function, so it is also referred to as Euler's totient function, the Euler totient, or Euler's totient. Jordan's totient is a generalization of Euler's.

The cototient of n is defined as . It counts the number of positive integers less than or equal to n that have at least one prime factor in common with n.

Computing Euler's totient function

There are several formulae for computing .

It states

where the product is over the distinct prime numbers dividing n. (For notation, see Arithmetical function.)

An equivalent formulation for , where are the distinct primes dividing n, is:

The proof of these formulae depends on two important facts.

Phi is a multiplicative function

Value of phi for a prime power argument

Proof of Euler's product formula

The fundamental theorem of arithmetic states that if n > 1 there is a unique expression where p ₁ < k n = 1 corresponds to the empty product.) Repeatedly using the multiplicative property of i ≥ 1. (The case φ( p k) gives p ₂ < ... < p r are prime numbers and each φ and the formula for

This gives both versions of Euler's product formula.

An alternative proof that does not require the multiplicative property instead uses the inclusion-exclusion principle applied to the set , excluding the sets of integers divisible by the prime divisors.

In words: the distinct prime factors of 20 are 2 and 5; half of the twenty integers from 1 to 20 are divisible by 2, leaving ten; a fifth of those are divisible by 5, leaving eight numbers coprime to 20; these are: 1, 3, 7, 9, 11, 13, 17, 19.

The alternative formula uses only integers:

The totient is the discrete Fourier transform of the gcd, evaluated at 1. Let

The real part of this formula is

For example, using and :

Unlike the Euler product and the divisor sum formula, this one does not require knowing the factors of n. However, it does involve the calculation of the greatest common divisor of n and every positive integer less than n, which suffices to provide the factorization anyway.

The property established by Gauss, that

where the sum is over all positive divisors d of n, can be proven in several ways. (See Arithmetical function for notational conventions.)

One proof is to note that is also equal to the number of possible generators of the cyclic group ; specifically, if with , then is a generator for every k coprime to d. Since every element of generates a cyclic subgroup, and all subgroups are generated by precisely elements of , the formula follows. Equivalently, the formula can be derived by the same argument applied to the multiplicative group of the nth roots of unity and the primitive dth roots of unity.

The formula can also be derived from elementary arithmetic. For example, let n = 20 and consider the positive fractions up to 1 with denominator 20:

Put them into lowest terms:

These twenty fractions are all the positive ≤ 1 whose denominators are the divisors d = 1, 2, 4, 5, 10, 20. The fractions with 20 as denominator are those with numerators relatively prime to 20, namely , , , , , , , ; by definition this is φ(20) fractions. Similarly, there are φ(10) fractions with denominator 10, and φ(5) fractions with denominator 5, etc. Thus the set of twenty fractions is split into subsets of size for each d dividing 20. A similar argument applies for any n.

Möbius inversion applied to the divisor sum formula gives

where μ is the Möbius function, the multiplicative function defined by and for each prime p and k ≥ 2. This formula may also be derived from the product formula by multiplying out to get

An example:

The first 100 values (sequence in the OEIS) are shown in the table and graph below:

In the graph at right the top line log log y = n − 1 is an upper bound valid for all n other than one, and attained if and only if n is a prime number. A simple lower bound is , which is rather loose: in fact, the lower limit of the graph is proportional to n / n .[20]

Euler's theorem

This states that if a and n are relatively prime then

The special case where n is prime is known as Fermat's little theorem.

This follows from Lagrange's theorem and the fact that is the order of the multiplicative group of integers modulo n .

The RSA cryptosystem is based on this theorem: it implies that the inverse of the function , where e is the (public) encryption exponent, is the function , where d, the (private) decryption exponent, is the multiplicative inverse of e modulo . The difficulty of computing without knowing the factorization of n is thus the difficulty of computing d: this is known as the RSA problem which can be solved by factoring n. The owner of the private key knows the factorization, since an RSA private key is constructed by choosing n as the product of two (randomly chosen) large primes p and q. Only n is publicly disclosed, and given the difficulty to factor large numbers we have the guarantee that no one else knows the factorization.

In 1965 P. Kesava Menon proved

They are:

and

Subtracting them gives

Applying the exponential function to both sides of the preceding identity yields an infinite product formula for :

The proof is based on the two formulae

The Dirichlet series for may be written in terms of the Riemann zeta function as:

where the left-hand side converges for .

The Lambert series generating function is

Both of these are proved by elementary series manipulations and the formulae for .

These two formulae can be proved by using little more than the formulae for and the divisor sum function .

In fact, during the proof of the second formula, the inequality

Proving this does not quite require the log log prime number theorem. Since n goes to infinity, this formula shows that

and

The second inequality was shown by Jean-Louis Nicolas. Ribenboim says "The method of proof is interesting, in that the inequality is shown first under the assumption that the Riemann hypothesis is true, secondly under the contrary assumption."

due to Arnold Walfisz, its proof exploiting estimates on exponential sums due to I. M. Vinogradov and N. M. Korobov. By a combination of van der Corput's and Vinogradov's methods, H.-Q. Liu (On Euler's function.Proc. Roy. Soc. Edinburgh Sect. A 146 (2016), no. 4, 769-775) improved the error term to

(this is currently the best known estimate of this type). The stands for a quantity that is bounded by a constant times the function of n inside the parentheses (which is small compared to ).

This result can be used to prove that the probability of two randomly chosen numbers being relatively prime is .

In 1954 Schinzel and Sierpiński strengthened this, proving that the set

is dense in the positive real numbers. They also proved that the set

is dense in the interval (0,1).

A totient number is a value of Euler's totient function: that is, an m for which there is at least one n for which . The valency or multiplicity of a totient number m is the number of solutions to this equation. A nontotient is a natural number which is not a totient number. Every odd integer exceeding 1 is trivially a nontotient. There are also infinitely many even nontotients, and indeed every positive integer has a multiple which is an even nontotient.

The number of totient numbers up to a given limit x is

If counted accordingly to multiplicity, the number of totient numbers up to a given limit x is

It is known that the multiplicity of m exceeds infinitely often for any δ < 0.55655.

Ford (1999) proved that for every integer k ≥ 2 there is a totient number m of multiplicity k: that is, for which the equation has exactly k solutions; this result had previously been conjectured by Wacław Sierpiński, and it had been obtained as a consequence of Schinzel's hypothesis H. Indeed, each multiplicity that occurs, does so infinitely often.

However, no number m is known with multiplicity k = 1. Carmichael's totient function conjecture is the statement that there is no such m.

In the last section of the Disquisitiones Gauss proves that a regular n-gon can be constructed with straightedge and compass if is a power of 2. If n is a power of an odd prime number the formula for the totient says its totient can be a power of two only if n is a first power and Fermat primes, and only five are known: 3, 5, 17, 257, and 65537. Fermat and Gauss knew of these. Nobody has been able to prove whether there are any more. n − 1 is a power of 2. The primes that are one more than a power of 2 are called

Thus, a regular n-gon has a straightedge-and-compass construction if n is a product of distinct Fermat primes and any power of 2. The first few such n are

2, 3, 4, 5, 6, 8, 10, 12, 15, 16, 17, 20, 24, 30, 32, 34, 40,... (sequence in the OEIS).

Setting up an RSA system involves choosing large prime numbers p and q, computing and , and finding two numbers e and d such that . The numbers n and e (the "encryption key") are released to the public, and d (the "decryption key") is kept private.

The security of an RSA system would be compromised if the number n could be efficiently factored or if could be efficiently computed without factoring n.

As stated in the main article, if there is a single counterexample to this conjecture, there must be infinitely many counterexamples, and the smallest one has at least ten billion digits in base 10.

The Riemann hypothesis is true if and only if the inequality

1. L. Euler "^ Theoremata arithmetica nova methodo demonstrata" (An arithmetic theorem proved by a new method), Novi commentarii academiae scientiarum imperialis Petropolitanae (New Memoirs of the Saint-Petersburg Imperial Academy of Sciences), 8 (1763), 74-104. (The work was presented at the Saint-Petersburg Academy on October 15, 1759. A work with the same title was presented at the Berlin Academy on June 8, 1758). Available on-line in: Ferdinand Rudio, ed., Leonhardi Euleri Commentationes Arithmeticae, volume 1, in: Leonhardi Euleri Opera Omnia, series 1, volume 2 (Leipzig, Germany, B. G. Teubner, 1915), pages 531-555. On page 531, Euler defines n as the number of integers that are smaller than N and relatively prime to N (... aequalis sit multitudini numerorum ipso N minorum, qui simul ad eum sint primi, ...), which is the phi function, φ(N).

2. L. Euler, ^ Speculationes circa quasdam insignes proprietates numerorum, Acta Academiae Scientarum Imperialis Petropolitinae, vol. 4, (1784), pp. 18-30, or Opera Omnia, Series 1, volume 4, pp. 105-115. (The work was presented at the Saint-Petersburg Academy on October 9, 1775).

3. ^ Cajori, Florian (1929). A History Of Mathematical Notations Volume II. Open Court Publishing Company. §409.

4. J. J. Sylvester (1879) "On certain ternary cubic-form equations", ^ American Journal of Mathematics, 2 : 357-393; Sylvester coins the term "totient" on page 361.

5. Hardy & Wright 1979, thm. 328

6. ^ Walfisz, Arnold (1963). Weylsche Exponentialsummen in der neueren Zahlentheorie. Mathematische Forschungsberichte (in German). Vol. 16. Berlin: VEB Deutscher Verlag der Wissenschaften. Zbl 0146.06003.

7. Sitaramachandrarao, R. (1985). "On an error term of Landau II". Rocky Mountain J. Math. 15 (2): 579-588. doi:10.1216/RMJ-1985-15-2-579.

8. Theorem 15 of ^ Rosser, J. Barkley; Schoenfeld, Lowell (1962). "Approximate formulas for some functions of prime numbers". Illinois J. Math. 6 (1): 64-94. doi:10.1215/ijm/1255631807.

9. Ribenboim (1989). "How are the Prime Numbers Distributed? §I.C The Distribution of Values of Euler's Function". The Book of Prime Number Records (2nd ed.). New York: Springer-Verlag. pp. 172-175. doi:10.1007/978-1-4684-0507-1_5. ISBN 978-1-4684-0509-5.

10. Gauss proved if n satisfies certain conditions then the n-gon can be constructed. In 1837 ^ Pierre Wantzel proved the converse, if the n-gon is constructible, then n must satisfy Gauss's conditions

11. Gauss, DA, art. 366. This list is the last sentence in the ^ Disquisitiones

12. ^ Broughan, Kevin (2017). Equivalents of the Riemann Hypothesis, Volume One: Arithmetic Equivalents (First ed.). Cambridge University Press. ISBN 978-1-107-19704-6. Corollary 5.35

The Disquisitiones Arithmeticae has been translated from Latin into English and German. The German edition includes all of Gauss' papers on number theory: all the proofs of quadratic reciprocity, the determination of the sign of the Gauss sum, the investigations into biquadratic reciprocity, and unpublished notes.

References to the Disquisitiones are of the form Gauss, DA, art. nnn.

Abramowitz, M.; Stegun, I. A. (1964), Handbook of Mathematical Functions, New York: Dover Publications, ISBN 0-486-61272-4 . See paragraph 24.3.2.

Bach, Eric; Shallit, Jeffrey (1996), Algorithmic Number Theory (Vol I: Efficient Algorithms), MIT Press Series in the Foundations of Computing, Cambridge, MA: The MIT Press, ISBN 0-262-02405-5, Zbl 0873.11070

Dickson, Leonard Eugene, "History Of The Theory Of Numbers", vol 1, chapter 5 "Euler's Function, Generalizations; Farey Series", Chelsea Publishing 1952

Gauss, Carl Friedrich (1986), Disquisitiones Arithmeticae (Second, corrected edition), translated by Clarke, Arthur A., New York: Springer, ISBN 0-387-96254-9

Gauss, Carl Friedrich (1965), Untersuchungen uber hohere Arithmetik (Disquisitiones Arithmeticae & other papers on number theory) (Second edition), translated by Maser, H., New York: Chelsea, ISBN 0-8284-0191-8

Graham, Ronald; Knuth, Donald; Patashnik, Oren (1994), Concrete Mathematics: a foundation for computer science (2nd ed.), Reading, MA: Addison-Wesley, ISBN 0-201-55802-5, Zbl 0836.00001

Guy, Richard K. (2004), Unsolved Problems in Number Theory, Problem Books in Mathematics (3rd ed.), New York, NY: Springer-Verlag, ISBN 0-387-20860-7, Zbl 1058.11001

Hardy, G. H.; Wright, E. M. (1979), An Introduction to the Theory of Numbers (Fifth ed.), Oxford: Oxford University Press, ISBN 978-0-19-853171-5

Long, Calvin T. (1972), Elementary Introduction to Number Theory (2nd ed.), Lexington: D. C. Heath and Company, LCCN 77-171950

Pettofrezzo, Anthony J.; Byrkit, Donald R. (1970), Elements of Number Theory, Englewood Cliffs: Prentice Hall, LCCN 77-81766

Ribenboim, Paulo (1996), The New Book of Prime Number Records (3rd ed.), New York: Springer, ISBN 0-387-94457-5, Zbl 0856.11001

Sandifer, Charles (2007), The early mathematics of Leonhard Euler, MAA, ISBN 978-0-88385-559-1

Sándor, József; Mitrinović, Dragoslav S.; Crstici, Borislav, eds. (2006), Handbook of number theory I, Dordrecht: Springer-Verlag, pp. 9-36, ISBN 1-4020-4215-9, Zbl 1151.11300

Sándor, Jozsef; Crstici, Borislav (2004). Handbook of number theory II. Dordrecht: Kluwer Academic. pp. 179-327. ISBN 1-4020-2546-7. Zbl 1079.11001.

Schramm, Wolfgang (2008), "The Fourier transform of functions of the greatest common divisor", Electronic Journal of Combinatorial Number Theory, A50 (8(1)).

# data[].attributes.attachment_link.description
In 1 ≤ gcd( number theory, Euler's totient function counts the positive integers up to a given integer n that are relatively prime to n. It is written using the Greek letter phi as or Euler's phi function.

# data[].attributes.attachment_link.readable_text
AES and DES are both examples of symmetric block ciphers but have certain dissimilarities.

AES stands for Advanced Encryption Standard

DES stands for Data Encryption Standard

The date of creation is 1999.

The date of creation is 1976.

Byte-Oriented.

Bit-Oriented.

Key length can be 128-bits, 192-bits, and 256-bits.

The key length is 56 bits in DES.

Number of rounds depends on key length: 10(128-bits), 12(192-bits), or 14(256-bits)

DES involves 16 rounds of identical operations

The structure is based on a substitution-permutation network.

The structure is based on a Feistel network.

The design rationale for AES is open.

The design rationale for DES is closed.

The selection process for this is secret but accepted for open public comment.

The selection process for this is secret.

AES is more secure than the DES cipher and is the de facto world standard.

DES can be broken easily as it has known vulnerabilities. 3DES(Triple DES) is a variation of DES which is secure than the usual DES.

The rounds in AES are: Byte Substitution, Shift Row, Mix Column and Key Addition

The rounds in DES are: Expansion, XOR operation with round key, Substitution and Permutation

AES can encrypt 128 bits of plaintext.

DES can encrypt 64 bits of plaintext.

AES cipher is derived from an aside-channel square cipher.

DES cipher is derived from Lucifer cipher.

AES was designed by Vincent Rijmen and Joan Daemen.

DES was designed by IBM.

No known crypt-analytical attacks against AES but side channel attacks against AES implementations possible. Biclique attacks have better complexity than brute force but still ineffective.

Known attacks against DES include Brute-force, Linear crypt-analysis, and Differential crypt-analysis.

# data[].attributes.attachment_link.title
Difference between AES and DES ciphers - GeeksforGeeks

# data[].attributes.attachment_link.description
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

# data[].attributes.headline
Hashing 101 -- Cryptographic Hash Functions

# data[].attributes.subject
Hashing 101 -- Cryptographic Hash Functions

# data[].attributes.attachment_link.readable_text
What are cryptographic hash functions? Here are some variations that can improve your cryptographic hashes and provide a stronger barrier against attacks.
A cryptographic hash function is an algorithm that takes an arbitrary amount of data input-a credential-and produces a fixed-size output of enciphered text called a hash value, or just "hash." That enciphered text can then be stored instead of the password itself, and later used to verify the user.

Certain properties of cryptographic hash functions impact the security of password storage.

Non-reversibility, or one-way function. A good hash should make it very hard to reconstruct the original password from the output or hash.

Diffusion, or avalanche effect. A change in just one bit of the original password should result in change to half the bits of its hash. In other words, when a password is changed slightly, the output of enciphered text should change significantly and unpredictably.

Determinism. A given password must always generate the same hash value or enciphered text.

Collision resistance. It should be hard to find two different passwords that hash to the same enciphered text.

Non-predictable. The hash value should not be predictable from the password.

The good

Cryptographic hashes take cleartext passwords and turn them into enciphered text for storage. Attackers who access your database are forced to decipher those hash values if they want to exploit them. In other words, hashes slow down attackers.

The bad

Simple cryptographic hashes can slow down attackers, but ultimately attackers will be able to overcome them.

Attackers equipped with fast hardware can easily "crack" hashed credentials.

Good hash algorithms are designed to be collision-resistant, but collisions are impossible to eliminate completely. MD5 and SHA-1 have been proven to contain known collisions-that is, produce the same hash value from different credentials.

Rainbow tables are "optimized lookup tables" that can be used to reverse-engineer one-way hash functions. A rainbow table is basically a pre-computed set of plaintext strings and their corresponding hashes. Large rainbow tables are publicly available, and attackers can use one of these tables to retrieve cleartext data that has been hashed.

Power up your cryptographic hashes

There are variations that can improve your hash function and provide a greater barrier against attacks.

Salted hashes

Salting adds random data to each plaintext credential. The result: two identical plaintext passwords are now differentiated in enciphered text form so that duplicates cannot be detected.

Keyed hash functions

A keyed hash function (also known as a hash message authentication code, or HMAC) is an algorithm that uses a cryptographic key AND a cryptographic hash function to produce a message authentication code that is keyed and hashed.

Adaptive hash functions

An adaptive one-way function is any function that is designed to iterate on its inner workings, feeding the output back as input, in a manner that causes it to-ultimately-take longer to execute. It is adaptive because the developer can adjust how many iterations occur. To protect stored passwords, architects have applied the adaptive design to hash functions (such as PBKDF2) and to encryption schemes (such as bcrypt).

The trade-off of cryptographic hash functions

Cryptographic hash functions do provide barriers to attackers, like speed bumps slowing down a speeding motorcycle. But it's critical to remember that eventually the motorcycle will still make it down the street. However, these barriers will slow down your defenders as well-normal users and your server. Set the speed bump too high, and you run the risk of annoying your user-and overtaxing your server.

But no matter how high you build your speed bump, an attacker WILL ultimately be able to overcome it. The ongoing challenge is to slow down attackers while balancing the needs and satisfaction of your users.

# data[].attributes.attachment_link.title
What are cryptographic hash functions? | Synopsys

# data[].attributes.attachment_link.description
What are cryptographic hash functions? Here are some variations that can improve your cryptographic hashes and provide a stronger barrier against attacks. A cryptographic hash function is an algorithm that takes an arbitrary amount of data input-a credential-and produces a fixed-size output of enciphered text called a hash value, or just "hash."

# data[].attributes.body
The Enigma machine is a cipher device developed and used in the early- to mid-20th century to protect commercial, diplomatic, and military communication. It was employed extensively by Nazi Germany during World War II, in all branches of the German military. The Enigma machine was considered so secure that it was used to encipher the most top-secret messages.

The Algorithm -- Key elements

This section will talk about the Enigma I aka Wehrmacht Enigma, other variants are similar in operation. The 'key' for the enigma consists of several elements:

1. The rotors and their order

2. The rotor start positions

3. The ringstellung, or ring settings

4. Steckerverbindungen, or plug board settings

# data[].attributes.body
A digital signature is a cryptographic output used to verify the authenticity of data. A digital signature algorithm allows for two distinct operations: a signing operation, which uses a signing key to produce a signature over raw data. The most common use cases are listed as follows

Financial transactions: online banking.

Credit card processing.

SSL VPN.

Handling S/MIME mail.

Handling XML encryption.

Signing data using a smart card.

Signing an authentication challenge.

Decrypt a message using private asymmetric key.

# data[].attributes.attachment_link.readable_text
SHA-512, or Secure Hash Algorithm 512, is a hashing algorithm used to convert text of any length into a fixed-size string. Each output produces a SHA-512 length of 512 bits (64 bytes).

This algorithm is commonly used for email addresses hashing, password hashing, and digital record verification. SHA-512 is also used in blockchain technology, with the most notable example being the BitShares network.

In this article, we explore the origins of SHA-512 and discuss how the algorithm has been used by BitShares as well other prominent blockchain projects. Lastly, we'll look at a few examples of non-blockchain applications and examine how SHA-512 compares to the SHA-256 algorithm.

Origins of SHA-512 Development

SHA-512 is just one of several algorithms in the Secure Hashing Algorithm (SHA) family. In 2001, SHA-512 was published by the National Institute of Standards and Technology (NIST) as a U.S. Federal Information Processing Standard (FIPS). Before we look at the specifics of how SHA-512 is used today, let's briefly cover the history of these algorithms.

Failures of SHA-0 And SHA-1

SHA-0 is a 160-bit hash function that was first published in 1993 under the name "SHA." Shortly after publication, SHA-0 was withdrawn due to the presence of a "significant flaw." After later iterations were developed, its name was retroactively changed to "SHA-0." In 1995, SHA-1 was published as a 160-bit hash function to resolve the security issues of SHA-0. Its characteristics are very similar to the MD5 hash function, which was first published in 1992. However, much like SHA-0, SHA-1 is no longer used in real-world applications due to security vulnerabilities.

SHA-2 Development

SHA-2 consists of two hash functions with different block sizes: SHA-256 and SHA-512. Additionally, there are four truncated versions of SHA-2. SHA-256, SHA-384, and SHA-512 were published in 2001. SHA-224 was published in 2004. SHA-512/224 and SHA-512/256 were published in 2012. The entire SHA-2 family is patented under US patent 6829355. The patent is also available through a royalty-free license, making it accessible to people like Satoshi Nakamoto.

SHA-3 Development

The SHA-3 family, formerly known as Keccak, consists of four cryptographic hash functions: SHA3-224, SHA3-256, SHA3-384, and SHA3-512, and two extendable-output functions (XOFs), called SHAKE128 and SHAKE256. All SHA-3 algorithms were published in 2015. Although they are widely considered to be more secure than SHA-2 algorithms, SHA-3 algorithms have yet to gain significant adoption.

Blockchain Projects That Use The SHA 512 Algorithm

Compared to the SHA-256 algorithm, the adoption of the SHA 512 algorithm by blockchain projects has been very minimal. Most blockchain networks that chose not to implement SHA-256 opted for other hashing algorithms such as Scrypt, Lyra2REv2, Equihash, and CryptoNight. With that being said, here are a few examples of networks that use or have used SHA-512. Overall, other algorithms such as

Although there isn't any information available on the first blockchain project to implement SHA-512, we do know that BitShares (formerly ProtoShares) was one of the earliest to do so.

According to the BitShares website, the network introduced the Momentum Proof of Work (PoW) algorithm in October 2013. Momentum is a proprietary graph-based algorithm that uses 512-bit SHA-1 (also known as Cuckoo Cycle). As one critique stated, there were at least two clear issues with the BitShares implementation of Momentum. First, the SHA-512 hash fails to take advantage of SHA-256 acceleration instructions. Second, this implementation was found to be needlessly slow. Both of these challenges meant ASIC miners would be able to succeed over CPUs and GPUs, leading to network centralization issues.

The network's genesis block was mined using Momentum PoW in November 2013. However, shortly afterward, BitShares founder Daniel Larimer determined that cryptocurrency mining was flawed. In July 2014, BitShares moved away from Proof of Work and became the first blockchain project to implement the Delegated Proof of Stake (DPoS) consensus mechanism.

LBRY Credits (LBC)

LBRY is a protocol that allows anyone to build apps that interact with digital content (e.g. videos, audio files, documents, or any other type of file) on the LBRY network. Its native cryptocurrency is LBRY Credits (LBC), which can be used to access paid content on the network. LBRY has its own unique hashing algorithm that uses a combination of the SHA-512, SHA-256, and RIPEMD hash functions.

The blockchain network has a targeted block time of 2.5 minutes, and the maximum size of each block is currently around 2 MB (around 1800 transactions). From Block 55001 onward, the network's block reward decreases logarithmically over the course of a 20-year period. Cryptocurrency mining on LBRY is currently dominated by GPUs and FPGAs. The project team has stated that it no longer views CPU mining as economically viable.

Kcash (KCASH)

Kcash uses the SHA512-ZERO encryption algorithm. While there isn't much info available on the technical specifications of this implementation of SHA-512, the focus of the Kcash blockchain network is to enable data privacy through a technology called zero-knowledge proofs. Popular blockchain networks such as Monero and Zcash also use zero-knowledge proofs; however, they have opted to implement other hashing algorithms.

Other Projects

A number of other blockchain projects either currently use SHA-512 or have used it in the past. However, these projects have yet to gain significant user adoption. While there were discussions as early as 2010 about the possibility of blockchain networks switching from SHA-256 to SHA-512, the general consensus is that this wouldn't provide any practical benefits.

Non-Blockchain Applications For SHA-512

SHA-512 is also used in a variety of non-blockchain applications. It's oftentimes used in conjunction with SHA-256 but sometimes used by itself. Nonetheless, as with blockchain applications, SHA-512 adoption for other technical applications clearly pales in comparison to SHA-256.

SHA-512 was used to authenticate archival video from the International Criminal Tribunal of the Rwandan genocide. Unix and Linux vendors use both SHA-256 and SHA-512 for secure password hashing. An email suppression list solution called OPTIZMO provides the storage and distribution of SHA-512 hashed email addresses for major clients such as Salesforce, LendingTree, Hotwire, and eharmony.

SHA-256 And SHA-512 Compared

Now that we understand how SHA-512 is used in real-world applications, let's look at how it compares to SHA 256 vs 512 by assessing three critical factors: security, computational efficiency, and compatibility.

Security

While there are a variety of potential attack vectors to evaluate, collision resistance is possibly the most important component of security for any hashing algorithm. The purpose of a hashing algorithm is to ensure that it's virtually impossible to find two different inputs that produce the same output (known as a collision). If a collision is found, the accuracy of the original, unhashed message comes into question. Several collisions were found in SHA-0 and SHA-1, meaning those algorithms are not secure enough for real-world applications.

Since no technology is currently capable of breaking SHA-2 encryption and no collisions have been found, the security provided by SHA-256 and SHA-512 is practically identical. It's theoretically possible that SHA-512 would have a slight security advantage given the rise of quantum computers. Nonetheless, it's much more likely that all SHA-2 algorithms would need to be replaced with newer generations of quantum-resistant algorithms in order to effectively mitigate potential collision attacks.

Computational Efficiency

SHA-256 produces smaller outputs than SHA-512. This means it generally requires less bandwidth to store and transmit data. Using SHA-256 generally requires less memory and also less processing power in some cases. As this test shows, SHA-256 is 31% faster than SHA-512 when hashing shorter inputs. Meanwhile, SHA-512 is only 2.9% faster when hashing longer inputs.

The Bitcoin network hashes a lot of smaller inputs (e.g. 33-byte public keys and 80-byte block headers), which likely explains why Satoshi Nakamoto chose SHA-256 over SHA-512. There's also the fact that SHA-512 is better on 64-bit processors, while SHA-256 is better on 32-bit processors. When the Bitcoin network launched in 2009, 32-bit processors were much more widely used than 64-bit processors. In addition, the requirement for higher rounds of blockchain consensus and larger block sizes of SHA-512 adds computational overhead that slows down the transaction validation process.

Compatibility

Another factor for the limited adoption of SHA-512 is the potential for compatibility issues for both blockchain and non-blockchain applications. For example, with the depreciation of SHA-1 due to security vulnerabilities, SHA-256 was chosen as the default SSL/TLS certificates. Because SHA-512 isn't widely implemented, a few compatibility issues exist that make it a less practical solution.

Had Bitcoin adopted SHA-512, it's very likely that this hashing algorithm would play a more prominent role today in blockchain technology. Because SHA-256 was implemented on the Bitcoin protocol, other blockchain networks (e.g. Bitcoin Cash and Bitcoin SV) that have been created as a result of hard forks of Bitcoin also continue to use SHA-256. In turn, this has meant that powerful ASIC hardware mining rigs have been manufactured specifically for the SHA-256 algorithm.

For less established blockchain networks, it's also much easier to win over miners by using a hashing algorithm that is compatible with their existing hardware. Even if a smaller network wanted to use SHA-512, the possibility of limited miner adoption may lead to major security issues like inexpensive 51% attacks due to low hash rates.

Additionally, within the Secure Hashing Algorithm family, SHA-3 (formerly known as Keccak) now provides a faster and more secure solution than both SHA-256 and SHA-512.

Conclusion

SHA-512 hasn't been able to gain the same level of popularity as SHA-256 or even other types of newer hashing algorithms when it comes to real-world use in blockchain. That being said it does have a few non-blockchain applications that are noteworthy.

📧Komodo Newsletter

If you'd like to learn more about blockchain technology and keep up with Komodo's progress, subscribe to our newsletter. Begin your blockchain journey with Komodo today.

# data[].attributes.attachment_link.description
SHA-512, or Secure Hash Algorithm 512, is a hashing algorithm used to convert text of any length into a fixed-size string. Each output produces a SHA-512 length of 512 bits (64 bytes). This algorithm is commonly used for email addresses hashing, password hashing, and digital record verification.

# data[].attributes.attachment_link.readable_text
The action of a Caesar cipher is to replace each plaintext letter with a different one a fixed number of places down the alphabet. The cipher illustrated here uses a left shift of three, so that (for example) each occurrence of E in the plaintext becomes B in the ciphertext.

In cryptography, a Caesar cipher, also known as Caesar's cipher, the shift cipher, Caesar's code, or Caesar shift, is one of the simplest and most widely known encryption techniques. It is a type of substitution cipher in which each letter in the plaintext is replaced by a letter some fixed number of positions down the alphabet. For example, with a left shift of 3, D would be replaced by A, E would become B, and so on. The method is named after Julius Caesar, who used it in his private correspondence.

The encryption step performed by a Caesar cipher is often incorporated as part of more complex schemes, such as the Vigenère cipher, and still has modern application in the ROT13 system. As with all single-alphabet substitution ciphers, the Caesar cipher is easily broken and in modern practice offers essentially no communications security.

The transformation can be represented by aligning two alphabets; the cipher alphabet is the plain alphabet rotated left or right by some number of positions. For instance, here is a Caesar cipher using a left rotation of three places, equivalent to a right shift of 23 (the shift parameter is used as the key):

When encrypting, a person looks up each letter of the message in the "plain" line and writes down the corresponding letter in the "cipher" line.

Plaintext:  THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
Ciphertext: QEB NRFZH YOLTK CLU GRJMP LSBO QEB IXWV ALD

Deciphering is done in reverse, with a right shift of 3.

The encryption can also be represented using modular arithmetic by first transforming the letters into numbers, according to the scheme, A → 0, B → 1, ..., Z → 25. Encryption of a letter x by a shift n can be described mathematically as,

Decryption is performed similarly,

(Here, "mod" refers to the modulo operation. The value x is in the range 0 to 25, but if or are not in this range then 26 should be added or subtracted.)

The replacement remains the same throughout the message, so the cipher is classed as a type of monoalphabetic substitution, as opposed to polyalphabetic substitution.

The Caesar cipher is named for Julius Caesar, who used an alphabet where decrypting would shift three letters to the left.

The Caesar cipher is named after Julius Caesar, who, according to Suetonius, used it with a shift of three (A becoming D when encrypting, and D becoming A when decrypting) to protect messages of military significance. While Caesar's was the first recorded use of this scheme, other substitution ciphers are known to have been used earlier.

"If he had anything confidential to say, he wrote it in cipher, that is, by so changing the order of the letters of the alphabet, that not a word could be made out. If anyone wishes to decipher these, and get at their meaning, he must substitute the fourth letter of the alphabet, namely D, for A, and so with the others."

His nephew, Augustus, also used the cipher, but with a right shift of one, and it did not wrap around to the beginning of the alphabet:

"Whenever he wrote in cipher, he wrote B for A, C for B, and the rest of the letters on the same principle, using AA for Z."

Evidence exists that Julius Caesar also used more complicated systems, and one writer, Aulus Gellius, refers to a (now lost) treatise on his ciphers:

"There is even a rather ingeniously written treatise by the grammarian Probus concerning the secret meaning of letters in the composition of Caesar's epistles."

It is unknown how effective the Caesar cipher was at the time; there is no record at that time of any techniques for the solution of simple substitution ciphers. The earliest surviving records date to the 9th-century works of Al-Kindi in the Arab world with the discovery of frequency analysis.

A piece of text encrypted in a Hebrew version of the Caesar cipher is sometimes found on the back of Jewish mezuzah scrolls. When each letter is replaced with the letter before it in the Hebrew alphabet the text translates as " YHWH, our God, YHWH", a quotation from the main part of the scroll.

In the 19th century, the personal advertisements section in newspapers would sometimes be used to exchange messages encrypted using simple cipher schemes. Kahn (1967) describes instances of lovers engaging in secret communications enciphered using the Caesar cipher in . Even as late as 1915, the Caesar cipher was in use: the Russian army employed it as a replacement for more complicated ciphers which had proved to be too difficult for their troops to master; German and Austrian cryptanalysts had little difficulty in decrypting their messages.

A construction of two rotating disks with a Caesar cipher can be used to encrypt or decrypt the code.

Caesar ciphers can be found today in children's toys such as secret decoder rings. A Caesar shift of thirteen is also performed in the ROT13 algorithm, a simple method of obfuscating text widely found on Usenet and used to obscure text (such as joke punchlines and story spoilers), but not seriously used as a method of encryption.

The Vigenère cipher uses a Caesar cipher with a different shift at each position in the text; the value of the shift is defined using a repeating keyword. If the keyword is as long as the message, is chosen at random, never becomes known to anyone else, and is never reused, this is the one-time pad cipher, proven unbreakable. However the problems involved in using a random key as long as the message make the one-time pad difficult to use in practice. Keywords shorter than the message (e.g., " Complete Victory" used by the Confederacy during the American Civil War), introduce a cyclic pattern that might be detected with a statistically advanced version of frequency analysis.

In April 2006, fugitive Mafia boss Bernardo Provenzano was captured in Sicily partly because some of his messages, clumsily written in a variation of the Caesar cipher, were broken. Provenzano's cipher used numbers, so that "A" would be written as "4", "B" as "5", and so on.

In 2011, Rajib Karim was convicted in the United Kingdom of "terrorism offences" after using the Caesar cipher to communicate with Bangladeshi Islamic activists discussing plots to blow up British Airways planes or disrupt their IT networks. Although the parties had access to far better encryption techniques (Karim himself used PGP for data storage on computer disks), they chose to use their own scheme (implemented in Microsoft Excel), rejecting a more sophisticated code program called Mujahedeen Secrets "because 'kaffirs', or non-believers, know about it, so it must be less secure".

The Caesar cipher can be easily broken even in a ciphertext-only scenario. Since there are only a limited number of possible shifts (25 in English), an attacker can mount a brute force attack by deciphering the message, or part of it, using each possible shift. The correct description will be the one which makes sense as English text. An example is shown on the right for the ciphertext "exxegoexsrgi"; the candidate plaintext for shift four "attackatonce" is the only one which makes sense as English text. Another type of brute force attack is to write out the alphabet beneath each letter of the ciphertext, starting at that letter. Again the correct decryption is the one which makes sense as English text. This technique is sometimes known as "completing the plain component".

The distribution of letters in a typical sample of English language text has a distinctive and predictable shape. A Caesar shift "rotates" this distribution, and it is possible to determine the shift by examining the resultant frequency graph.

Another approach is to match up the frequency distribution of the letters. By graphing the frequencies of letters in the ciphertext, and by knowing the expected distribution of those letters in the original language of the plaintext, a human can easily spot the value of the shift by looking at the displacement of particular features of the graph. This is known as frequency analysis. For example, in the English language the plaintext frequencies of the letters E, T, (usually most frequent), and Q, Z (typically least frequent) are particularly distinctive. Computers can also do this by measuring how well the actual frequency distribution matches up with the expected distribution; for example, the chi-squared statistic can be used.

The unicity distance for the Caesar cipher is about 2, meaning that on average at least two characters of ciphertext are required to determine the key. In rare cases more text may be needed. For example the words "river" and "arena" can be converted to each other with a Caesar shift, which means they can produce the same ciphertext with different shifts. However in practice the key can almost certainly be found with at least 6 characters of ciphertext.

With the Caesar cipher, encrypting a text multiple times provides no additional security. This is because two encryptions of, say, shift A and shift B, will be equivalent to a single encryption with shift . In mathematical terms, the set of encryption operations under each possible key forms a group under composition.

# data[].attributes.attachment_link.description
In cryptography, a Caesar cipher, also known as Caesar's cipher, the shift cipher, Caesar's code, or Caesar shift, is one of the simplest and most widely known encryption techniques. It is a type of substitution cipher in which each letter in the plaintext is replaced by a letter some fixed number of positions down the alphabet.