We have finished all sections of our introductory course.
Congratulations on making it to the end of this course
where you have learned a lot about cryptography.
You went from simple Vernon Cipher to Modern
symmetry key and public key cryptographic
methods.
That are used in almost all today's
devices and applications.
You understood why and how this cryptographic
methods were constructed and you
have got also good understanding of the main attacks
that can Target these methods in the first section.
You learned about the core principles of cryptography
confidentiality integrity and Authentication.
In the second section you understood how to achieve confidentiality
using symmetry encryption and
you studied in detail the ascriptive system.
On the third section you understood how to
achieve integrity and authentication using cryptographic
hashing and message authentication codes.
In section 4 you learned about the added
value of public key cryptography compared with
symmetric key cryptography.
You studied in detail?
Diffie-hellman key agreement protocol and our secretive
system. You learned how to achieve confidentiality using
public key crypto system in
particularly our secret system.
Section 5 you acquired an advanced understanding
how to achieve integrity and
authentication using digital signatures and
how to construct digital signatures from RSA.
You might be wondering what course or project
should you do next?
Let me suggest to you two possible types
of courses, you can take in the future. First, of
course that you can have is
to consolidate the theoretical knowledge that
you acquired with a coding course for cryptography.
So for instance a python is
very convenient programming language to implement cryptographic methods.
And if you would like to implement the methods
that we have seen by yourself from the
lower arithmetic layer,
then maybe you can use a library
like Sage math which is a python-based
math library that is appropriate
to implement like definite
field arithmetic that you have.
We have seen that is required either for
a yes or say. So basically you
can take like an applied cryptography. Of course
where either you code yourself the
cryptographic methods or you implement applications or
protocols that call existing cryptographic
methods like through apis cryptographic
apis.
Or if you are interested interested in the attack
side, then you can try to implement the attacks that
exist on several cryptographic methods
or applications. So you will
implement the attack yourself. You see all the complexity
and optimization that we need to
make this attacks efficient. So this is
one possibility like to code to consolidate
your theoretical knowledge.
another possibility
is to start studying a privacy enhancing
techniques also abbreviated pets.
Privacy enhancing techniques are cryptographic techniques
that go beyond the services
that we have seen in this course, the
classic Services of confidentiality integrity
and authentication. They go
beyond that to provide privacy
for users. Let me
give some examples of this techniques.
The first would be homomorphic encryption almost encryption
is a type of encryption where you can
apply some processing on a ciphertext.
This can be used for if for instance. I would
like to run some competition on my
data but my device has limited competitional
power. Then I can
delegate this competitional task to server
that has enough power, but I
care about my privacy. So what I
can do is that I will encrypt my data using
homomorphic encryption scheme.
That data is now encrypted. It's
confidential and then I send it to
the server that will do the processing and obtains an
encrypted output and returns that
output back to me for decryption. And that's how
I will get the result. So it's privacy preserving
a delegation of computation.
The second technique is I would like to mention here
is multi-part competition multi-party computation is
a technique where different parties can compute function
on their inputs without revealing
those inputs.
For instance. Let's say we are doing a secret bidding
secret option.
Then the bidders they can submit their their
bits and we can compute
function that finds the
highest bit in a privacy present manner
without revealing the initial bits.
So multiple competition
can be used for this kind of use cases where different parties
they care about their privacy, but they would
like to compute some functionality on their inputs.
Third technique is zero knowledge proofs generals proofs
is very important technique. It's very
hot research topic.
especially in the area of blockchain
so your knowledge proofs.
Allows a party to prove
to verifier that
he has some secret or that he did some competition.
Without revealing. What was
that secret or the inputs to that competition?
And this so that party can provide a
proof and a cryptographic proof
and this proof can be verified by the
verifier.
So zero knowledge proves that KP is used
for instance in the blockchain to bring
more privacy, but also to solve this
scalability like layer 2 techniques that
fix the scalability issue of
ethereum, for example, they rely on zkp to
achieve that
Less technique that I would like to mention here is Federated learning
Federated learning is a type of machine learning
where data of user is not
does not leave. The user's device.
It's rather the model that
gets goes to the to users device
gets drained there and then back to the server.
Google introduced this technique to train their Google
gboard in privacy preserving manner
without moving users data outside
from their mobile forms.
So these are very powerful techniques.
They are relatively recent compared to
the techniques that we have seen here.
They were mostly developed in the last decade or two
decades and they are currently getting deployed in different
applications and systems from
AI to machine learning to also blockchain.
So I think it would be also interesting to
have a look at this side
of cryptography.
So thank you for joining this course
and all the best on your cryptography Journey.