Return to SSLCrypto Home Page

SSLCrypto Cracking Challenge

Challenge posted September 20, 2003

Sending information around the internet unencrypted is a major security risk.

But it can be much worse to trust some encryption software to protect your sensitive data, if this software's encryption gets compromised without your knowledge.

Therefore, we post here a crackers' challenge, in which we invite you to take part.

If you succeed with any of the challenges below, please contact me with a description of how you did it, preferably providing source code for any software you used in the process. With your permission - I'll post your details here.

We're resting here on the assumption that, if the encryption is vulnerable enough to be readily cracked, then there'll be at least one 'white-hat' out there who'll do the honest thing and send in the info.

Challenge 1 - 1024-bit Key

Status: Not Cracked

Using the public key below:
  1. Forge a signature for the following string of text (note that this string is all one line, and does not contain any newlines):
    • Now is the time for all good men to come to the aid of their party.

  2. Decrypt the following ASCII-armoured ciphertext into plaintext:
    • <StartPycryptoMessage>
      TAEoVQNSU0FxAChMNUwKTDE0MjE2NTY5NzgwMDY0ODQwMjEzMTU3OTA2Mjc5NDExODc0NzgyMDc5
      ODEwMDMwMTc4MDY3MzI4MzkzMDY1NzE3NDA1MzEzNDEyNTY2MzcyNzUyMTM5MjAyMjE5MTk0NDM2
      ODgyMTU3NjI0NzgyMjAxNjUwODQzNTQ5Nzk5MzIwOTUxNjY0NTI5MjUxMTkzMzY0MDE2MzYwODcy
      MzA4OTMyMjc0NjE4MzgyMjg5MjQzODM2NjcyNjE4NjI4MTE1MTUwOTg0MDk0Nzg2ODA4MDUzNjAy
      NDI1OTQxMzc3NDI0ODAzNzAyNDc4MjQzOTYxNjY4ODU1OTg0ODEwNDE0MzUwMzQ4MDM2MTg2MTQ4
      NDAwNDU0MjAwMTQ4MDQxOTIyMjUzMzQxMDI0NDYxNTM1OTY2MzkxOUwKdHEBdHECLgMAACAIgAAN
      pSU0v3Cn0pff93tzHYhb4qePDdq2zsmsL+/CuzVNePCjMs4gMSJ+ophITLcOT/9lTdwZCBIvZ6np
      u7c4E9+ZWm+UYumCXkuX6gw51M2K0ADvhpM3Rya0j83M7k5GWZZdSL2xNjoPeTiZRJYHQCPCZc4N
      rZsoUnA1Xe/yTzUMn4AAHcB7bM9yyIV4P+xrEwWtEaizyjos/z/CrtyGg46nw3MWAegH6dGYMKWL
      45mD8prv0MeeqjQ4cEvD8L/GkSI/21kdeobPxHuV4kqytCg7EdZ1nv3RndPdKV6wt84CY+csQ64C
      ZwAkpQTXcQY0fpzixNHYKal6e5uBxJ7eUEDWc/g/a2++Vko5aukCvdvWmB5xkhW1mne135/HGFEU
      9M7jGUNSAPhmTGX55LKiyrSTy0aT2hZq/1Dg809dcayPNT7txRZ/bhDeJCf4RdV/0qXF7ukwD7C+
      wi5tR05T5zt7b2a7qpo+kPvqxcK8iqZ21BFgNSpsvUC1y4Z4jiYsvhFpgsWZpPJJzoBGk2DZVXn5
      dD19QdGobdwRwhJphLjm6e2AINxSsFeQ80XUYJv9E2wvr6qowd2MTBY2ClSA9wdEI5RV2SnPE53m
      RSh5duKlC+6HgIubBSZkefFQwWhh7ojaA/zB+IaLiFbRg+Ry5l62LUfAMKNEN4MUYULTdUalAO23
      hjGykLClwAkSz5VY1wqA
      <EndPycryptoMessage>


Public key for 1024-bit challenge:
<StartPycryptoKey>
KEsASwBUTAEAAChVA1JTQXEAKEw1TApMMTQyMTY1Njk3ODAwNjQ4NDAyMTMxNTc5MDYyNzk0MTE4
NzQ3ODIwNzk4MTAwMzAxNzgwNjczMjgzOTMwNjU3MTc0MDUzMTM0MTI1NjYzNzI3NTIxMzkyMDIy
MTkxOTQ0MzY4ODIxNTc2MjQ3ODIyMDE2NTA4NDM1NDk3OTkzMjA5NTE2NjQ1MjkyNTExOTMzNjQw
MTYzNjA4NzIzMDg5MzIyNzQ2MTgzODIyODkyNDM4MzY2NzI2MTg2MjgxMTUxNTA5ODQwOTQ3ODY4
MDgwNTM2MDI0MjU5NDEzNzc0MjQ4MDM3MDI0NzgyNDM5NjE2Njg4NTU5ODQ4MTA0MTQzNTAzNDgw
MzYxODYxNDg0MDA0NTQyMDAxNDgwNDE5MjIyNTMzNDEwMjQ0NjE1MzU5NjYzOTE5TAp0cQF0cQIu
cQB0cQEu
<EndPycryptoKey>


Challenge 2 - 2048-bit Key

Status: Not Cracked

Using the public key below:
  1. Forge a signature for the following string of text (note that this string is all one line, and does not contain any newlines):
    • Now is the time for all good men to come to the aid of their party.

  2. Decrypt the following ASCII-armoured ciphertext into plaintext:
    • <StartPycryptoMessage>
      gAIoVQNSU0FxAChMNUwKTDI1MjUxOTU4MjgyODAzNzEyNTU4MDU4MDkwMjY5MjYyOTcxMjM0NjQz
      NjU2NjYwNTkyNDQ3NTgwOTYyMjA5NDEzNDAxOTI4NTU4OTI4NTc1Mzc4Mzc3NTcyNjgzNTM1Mzgz
      NTk2NzY1MzAxNzc4MDA2NDczNjEyNTE0NzI3MDUyMTgyMDkxNzE0MDk2MDQ1MjE4MjI0MTQyNzQ4
      ODQ5MTY1NjExNTU4MzU4ODI0NjAzOTUwNDQ4ODc5OTQyODAxMzc2Mzk3MDQzNjAzNzIxNzExNDM2
      NDQ1NjM1MzE2ODI0NTQ0MDQ5ODE3NzUzMjYxNzM3MDMzNzM1MzM4NTg1NjU3NTg4ODYyNjk4MjU5
      MjMxNDc1ODIzODI1MzM2ODA5MDg1ODIyNjQzNjkzNTg4MTE4NDEwMDc4MjU4Mjg1NTU2NDUxNjkw
      MzA4NzI0NzY2NTM4NzU0Mjg3Mzc5NjQ2ODE1OTE2MjIwODYwMDk2Nzg1MDg4Nzg3ODgzMzE4MDEw
      NjgwODU5NTI2MjQxOTY3MTgxNjUzNTQyNjcyOTE0NzQ3NjI3NjA3NTM5MDc3NTM4MzMwMTcwMjU1
      NzM3ODc4MTY4MTE4MDkzODcwMzM2ODM0NjMxMzEzNDQxNTYxNTI5MDAzMTc3NjQzNjAxMTEwMjE2
      ODczMjMyNTEzMTU0Nzk0MzEzNDk3OTQzODkxNzMyMzQ1OTkzMjc3ODI0OTAxNzMwMTAyMDM1NjQw
      OTI1NzE5ODIwMjA0OTMyNjcxNDAxMDY4MTUxMTE3OTM4MDQxNDY2NDM4MDg4NTI2NjY4NzA4MDU5
      MjAyNzYxTAp0cQF0cQIuAwAAIAgAAXvCfFGAJVpfv30qu4olCiG6xYcvI/SSbnCAvIU0j+44Pe1V
      C9/oiZhkXHSSGn3UASrBu0uQ5q9C8TiQXdWXapd/IIR1b8Yq9Oaz9RbUvuOFw60kXF4CBA+uWttN
      hVmjjKf8zREgqh3wgNb1YSX3j4+TulHwKTxTEkdjBd4vgqiYViGtZWcCicRnNEh9UTxV0RafiFvE
      BP7lSk2V+YmXKoQfkj3+9Ow8ZHpzlHk8jV0KVarYTrkfzGMdNMVZudXacstKhmvx50zW3sj/uzjn
      c/8Z/rfRuHTcaD+9BTI8D9OE2J1JkiHDUbuMZVlHLJ8q+UdxRcxIG+eMnT2vs8G02xgAARwbrHZX
      Dv7Gjo7RAr7OS6/1ckULkAgQoeGXzrfLSmA8/B+WdBOqyW8luTu/n4IqFJ5ULIYagC+pOa4gDkF3
      WKY7aMr4yP2yt9pCXpVaTY43avLyMW/bkHh+dtZQeY73TrRtql+b5SgEdh50dYF4sMw1JRjCzSta
      TYmBTrKpAReoLTZNcYNcjmJ+IHSLUA0LY2xMeqW5A754n1YyIP8+1lI76n/5DuTuz1faAhi+mQjP
      dY7qzeLp6kOIzBkuQcsCoZHEoL3/jLoV4KNcmjIIWVi1G5sBqw7/lALMDFOB1QTKEVJWmWwapQZG
      PqsOEWUrEMjBTYMmj+A1C1waBqx3benrvIAP/lIlSLgiVkhFPZ36U5f7Y9EJQa3cXNjhgVovQgC9
      g6TBukf1k3ZxAlJN/v1j1RlmTfzZ5tkedv9C4BmOqSL5g9ZZmmNg+JSW6pIAlMxvUWuH8FyASGp2
      yXfdPTowDTGOGvoKBF0idlbRrFytJEQVd8eKfce5qXIM/Aae8FfBRrQa8hdR1RklgAfi5H0hXMOY
      ts1ukCZ6nOgmntz9kF/EPVlznsCQauB+o5Sj6K+7yn8N7wxhIbGUcDiFJJ4Jd8dzt5gOKj2SkiA5
      okWzcDKcOJeT3uwRC/bbUsk6bVmNaYzqweIpFH2EPKx/Tje4UUaF0ULFe+8t8WTueQ0fWf1r+hHi
      9zOM1IhSHdlYlzLIRC0cPD03nCrTzdnB5ahGyOiI+DJhABm56X1Vgr7fkmrSEyovcGYn5Aiqizjp
      gg+uvp8wOtgyIg==
      <EndPycryptoMessage>


Public key for 2048-bit challenge:
<StartPycryptoKey>
KEsASwBUgAIAAChVA1JTQXEAKEw1TApMMjUyNTE5NTgyODI4MDM3MTI1NTgwNTgwOTAyNjkyNjI5
NzEyMzQ2NDM2NTY2NjA1OTI0NDc1ODA5NjIyMDk0MTM0MDE5Mjg1NTg5Mjg1NzUzNzgzNzc1NzI2
ODM1MzUzODM1OTY3NjUzMDE3NzgwMDY0NzM2MTI1MTQ3MjcwNTIxODIwOTE3MTQwOTYwNDUyMTgy
MjQxNDI3NDg4NDkxNjU2MTE1NTgzNTg4MjQ2MDM5NTA0NDg4Nzk5NDI4MDEzNzYzOTcwNDM2MDM3
MjE3MTE0MzY0NDU2MzUzMTY4MjQ1NDQwNDk4MTc3NTMyNjE3MzcwMzM3MzUzMzg1ODU2NTc1ODg4
NjI2OTgyNTkyMzE0NzU4MjM4MjUzMzY4MDkwODU4MjI2NDM2OTM1ODgxMTg0MTAwNzgyNTgyODU1
NTY0NTE2OTAzMDg3MjQ3NjY1Mzg3NTQyODczNzk2NDY4MTU5MTYyMjA4NjAwOTY3ODUwODg3ODc4
ODMzMTgwMTA2ODA4NTk1MjYyNDE5NjcxODE2NTM1NDI2NzI5MTQ3NDc2Mjc2MDc1MzkwNzc1Mzgz
MzAxNzAyNTU3Mzc4NzgxNjgxMTgwOTM4NzAzMzY4MzQ2MzEzMTM0NDE1NjE1MjkwMDMxNzc2NDM2
MDExMTAyMTY4NzMyMzI1MTMxNTQ3OTQzMTM0OTc5NDM4OTE3MzIzNDU5OTMyNzc4MjQ5MDE3MzAx
MDIwMzU2NDA5MjU3MTk4MjAyMDQ5MzI2NzE0MDEwNjgxNTExMTc5MzgwNDE0NjY0MzgwODg1MjY2
Njg3MDgwNTkyMDI3NjFMCnRxAXRxAi5xAHRxAS4=
<EndPycryptoKey>

Challenge 3 - 3072-bit Key

Status: Not Cracked

Using the public key below:
  1. Forge a signature for the following string of text (note that this string is all one line, and does not contain any newlines):
    • Now is the time for all good men to come to the aid of their party.

  2. Decrypt the following ASCII-armoured ciphertext into plaintext:
    • <StartPycryptoMessage>
      tAMoVQNSU0FxAChMNUwKTDQ0NDUzNDI2Nzc1NjMyODYwMDUyNzcxMDI5ODg5MjYzMzk0ODcxMTM0
      Mjc4NjE4Nzg4MDY5MzcyOTY1Mjc0MTIwNDk2MzYyNjkwMzUyMTA5MjgwODc2ODczODcwNzY5OTYz
      NzE1NjI3OTc3MDQzMDAyOTQyNjQzNTU2NDM4MjE1OTAxOTQ0NTgyNjkwNTA1NDkzMjUyODI2MTEy
      MjE5NzMzOTUxMjE2ODc0MTk1MzU3NTQzMzYzMzk2NDc4ODI0NDMzOTAwMzg3MzUxNzkyNDIxMTk2
      ODU1MDg0MDU1OTg5NzUzNjE1MzE4OTI3OTkxNzY5ODczNTM5MDEwNzk1MDg1ODU2MTEzMjU5OTEy
      MTEyNzI2MTI5Mzc4NDQ0Nzk5MDcxMjQ5NzE3ODAwODM3MTI3NDA4OTQzNDcyNzEyNTQyNjgzNjQz
      MjUyNDU0NzM5MTU0NDc4NzY4ODY0NzA1MTc2NjI1ODY5MjE2ODg3NzEyMjkxMDgyMDA2NDgxMjY1
      MjU2NjI5ODM2OTI0OTgwNzM5OTI2NDY4OTUyMDk2MDk4MDcxOTU5OTk0MDA4NjM4NDk0Mzg0NTcw
      NDM1ODA4MDk2ODQ5MzA3MDAyODY5NTEzOTE5NzYzOTY2NDU2NDY5MzcxMjY5Njk4OTQ4MzM2ODEw
      ODE2OTg2MzU1NTI1NTEwODE5OTQ4MjM0MTk2MTkwNjkwMzM2MjAzODM4MzEwNzg5MDU0Njg0MjY2
      NDk1MDcxNTAzMjIzMTQ0ODM2NTkyMjE0OTExMDkxNzc5ODQxODQ1OTIxMDM5NzI5MDA0ODU5MDYx
      Nzg2MzY4ODM3MTk2ODE5NTU1MzAwMTMxNzkyMjE4NDAzODY3MDYwNzAzNzkxNjA1MTA0MDE1MDA1
      NDgwODY4MTMzNjU1NjA5MTE3NzkxMDMzMDk1MjYzODcyMTcxMjQyNjk0NzkxMTAyMjM1ODk4NDky
      ODA2MzEzNjIzNjc3NDc5MzY5NDQ0NDk1OTUxODYwNDY4MjY3Nzc4MzI4MjkzMjMyMjA2NjA2MDk1
      ODY3NDI2NzA1NzAyNDAwNTk1NDE3MzA5MTExNjUxNzc3ODEyNjA5MjAxNzQ5NDAzODk1NjQyNzg3
      OTczNzYyNjYxNDQ2OTU0NjA3MjIxMjM1MTQ0OTMzNDk2MjE2ODMxNzA3MzEyMDgzMzQzNzEwMzQ4
      MjQyNDQxNTc5MTkyNzk2MjI4NDM3MTE3MzA2NDdMCnRxAXRxAi4DAAAgCIABSXIfKV64omnjBbgd
      ec8AXaygVXnJ8Qor7oGIQLo1P2n+IchbK1/mVzqZgD4HYVvMQKx2YnhWRjMkkxSJkTRQGlqYAYPU
      wWNH7pFPXeHH42+zNZe0VM3a0vGRigXg31frLJTM/vD/iZdc4crY78T2JULZp761V30Gt6iYmKR9
      0/ijBLw5ETmJbeZGGOv5W6wIBDPZqpF8WLmmKpJkBBNkY/rRd2/lqHcGYMq6zQ3xCstVcyVILDNw
      Dt1qTnnf4eQNqYCtHafxnTos1SiI0DZhmUWZotNEBGsb1AyX8aXh9aDxZwJ+esFj5l4nHNcnGZ9S
      o/jbkTVZcQZDYyyyGSXdJx81cP5p7I/vNO546rcBSICATQ7zxf5XdI5okG9LZHT22EcVWNzgr9AS
      KyGFyLZvN1b7wH0GFBUHUYU5X80WYuHXKDtvc2aaIjstdE3ehxBt0AF0rOk9LzX1SVUnyUfkOl1w
      iZBNpRU6Bg9HsFohAaFp/Yf+pupxLsNDLI844p9CgAEzZk+nFa/OtdhiILXG6bmGDw6JmAbrIk2+
      P0az3AmsVkfah0/rQHuN0cquNSOXCiYBkLWWOILOAVhSvYm1uXt2FnCaTup1wXu2pPR8VvR4uR0t
      ZkLNwhv0u2Vjg0OY0VLvzsK40e90pjygFOOS4u2pzbM1Wf+THLiGc7XNVki3sEG7CGGSbfFlw9q3
      2Ckjl23Txus4f/7Y022vyHrx4JvqOMYE1cXDP/pPhF/hKm56KBwRm0Rc9CtNdWEV57g1HhXozKBn
      7C7qmxYCUYJoMXFKeJQf0kfsnUVECEJ7RZBtqMYkQOs4cxFwImBCUySiD20pSoOKqgqIXJbdjRYF
      hI3IxbioghQBH6EyaGmLhtCDa/4wQEkqg89+OQvy5hTvbmH9QWufOa9Yj52EOIEU0RAv1PXc9SZa
      gRCgpn0YXWyTd4b/7MD7TGIK8imygpnQ4KjRtykjYm5TL46DBA7W9zPN9yd+Un8U/RpSndLELCza
      iGxMYcSRx8QQg/JBncFlyWoYic5GUG3U9VGOeRwSnBRFDwkVE2cY9KNZ6jNNBAeHM4ghtm1qNG+x
      yNZ2nhb8PNEprRkkBDi0RQaygW5qA4unoL8pT6C+OklvEYbiID6UPoi2wE6aUm8Pbf49TfCbTkQq
      rppEq3wP+xJ1LKMkHV0X+FA1KZcxz+/5kWDpWqycANLZlsFcE4uNIeThw0cuhkv8Fhun980QcK2Y
      0hQwNSpkI7eeh56OJlBmsKGlstMQE8KL/4R5jXRicrhxNd1t5q+0Lr+mP8g+DcNAMSlTzpX4OSTL
      86KptGuG8PKO/8pvsEfa/Bobc51DYzqhIpJiABXn0YuvVdXBsVvTGRvQ9k66mbDhrAxrCBvjgP4t
      shLAqZtsiekpc/1ogr7pmZBTqJ+r94oIiiEk9n8ions3UN49TWNz4lNVEFekLpjgu8YiOitANU4U
      7rBYb47O7ejEAq3HTdmhasgaJO3JVYg27f/8Ddxpq7zNBLFnzJizGhjuv0hSET7QBfFt+fF9OVHy
      C2PGM6dOGdcvXaYETOH4NCo6slrYzO55rpW7tlj/XIV1Cvn0hvE7mxL5yGLu0bp8o+6f2+5q4RnY
      U0G9tA==
      <EndPycryptoMessage>


Public key for 3072-bit challenge:
<StartPycryptoKey>
KEsASwBUtAMAAChVA1JTQXEAKEw1TApMNDQ0NTM0MjY3NzU2MzI4NjAwNTI3NzEwMjk4ODkyNjMz
OTQ4NzExMzQyNzg2MTg3ODgwNjkzNzI5NjUyNzQxMjA0OTYzNjI2OTAzNTIxMDkyODA4NzY4NzM4
NzA3Njk5NjM3MTU2Mjc5NzcwNDMwMDI5NDI2NDM1NTY0MzgyMTU5MDE5NDQ1ODI2OTA1MDU0OTMy
NTI4MjYxMTIyMTk3MzM5NTEyMTY4NzQxOTUzNTc1NDMzNjMzOTY0Nzg4MjQ0MzM5MDAzODczNTE3
OTI0MjExOTY4NTUwODQwNTU5ODk3NTM2MTUzMTg5Mjc5OTE3Njk4NzM1MzkwMTA3OTUwODU4NTYx
MTMyNTk5MTIxMTI3MjYxMjkzNzg0NDQ3OTkwNzEyNDk3MTc4MDA4MzcxMjc0MDg5NDM0NzI3MTI1
NDI2ODM2NDMyNTI0NTQ3MzkxNTQ0Nzg3Njg4NjQ3MDUxNzY2MjU4NjkyMTY4ODc3MTIyOTEwODIw
MDY0ODEyNjUyNTY2Mjk4MzY5MjQ5ODA3Mzk5MjY0Njg5NTIwOTYwOTgwNzE5NTk5OTQwMDg2Mzg0
OTQzODQ1NzA0MzU4MDgwOTY4NDkzMDcwMDI4Njk1MTM5MTk3NjM5NjY0NTY0NjkzNzEyNjk2OTg5
NDgzMzY4MTA4MTY5ODYzNTU1MjU1MTA4MTk5NDgyMzQxOTYxOTA2OTAzMzYyMDM4MzgzMTA3ODkw
NTQ2ODQyNjY0OTUwNzE1MDMyMjMxNDQ4MzY1OTIyMTQ5MTEwOTE3Nzk4NDE4NDU5MjEwMzk3Mjkw
MDQ4NTkwNjE3ODYzNjg4MzcxOTY4MTk1NTUzMDAxMzE3OTIyMTg0MDM4NjcwNjA3MDM3OTE2MDUx
MDQwMTUwMDU0ODA4NjgxMzM2NTU2MDkxMTc3OTEwMzMwOTUyNjM4NzIxNzEyNDI2OTQ3OTExMDIy
MzU4OTg0OTI4MDYzMTM2MjM2Nzc0NzkzNjk0NDQ0OTU5NTE4NjA0NjgyNjc3NzgzMjgyOTMyMzIy
MDY2MDYwOTU4Njc0MjY3MDU3MDI0MDA1OTU0MTczMDkxMTE2NTE3Nzc4MTI2MDkyMDE3NDk0MDM4
OTU2NDI3ODc5NzM3NjI2NjE0NDY5NTQ2MDcyMjEyMzUxNDQ5MzM0OTYyMTY4MzE3MDczMTIwODMz
NDM3MTAzNDgyNDI0NDE1NzkxOTI3OTYyMjg0MzcxMTczMDY0N0wKdHEBdHECLnEAdHEBLg==
<EndPycryptoKey>

Challenge 4 - 4096-bit Key

Status: Not Cracked

Using the public key below:
  1. Forge a signature for the following string of text (note that this string is all one line, and does not contain any newlines:
    • Now is the time for all good men to come to the aid of their party.

  2. Decrypt the following ASCII-armoured ciphertext into plaintext:
    • <StartPycryptoMessage>
      6AQoVQNSU0FxAChMNUwKTDc2MTM4NjE4NzA4Nzk2Nzk2MDc2ODQxNjQ3NjUwMjk5ODg3NzE3MzE4
      MDg1NDc1NzgxMTc5Njk0NTcyNTM1OTQzMDgxMzIzMDkxOTA4MTY5NzU3MTA4Nzk5MDk4ODE0NjM3
      NDkyNzg2NzM1NjMwNzIwNDk1NjQ5OTg1ODY1NTA5NDU2OTAyNDQyMTUzMDQ2ODUyMDE5OTU4MTEy
      MDA5OTM2MDg0MzQ3Mjg3NTU5ODY5MDIwNjUxMDY0MzQzOTIzNTY1NTAwOTA4MDUzODcxMjMxNDY3
      MzI3NDc5NzA5NDcyMTI4MjU0ODcxODg4NTk2NDk1NDUzNTc3MDE0NTcyODQ0NjI0Mjk0Nzk4OTkw
      Mjg5NzQ3NDExNjAwNjQwMjU0NjY1OTA0MzQ5MjI5ODYyMjgwOTQ4MTU4MDYzMjY3NzkxNjcxMTU2
      OTMzNDUyNDUxOTMzMzQ3OTY3MTQyOTQ4NDYyODc0MTU2NjY5MDcwODIzMTExOTAyOTIxODQ4ODg4
      ODU5MTI2MDA1NzUwMzc4MzE0NTI2MTUxODQ0MTEzNzE2Njc0NDM3NDIxMjM2NTk5NTgzNTc0NDcw
      NDYyNzE0Njc1MDY3NjE5NTEwOTY1MDQ0NzE3OTcxODgwOTgwMDgxNjExNjY2OTI4Nzg1MTAxNDMz
      NzA4NDYyNjExNjMyNjIzNTQ1NDg3NzI3MTU5NDIxMDA0NDM3NzM0NDg4MjIxNzIxMjk0NzMyNDI0
      MjAyNDMyMDQ0OTY1MzQ4NTcyMjM4NzE0OTc1MTQ4MjgzMzc3MDUyNTk0NzYyMzA0NzgzMDgyNzgw
      OTc4NzEyODc2ODc1NjAxMzMwNTg3ODY1NzQ5NDMwNDk0NDU0MjkxODkyMzkwMDA1MTI5MjU3MTM2
      MDYzMDY3NTE5NzkzODMzMzE1MzY1NjAzNjAzMjI2Mjg0MjMzMTQ3MjgzMTI0Mzg1MDE0NDEzMjUx
      MjI4MDcxODgwNjU4OTMxMTUzMTk0NjQ4NDYxOTc1NTc0NzUzMzc3OTMyNDIyMDA0NDkzMzk4MDA1
      NTAyNjUzMDM1NjUyMjcwOTA1NDExNjY5MDQ5NzE1NDM5MjY0MzAyNzM1NjI1NTgwNjMwNjA0OTI4
      NTE3OTE5NTkwOTE0OTA0MzQzOTg4NDE0ODc4NTcxNzg5MTc5OTg2Njk0MTc2ODU5MTg4MDI2MDg0
      ODgyOTA4NTIwOTAwMTU4NDc4MTQ1MzYwNDc0ODA0MTgzNTU0NTcxMzI1NDg0MDI4NzU4MTA5ODQw
      MDUwMzQ1NTkwNzQ4NDgwMjk1NzM5NjY2NzgzMTU1ODI5MjQzMDM2MTc2NTQ5ODAyODQzMzExODgy
      Nzg0MTM1NTI1NzE1Mjk3OTMyNDE4MzU4NjE4NTY5MDM4MjM1MDc0Nzg1NzY2ODQ4MzAyNTAyNjUx
      MzEwNjA3OTExNjU5ODcwNzIwMDc4MzE5NzM1OTIyMzg3NzUwMTM3MDY1NDQ2Mzg5NDk1NjIxNTc5
      NjM1NjQyNjcxNjMyMTE5NTkzNTU1MjM2NDg5MDgwMTYzMTQ2MTMzNzk4NjM0MTk3NjA2MDgzMDM2
      MTI1OTM0OTM5MTA5MjI2NjY2MjM3ODI4NjM2MjIxODQ1ODgyNzUxMTQxOTcxNDUwOTY0MUwKdHEB
      dHECLgMAACAIAAKKvUtks1RRJxw/EyYlt+LqVcWINA3S9p0yxpjBWXhJ8mSsLG/J0ujODaLcTtvB
      RPE+KrGq1t85GABOgyuNMPQzRZom9seU4jEaqsuTLpQzghz7Q7HYdsOGzKH8O2koZOoZOLRHsgIU
      hhbuROTcm3c77gJ2/5PkSvIj/Slkrvq7j4+/yMWh7Jlssqma6x7zS94oMBoD8pRhvVeS2kGbKsX5
      Xx4ugxWdIiU3A7Qw4MrwhRSLCAIgW5bOgFXDV8zDDJ8aGypk8LJZJHei9QSM90Na3tbQP0d0TQT6
      Y3F9BWujl9VSrpRQGBSl+shxMOk+E741pYY8kTJnkJTRf7u7twIF/bZBtXiha1U+dNSwKlguiu1+
      5aWxvAe+d3V073iJoEDkyeX0dcOpAlH4xcEf7Ul/pZKCmY/07swtrV2TielU1kv3h3bCmi5Y9MVG
      b8HfLWdTiEQA+pF+B5MNB8+GLHEIrp9vRY40RrFb7l+EVKYzSXpR333+bj8yFwGh/qNGbKrrnSJX
      Eiym8QqzZijBtj0M6i+bUmMGFrB1mXOKVAKMG+nOLqmzeoq+cQ1yzUD0yN5jB6XShL8Uad7TfMFv
      IAlMyK21h8HuqbO8DyrU02hxhsX33IsAKINC2hIlPQxHisosJ/7AGdp71Pw/Kc+fAT+nRyml/71G
      nKC17EVX30oyQwACte1VZhtTWFlFDDYAfz55Eo4oUFqUnxgVBOeYEut/BcfTJbGFyWCc3oxnBJpT
      mUUl5Zx6LTJUoby/J2MfWHQI9e5mY9pnMWQi6bFRaaPYZQHQ2p31QABoNNzMH+ciCYgAji9CWlez
      wcrklRkfnKibQAjNj0mXsEDRYoAude0BQsigewwiBR9YmX//W12zNm8/q4e0sDM/AHgFclt+2Dtj
      XvFfRlSYWesXg7nGE2xk1xtmldyrSup8goCJYZRu1zEmYUZS0Z1xEYlC30vNUVoW8Gr9PSNuSjfo
      CtP3kQhlV06P1izOy1nUGggqRMYKkm4UGQpz5GU2g/db96mCZgrlxOMbYYIRUB8u9sP4bYEwu/Gy
      +ZppOWnljjU8tv3TI1ORloLCGYDOY+yffRKIVmHoJmp56M6Hcyuw7Echr2DLpJGjkj0syUt6vEP7
      JYsVMy4v7Tz4DYiapLYJmjUY8aIuU0yCJVim4fvrwTQ/WkzmQ6+jHY1cRArAjEem+jznPx4axJy8
      rNRBZ8x3YeODUilMgbmhatD/KiAath+e9s2xAcU/ocjDBnHdvX8UJ+kLvLyYJVfYNxd5yI/dGlgL
      WXEAvXIiPo9WLs1McjMsbZcC+demt86Y7d5W0Semdvb11/C0/bUtjusxaecfjDQZmODRwbhv7G+z
      htQ9E9lKil8q0UhXUgFz0uIolxbpeVQnK7dB7MyehBxGIAbqOqsNno1dorsTHv6cqnauF73+4LPc
      53Pa7/3ta9tG1/SBOU7LTNORhBbYPrcvlf2qL7HdqjsJxf0k/Cvzeq6uU0hjbGMPt1UdBR55HkZX
      2eX2oE+CgCdOvYg+uUgSA6+BrBkMcsIZusX1PPfW2ZyAt7V7qXtv85TGLF62+U+zznh3PFilDbO+
      OBPspQJT2JqVs/2h+gg3PIsSaqs+Bd4Mr/zRMg3J6CzgBHGUywqgTPei/qsDhphi3+p7ZB8CohcC
      ++Il5wBOBpK+ADbEzysHwtB9smbK6jD0RCXmtKwhdPrSW/RlPbGtIt0cCKc4mg88Ca/HVnM0Wg7U
      33fIAxsh6itKX8br4kr3hYt2bnJy1abJn0kgoLDFCTnwaMQEf+hfVDWS0KN6CxX23WwT+QdHR3LB
      ttgn3B/UOq9OrRLHvkUy4qDKOg8woOJQFGk8QPpHjhcmH+nOdEDtMeg4xe2bwR5XLTRkN/HrKOaD
      xm3V9TKL/ucdWZ9xxHIoORAuf/L71najAB3B+K66MfcFsUQJNaW8JHxC2AjyzqjXS/6KoUHXkaTY
      MHcivZozO/fyLrQLwhGl5bNXeYdiN/uAOd6kQ3Y6mIHWKFFwxaB7s6LnsNUcaLflHRu+GmJVwNTc
      VT75UDg4DwvUZHSg0sY6q7vAdJq9BKAWQ6OmNl3Ztmc6y1m9qb+6KxyIpspzyDhoMQYYJ6JqnbqY
      DANHsm5HDSuO0lbVhAsSbmkNagIYtS/eWEDWW8OMZWpimbYnMI4LYWwRqkz3VLaVWXe60re3ruj4
      Gt/dJnzXJKmRWq93XGIVgnjzKdYMKO1DkPaF7JQatoikvRd5dYnbIcORhmnKz+E=
      <EndPycryptoMessage>


Public key for 4096-bit challenge:
<StartPycryptoKey>
KEsASwBU6AQAAChVA1JTQXEAKEw1TApMNzYxMzg2MTg3MDg3OTY3OTYwNzY4NDE2NDc2NTAyOTk4
ODc3MTczMTgwODU0NzU3ODExNzk2OTQ1NzI1MzU5NDMwODEzMjMwOTE5MDgxNjk3NTcxMDg3OTkw
OTg4MTQ2Mzc0OTI3ODY3MzU2MzA3MjA0OTU2NDk5ODU4NjU1MDk0NTY5MDI0NDIxNTMwNDY4NTIw
MTk5NTgxMTIwMDk5MzYwODQzNDcyODc1NTk4NjkwMjA2NTEwNjQzNDM5MjM1NjU1MDA5MDgwNTM4
NzEyMzE0NjczMjc0Nzk3MDk0NzIxMjgyNTQ4NzE4ODg1OTY0OTU0NTM1NzcwMTQ1NzI4NDQ2MjQy
OTQ3OTg5OTAyODk3NDc0MTE2MDA2NDAyNTQ2NjU5MDQzNDkyMjk4NjIyODA5NDgxNTgwNjMyNjc3
OTE2NzExNTY5MzM0NTI0NTE5MzMzNDc5NjcxNDI5NDg0NjI4NzQxNTY2NjkwNzA4MjMxMTE5MDI5
MjE4NDg4ODg4NTkxMjYwMDU3NTAzNzgzMTQ1MjYxNTE4NDQxMTM3MTY2NzQ0Mzc0MjEyMzY1OTk1
ODM1NzQ0NzA0NjI3MTQ2NzUwNjc2MTk1MTA5NjUwNDQ3MTc5NzE4ODA5ODAwODE2MTE2NjY5Mjg3
ODUxMDE0MzM3MDg0NjI2MTE2MzI2MjM1NDU0ODc3MjcxNTk0MjEwMDQ0Mzc3MzQ0ODgyMjE3MjEy
OTQ3MzI0MjQyMDI0MzIwNDQ5NjUzNDg1NzIyMzg3MTQ5NzUxNDgyODMzNzcwNTI1OTQ3NjIzMDQ3
ODMwODI3ODA5Nzg3MTI4NzY4NzU2MDEzMzA1ODc4NjU3NDk0MzA0OTQ0NTQyOTE4OTIzOTAwMDUx
MjkyNTcxMzYwNjMwNjc1MTk3OTM4MzMzMTUzNjU2MDM2MDMyMjYyODQyMzMxNDcyODMxMjQzODUw
MTQ0MTMyNTEyMjgwNzE4ODA2NTg5MzExNTMxOTQ2NDg0NjE5NzU1NzQ3NTMzNzc5MzI0MjIwMDQ0
OTMzOTgwMDU1MDI2NTMwMzU2NTIyNzA5MDU0MTE2NjkwNDk3MTU0MzkyNjQzMDI3MzU2MjU1ODA2
MzA2MDQ5Mjg1MTc5MTk1OTA5MTQ5MDQzNDM5ODg0MTQ4Nzg1NzE3ODkxNzk5ODY2OTQxNzY4NTkx
ODgwMjYwODQ4ODI5MDg1MjA5MDAxNTg0NzgxNDUzNjA0NzQ4MDQxODM1NTQ1NzEzMjU0ODQwMjg3
NTgxMDk4NDAwNTAzNDU1OTA3NDg0ODAyOTU3Mzk2NjY3ODMxNTU4MjkyNDMwMzYxNzY1NDk4MDI4
NDMzMTE4ODI3ODQxMzU1MjU3MTUyOTc5MzI0MTgzNTg2MTg1NjkwMzgyMzUwNzQ3ODU3NjY4NDgz
MDI1MDI2NTEzMTA2MDc5MTE2NTk4NzA3MjAwNzgzMTk3MzU5MjIzODc3NTAxMzcwNjU0NDYzODk0
OTU2MjE1Nzk2MzU2NDI2NzE2MzIxMTk1OTM1NTUyMzY0ODkwODAxNjMxNDYxMzM3OTg2MzQxOTc2
MDYwODMwMzYxMjU5MzQ5MzkxMDkyMjY2NjYyMzc4Mjg2MzYyMjE4NDU4ODI3NTExNDE5NzE0NTA5
NjQxTAp0cQF0cQIucQB0cQEu
<EndPycryptoKey>