Skip to content
This repository has been archived by the owner on Jun 12, 2022. It is now read-only.

Problems related to computer security. Algorithms written in Python. Learn more: https://id0-rsa.pub/

Notifications You must be signed in to change notification settings

aaossa/Computer-Security-Algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Computer Security Algorithms

Problems related to computer security. Algorithms written in Python. Follow the Tutorial

Main topics (Tags)

  • RSA: RSA stands for Rivest-Shamir-Adleman. Is a widely used public-key cryptosystem "based on the practical difficulty of factoring the product of two large prime numbers" (RSA cryptosystem)

  • PublicKey-Crypto:

  • Hashing: A hash function maps data of arbitrary size to data of fixed size. An ideal hash function maps randomly, avoid colissions and is impossible to invert.

  • Symmetric-Crypto:

  • Classical-Crypto:

  • Passwords:

  • AES:

  • Tutorial:

  • Bitcoin:

  • PGP: PGP stands for Pretty Good Privacy. Is a program used to facilitate encrypt and decrypt your mail. PGP "has proven itself quite capable of resisting even the most sophisticated forms of analysis" (PGP faqs)

  • ECC:

  • Factoring:

  • OpenSSL:

  • PRNG:

Solved Problems

  • Hello PGP Use PGP programatically. Recover the message encrypted with a single English word.

  • Hello Bitcoin Do you know how bitcoin addresses are constructed?

  • Hello OpenSSL Can you read and use an OpenSSL RSA key?

  • AES-CTR with Nonce Reuse Can you exploit a reused nonce?

  • Affine Cipher Can you brute force this classical cipher?

  • Double Strength Affine A slight security upgrade, is it enought?

  • Ps and Qs RSA keys generated with one critical weakness

  • Insufficient Key Size Are you running on all 8 cores? This small key is factorable on a PC with an efficient implementation

  • Elliptic Curve Private Key Recovery Given the public parameters of an elliptic curve, recover the poorly chosen private key

  • Håstad's Broadcast Attack RSA with a small exponent is fast to compute but it has a serious weakness

  • Monoalphabetic Cipher Monoalphabetic ciphers leak information. Can you recover it?

  • Playfair This bigram cipher is a bit trickier...

  • Factoring RSA With CRT Optimization Recover a RSA private key when an optimization goes wrong

  • Rainbow Table Hash Chain Can you use a rainbow table to recover a password?

  • ECDSA Nonce Recovery Nonce reuse leading to private key recovery, this time with elliptic curves

  • Intro to Hashing Hashing is a vital concept in cryptography

  • Intro to PGP Can you use PGP programatically?

  • Intro to RSA Learn the basics of a common public key cryptosystem

  • CBC Padding Attack CBC is one of the best modes of operation for block ciphers, but even leaking a tiny amount of information is enough to completely undermine its security

  • CCA on Textbook RSA Turns out padding is important

  • Fast Hashing Passwords Cryptographic hash functions shouldn't be used to hash passwords directly

  • Salt Alone Won't Save You Salting password hashes is important, but not enough on it's own

  • Cut and Paste Attack On AES-ECB Create a valid ciphertext without knowledge of the key using some copypaste

  • Insecure PRNG Using a PRNG that isn't proven to be cryptographically secure is a recipe for disaster

  • Bad Entropy It's easy to generate bad symmetric keys

  • Caesar Should probably stick to the salad

Unsolved Problems

  • Bleichenbacher's CCA2 on RSA 14

  • CRIMEs against TLS 20

  • CBC Padding Attack 22

  • Breaking PDF Passwords 29

  • Backdoored PRNG 31

  • Vigenère 33

  • Rail Fence 34

  • Vigenère + Rail Fence 35

  • Not So Safe Primes 37

About

Problems related to computer security. Algorithms written in Python. Learn more: https://id0-rsa.pub/

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published