Internetwache – Crypto 60

The second crypto challenge was about RSA.

Alice wants to send Bob a confidential message. They both remember the crypto lecture about RSA. So Bob uses openssl to create key pairs. Finally, Alice encrypts the message with Bob’s public keys and sends it to Bob. Clever Eve was able to intercept it. Can you help Eve to decrypt the message?

File: crypto60.zip

The file contained three public keys and one file with three messages, each encrypted with one of the three public keys.

First off, we open the files using an ASN.1 viewer to obtain each public modulus. After having found the moduli, I used msieve to factor them. Having found p and q, we use the following Python code to obtain the flag:

e = 65537L
p = [17963604736595708916714953362445519, 16549930833331357120312254608496323, 17357677172158834256725194757225793]
q = [20016431322579245244930631426505729, 16514150337068782027309734859141427, 19193025210159847056853811703017693]
N = [x * y for x,y in zip(p,q)]

for i in range(0,3):
    private_key = RSA.construct((N[i],e,d[i]))
    cipher = PKCS1_v1_5.new(private_key)
    print pkcs1_unpad(private_key.decrypt(decoded_encs[i]))

The flag is

IW{WEAK_RSA_K3YS_4R3_SO_BAD!}

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s