## Getting Started

### Tutorial Problems

Most of the problem descriptions give just enough information to find the solution. That makes for interesting problems but if the topic is new to you it may be kind of confusing. Tutorial problems are easier and give a more in depth explanation of the problem and what you need to do to find the solution, and what you learn can be applied to the more difficult problems.

### Working with RSA Keys

ASCII armored RSA keys are used throughout this site and are of the following form:-----BEGIN [RSA] PRIVATE|PUBLIC KEY----- [base64 data] -----END [RSA] PRIVATE|PUBLIC KEY-----There are several ways you can parse ASCII armored RSA keys, the easiest way being with openSSL. The output will contain several values including the modulus n and the public (or private) exponent e (or d).

$ openssl rsa -RSAPublicKey_in -text < [infile] > [outfile] # for pkcs1 public keys $ openssl rsa -pubin -text < [infile] > [outfile] # for pkcs8 public keys $ openssl rsa -text < [infile] > [outfile] # for private keysIf you do not specify an infile openssl will read from stdin. Similarly, if you do not specify an outfile openssl will write to stdout. See the OpenSSL documentation for more information about working with RSA keys.

### Math & Cryptography Resources

#### General Math

Factoring Algorithms: Fermat's Method | Pollard's Rho Algorithm | General Number Field SieveElliptic Curve Arithmetic: Guide To Elliptic Curve Cryptography (Chapter 3) | Point Multiplication

#### General Crypto

The Diffie-Hellman Key Exchange Protocol: Paper | Attack Against DH In TLSThe RSA Algorithm: Paper | Wikipedia | Survey Of Attacks Against RSA

The AES Algorithm: Spec

Authenticated Encryption Using Generic Composition: Paper | Crypto StackExchange

#### Practical Attacks

Bleichenbacher's Adaptive Chosen Ciphertext Attack Against RSA: Paper | WikipediaBEAST Attack Against TLS: Paper

CRIME Attack Against TLS: Slides

Lucky 13 Attack Against TLS: Paper