We'd like to apply encryption to the plain text.
Now we know that to encode some data we need a key parameter as well as the plain text the encryption
result is the ciphertext to reverse the encryption process to convert the ciphertext to plain text really
to use the same shared key.
This explains the name of the working principles of symmetric ciphers.
The same key is used for encryption and decryption.
What are the strengths of this simple solution.
Above all symmetric algorithms are extremely fast that can be 1000 to 10000 times faster than public
key asymmetric ciphers 10000 times makes a large difference.
It could mean for example that to encrypt some text using a symmetric algorithm you need a second while
for an asymmetric algorithm the same operation would take 5000 seconds.
The difference is obvious.
Other than that symmetric ciphers are based on a simple operation.
We've mentioned that earlier.
It's the exclusive disjunction with Samit or the exclusive Ekso are the following mechanism is the Ekso
our operation has the advantage of being very easy to implement in hardware.
X can be of any arbitrary link.
This operation seems custom designed for microprocessors a very complex city.
You can implement devices that use symmetric encryption and decryption.
There's a large number of available options.
For example Network Interface Cards you can purchase nics that natively support the basic protocol did
encryption and decoding is then delegated from an operating system to this hardware.
This solution has its share of disadvantages as well.
The first and foremost is setting up a key you've witnessed this problem when we discussed one time
pad.
How can you provide a key to a message recipient to make them decode the message.
If the message is intended for the recipient only the recipient must have their own key symmetric algorithms
require the use of a huge amount of keys.
The key number formula is directly derived from the number of system users.
If there are 50 users you'll need over 1200 and 20 keys.
The point is to allow everyone to be able to exchange data with another user in a secure manner.
You can exchange a single piece of information with everyone managing that many keys is no trifling
matter.
This is why symmetric ciphers are not widely used.
Moreover if a potential attacker seizes a key they will not only be able to decode confidential data
but also freely modify it and encode it back using the same key.
This will be unnoticeable and will jeopardize not only the confidentiality but also the authenticity
of transmitted information.
Our symmetric ciphers implemented the concept behind them is very straightforward even if an operation
does not provide absolute security if it's repeated enough times it can at last prove practically secure
this idea is the basis for round's symmetric encryption is performed in rounds an operation is repeated
a specified number of times the number of rounds depends on a particular algorithm and its configuration
attacks on symmetric ciphers usually succeed in breaking an algorithm.
If 16 rounds of repetition are used the default round number is however 25 giving you a 9 round fallback
the algorithm can be considered secure.
It is passed required tests and is widely used.
If the principle behind the symmetric key cipher is to work you can't repeat operations in each round
exactly using the x or operation all over won't change the security.
You have to introduce an element of randomness in individual rounds.
You need different round keys.
If you still remember the differentiation between confusion and diffusion in light of these terms symmetric
ciphers to be considered more or less secure need to be the mix of ciphertext increasing the diffusion
as much as possible.
They should distribute the plaintext over the ciphertext.
The basic division of symmetric key algorithms can be made according to the following principle.
Imagine that an algorithm can encrypt a plaintext an arbitrary string as a whole.
This is how a stream ciphers operate.