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