Public Key Algorithms

Bradley S. Rubin, University of St. Thomas

Introduction

Merkle's Puzzles

One-Way Functions

Knapsack Algorithm

A Knapsack Algorithm Example

Key Establishment Techniques

Diffie–Hellman Key Exchange

A Diffie–Hellman Example

Diffie–Hellman Attacks

ELGamal

An ElGamal Example

RSA

An RSA Example

RSA Digital Signatures

Generating Large Prime Numbers

RSA Attacks

RSA Protocol Attacks

Protecting Public and Private Keys

Conclusion

Glossary

Cross References

References

INTRODUCTION

It is hard to place ourselves back in the mid-1970s, when conventional cryptography using a shared, secret key was the only type available—and the only type thought possible. Although effective at providing such functions as privacy and authentication, conventional cryptography has an inconvenient requirement. If one party wants to communicate with another party in a secure fashion, they have to somehow get a secret key to that other party before they can securely communicate. How can the parties (let us call them Alice and Bob) perform this key distribution, which must be done in a secure manner? Well, maybe Alice could encrypt the secret key before it is sent to Bob. What secret key will Alice and Bob use to encrypt this secret key? We are caught in an infinite series of requirements for a secure distribution channel for the secret key. We must somehow figure out how to get Bob a secret key, ideally over an otherwise insecure channel.

There are conventional cryptography solutions that get a ...

Get Handbook of Information Security: Information Warfare, Social, Legal, and International Issues and Security Foundations, Volume 2 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.