Welcome to a module that will focus on cryptography the module will include a discussion on the modes
of operation of symmetric and asymmetric ciphers.
The models ensure that data that is encrypted using an appropriate algorithm is secure and its confidentiality
has not been compromised.
Provided you have successfully protected a key used for encryption will also take a look at cryptographic
applications the cryptographic systems that are used today most cryptographic systems today use hybrid
schemes.
A few words of introduction throughout the course we have emphasized over and over that encrypting is
the only viable solution that guarantees top data security and authenticity level data protection by
means of access control this is efficient only in a running operating system that implements the mechanism
applying encryption However guarantees the data will remain encrypted whether it's located on a disk
or sent over a network as far as encrypting is concerned.
Let's start with a more basic term coding
coding in encryption or similar in nature.
There are comparable processes or operations coding is however more broad in scope.
When you talk of coding you refer to the process of translating programming expressions from one language
into another.
Computers are coding machines letters and digits you press on the keyboard are in fact transformed into
bits by the machine.
Computers interpret bit values 0 and 1 States as regards data confidentiality.
Steganography is a peculiar subtype of coding steganography is a method for hiding information in such
a way that only a person who knows where to search is able to find it.
The image is blurred because it's multilayered.
The first layer contains an image but the internal layer has completely different data.
The internet is brimming with tools to hide information for example in image files a human eye is not
sensitive enough to discriminate detailed transitions.
For example in Shade's if color depth is for example 24 bits the last six or seven bits are actually
invisible for humans.
These values don't add to your image reception.
You don't have to put color information in them but embed data there.
For example text to extract it later you need a specially designed program that looks at the last six
or seven bits and converts them into text that is later displayed.
This means that it's possible to publish information intended only for a specific group of recipients
on public Web sites.
Everyone will be able to see an image.
For example Windows logon screen image.
This is a rather homogenous image.
There are a lot of redundant bits that are an ideal place for embedding coded data.
A person who downloads the file and extracts the hidden information will be able to read your message.
What's the difference between encryption and coding.
If you want to encrypt some data you assume that the encoded information will not be read unless a recipient
is in possession of an additional piece of information.
A key an encoder a special type of coding machine must have some additional information.
A key at least in theory this key is necessary to invert the whole process and decode an encrypted piece
of information to receive it in plain text.
Let's now briefly explain the terminology.
The first term that is of note for us is cryptography a set of techniques for encrypting and decrypting
data
all algorithms for encryption ciphers will operate following one very general formula a ciphertext as
a result of transformation performed on a plaintext.
The general scheme is very simple.
You can divide Scifres coding machines at several levels.
The first division can be made based on what key parameter is used by a specific algorithm.
In this regard ciphers can be classed as symmetric or asymmetric will return to them later in the lecture.
We'd like to focus now on a different vital differentiation algorithms can be either public or secret
quite frequently.
Software is sold and marketed as 100 percent secure the data processed and the software is encrypted
using an obscure or little known mechanism the assumption is that we users should not know about use.
This knowledge should only be shared between software architects and programmers.
In practice this secrecy could mean that the software simply tries to cloud for some reason using a
common algorithm or that the producers have implemented in some proprietary encryption solution.
This is a significant issue.
If this is true this violates one of the fundamental cryptography laws formulated by August Kirchoff's
that is named after his Kirchhoff's principal
the principal stipulates that the security of a cipher should only depend on the security of the key.
It should not depend on the secrecy of algorithms used for encryption and decryption.
This is a very simple maxim that reformulated also means that you can't make a public piece of information
secret.
If more than two people know something it's no longer a secret surfers are obviously implemented in
all copies of a given program.
It wouldn't work without them.
Even if program creators wish that the ciphers remain secret.
If you're determined enough and have enough time and knowledge you can debug a program or analyze the
operations it performs in some other way and uses to extract data on the operation of the used algorithm.
Why is this so dangerous when you try to veil something.
It's not usually a high dependable and tested solutions but to obscure the solutions you wouldn't want
to share for a number of reasons.
This is a particularly lamentable security practice that is known as security through obscurity.
Speaking from experience.
Almost all solutions that have implemented secret cryptographic algorithms have shown to be too weak.
Once the operation mode of an algorithm is discovered breaking it is trivially easy and discovery is
always a threat.
A practical consequence of Kirchhoff's principle is that you should never use secret ciphers.
It's possible to roll off a huge list of instances to support this law.
You might remember for example that not so long ago an encryption system was employed on DVDs to make
viewers able to legally watch the video they purchased a key had to be located somewhere for content
decryption.
This information was public.
Once the DVD content protection standard was published programs for removing the security mechanism
were developed and put on the Internet within days Microsoft had the same problem with the first version
of X-Box.
The console was protected against installing some programs or modifying the operating system the device
used.
And again in spite of the fact that the data and the programs were encrypted and that their authenticity
would be checked despite secure cryptographic mechanisms being implemented the key itself had to be
stored in the Xbox the cryptographic system would not work otherwise.
Before long people would develop methods for hacking the console.
It's impossible to successfully protect a public piece of information cryptanalysis on the other hand
is a set of techniques used to reverse encryption without knowledge of a key this module will discuss
cryptanalysis later when comparing various algorithms especially public key algorithms.
The security of a cipher text is a ciphertext immunity to cryptanalysis what generally speaking does
the security depend on the first vital factor is the used algorithm.
The security of the ciphertext is also influenced by key strings.
Strictly speaking it depends on the key randomness will refer to this concept as entropy.
It will also be covered later.