26/03/2019
18h
Cryptography
Exemples
Outils
mini-CTF
Qu'est-ce que c'est ?
Pourquoi est-ce utilisé ?
Encore d'actualité ?
Présent dans tous les CTFs
Symétriques (DES, AES)
Asymétriques (RSA)
Hachage (md5, Sha-*)
1 clé secrète : Chiffrement & Déchiffrement
Canal protégé nécessaire
Fonctionnement :
M = F1(k, C)
C = F2(k, M)
2 clés : Publique & Privée
Authentification de l'auteur
Pas besoin de canal protégé
Calcule une empreinte
Identification de la donnée initiale (Intégrité)
Collision
RSACtfTools, RsaTool
OpenSSL
Quipqiup
Script Python
# generate private key
$ openssl genrsa -out priv_key.pem 2048
# generate public key from priv_key.pem
$ openssl rsa -in priv_key.pem -pubout -out pub_key.pem
# encrypt flag.txt file with pub_key.pem to flag.txt.enc
$ openssl rsautl -encrypt -pubin -inkey pub_key.pem -in flag.txt -out flag.txt.enc
# decrypt flag.txt.enc with priv_key.pem
$ openssl rsautl -decrypt -inkey priv_key.pem -in flag.txt.enc -out flag.txt.dec
#!/usr/bin/env python3
from Crypto.Util.number import inverse
### encrypt with public key (n=3233,e=17)
message = 97
p = 61 # secret
q = 53 # secret
n = p*q
phi = (p-1)*(q-1)
e = 17
ciphertext = pow(message, e, n) # 2790
### decrypt
p = 61
n = 3233
e = 17
ciphertext = 1632
q = n//p
phi = (p-1)*(q-1)
d = inverse(e, phi)
message = pow(ciphertext, d, n)
teamcryptis.fr (slides + détails)
1h30
solo ou duo
Correction des challenges (dès demain)
Pas trop de brute force sur le site web :)
Nos PC hébergent la plateforme + challenges
Vous faire apprendre des choses