This course will introduce you to the foundations of modern cryptography, with an eye toward practical applications.

Loading...

This course will introduce you to the foundations of modern cryptography, with an eye toward practical applications.

Number Theory, Cryptography, Public-Key Cryptography

4.5 (оценок: 554)

- 5 stars355 ratings
- 4 stars144 ratings
- 3 stars34 ratings
- 2 stars10 ratings
- 1 star11 ratings

Apr 15, 2016

Very useful insight about Cryptography, very good practical assignments. I advise it to everyone interested in Cyber Security. Very stimulating.

May 08, 2016

This is a really good course to get a high level overview of cryptography, the main elements and concepts, and the teacher is really didactic

#### Jonathan Katz

Professor, University of Maryland, and Director, Maryland Cybersecurity Center

[SOUND] Welcome to introduction to Cryptography part of

the Cyber Security course sequence being offered by

the Maryland Cybersecurity Center at the University of Maryland.

I am Jonathan Katz and I am very excited to be teaching this course.

In this lecture, I just want to give an overview of the course content.

Highlight the goals of the course and

discuss some of the prerequisites I assume.

If you look in a dictionary,

you may see cryptography defined as the art of writing or solving codes.

And indeed, cryptography historically focused exclusively on so-called codes.

Nowadays, called private-key encryption schemes.

Which enabled two parties who share some secret information in

advance to communicate over a public channel, while keeping the contents of

their communication private from an adversarial eavesdropper.

Modern cryptography, however has a much broader scope.

In addition to data privacy cryptography is now also concerned with other goals.

Like data integrity, user authentication or more complex security requirements.

Furthermore, cryptography now also considers the public-key setting

where communicating users do not share any secret information in advance.

Finally, cryptography as a field now encompasses more than just primitive.

Ranging from the study of mathematical foundations to the design and

analysis of complex systems.

It's a bit hard to pin down a definition that covers the entire scope of the field.

But I think what really distinguishes cryptography from other fields of

computer security is its focus on mathematical techniques.

This of course, doesn't mean that other areas of computer security don't use

mathematics, nor does it mean that cryptography only focuses on mathematics.

But I would say that cryptography mathematical techniques are the primary

object of study.

Historically, cryptography was used primarily in military settings.

What's really interesting about cryptography now a days is that it's

used almost everywhere.

Everyone of you watching this video has used cryptography before.

In particular, when you type your password to log into the Coursera website.

If you've ever purchased something by credit card over the Internet,

you've undoubtedly used cryptography to ensure that your credit card

number can't be read by an eavesdropper in the process.

Beyond encryption, if you've ever applied an update to Windows or

Mac software then unknowingly,

you've relied on digital signatures to verify the authenticity of that update.

And finally, many of you may have heard of Bitcoin.

A recent system for

decentralized electronic cast that relies on cryptography for its security.

If we go back to the historical definition of cryptography,

we see that cryptography is also defined as being an art.

And indeed.

Historically, cryptography was largely an art with schemes designed and

evaluated in a relatively heuristic fashion.

The entire process was somewhat ad hoc.

With schemes being proposed and deemed good enough, if the designer and

his friends couldn't see any way to break it.

If the scheme was later broken, then it would be patched and the process repeated.

Modern cryptography, however is much more of a science.

The field now rests on firm foundations and a rich theory has

been developed that enables more rigorous design and analysis of schemes.

Cryptography has been hugely successful.

So much so

that many of its ideas have permeated other areas of computer security.

For example, the emphasis on formal threat modeling and

the possibility of proofs of security within some well defined model.

In this introductory course, we will cover the two primary cryptographic settings and

their corresponding primitives.

In the private key

setting where the communicating parties share secret information in advance.

We will study private key encryption schemes for

ensuring secrecy of their communication and message authentication codes for

the equally important task of data integrity.

That is ensuring that data is not modified improperly.

We will then move on to a treatment of the public-key setting.

Where communicating parties did not share any secret information and events.

And where the analysis concerns,

the analysis concerns are handled by public-key encryption schemes and

digital signatures that as we will see, are constructed using very different

techniques from the corresponding perimeters in the private-key setting.

Along the way, we will also cover some of the necessary building blocks for

these primitives.

Which are interesting and useful in their own right.

Things like Pseudorandom generators, block ciphers and hash functions.

We will of course, also introduce some number theory about midway through

the course in preparation for our discussion of public key cryptography.

The course will follow fairly closely selected chapters of my text book,

Introduction to Modern Cryptography.

This text is not required, but

you may find it helpful as a written representation of the material.

Those of you looking for further information about the topics we cover in

this class or treatment of more advanced topics, may also find the book useful.

In designing the course,

I've tried to hit a middle ground between theory and practice.

The course is motivated by the goal of having you understand basic cryptography

as it used today in the real world.

Nevertheless, I plan to do this while taking a rigorous mathematical approach to

the material.

In keeping with the real world focus,

I also expect that after you have taken this course,

you will be able to use cryptography as part of systems you develop.

This means both of you will know the appropriate primitives to use for

some particular application.

And we'll also be aware of how to use those primitives properly.

This course will not make you a crypto expert, but

it should allow you to determine when standard cryptographic tools suffice.

And when you need to call in an expert cryptographer for help.

Finally, I hope to also impart a crypto mindset as part of this course.

That is to emphasize the importance of formal modeling and

precise assumptions and

to highlight the possibility of proving security of a particular construction.

I intend this course to be accessible to undergraduate computer science,

mathematics or electrical engineering majors.

And with that in mind, I've tried to keep the prerequisites minimum.

As far as mathematics is concerned,

I do assume some prior exposure to discrete mathematics.

I also assume some basic familiarity with discrete probability.

Along the what lines of what might be covered in the first month of the standard

undergraduate probability course or as part of a discrete mathematics class.

Perhaps most importantly, I do assume a fair degree of mathematical at maturity.

This means that you are able to think abstractly and

are comfortable with definitions and proofs.

From a computer science standpoint, I assume some basic CS knowledge, EG,

familiarity with binary, hexidecimal, and ASCII representation.

I also assume the ability to read pseudo code and comfortability with

concepts like big-O-notation for analyzing the running time of algorithms.

Finally, I assume some prior exposure to programming in a C-like language and

I will use C programs as examples throughout the class.

There will be optional programming assignments as part of this course.

So I will try to structure things, so

you can do those using a language of your choice.

In the next lecture, we'll begin in earnest with a more detailed discussion of

private-key encryption and

an examination of some classical examples of privacy encryption schemes.

I hope to see you all there.

Coursera делает лучшее в мире образование доступным каждому, предлагая онлайн-курсы от ведущих университетов и организаций.