Giter VIP home page Giter VIP logo

dph's Introduction

Diffie-(Pohlig)-Hellman (DPH)

Description

DPH is a utility to create and exploit Nobody-But-Us (NOBUS) backdoors in the Diffie-Hellman (DH) protocol. It works by generating DH parameters, which are specially crafted to produce indistinguishable encryptions against anyone without intricate knowledge as to how the parameters were chosen. For an in-depth explanation on how this works, read this white paper from 2016 by NCC Group.

Requirements

  • Python 3
  • gmpy2

Usage

Generate the special DH parameters.

$ python -m dph gen --bits 2048 --smoothness 32
p = 0xe4be3b6ca10c2c2704873bf7bda4c43665ff18a2a1db564491f0d8b83290832d5801b9b8fcbc9e5167d9c3ffe91325cc2474fbdf57d995eefcf61e09de0311eab860bd80ca2d4af67bb28f02a04de296d53d93b70c9ff9775dfe0d851bccf977a5fce6f2ba45e808ef076465a6304371ed891666346adb86fb45470d7a33c23b

p_factors = [
    0x2,
    0x4c464d,
    0x67e97d,
    0x81761d71,
    0x8394d5af,
    0x8444ef87,
    0x9109aa23,
    0x918afb05,
    0x920c39cb,
    0x94afe72f,
    0x9c355535,
    0x9da3a72d,
    0xa6a401e1,
    0xb052eb91,
    0xb41eef75,
    0xb5408cf1,
    0xb83a3093,
    0xb936b3ff,
    0xbbb1db63,
    0xbbcca7f5,
    0xbdc25583,
    0xc4986df1,
    0xcda4941f,
    0xd1bebe31,
    0xde167645,
    0xde63af2d,
    0xde8c7cfd,
    0xe26535ab,
    0xe3976bad,
    0xf5d7e43f,
    0xf64d5f9f,
    0xf7d31527,
    0xf9f811e5,
    0xfe2c46d5,
]

q = 0xa75d4bacf8ee1739ce297e646880f6363bfef380b80bd69215204e2df56484d402b948665307096ddf76f76a6f6e503800ed21aef33652f76ee9d366527b10acbac19f64cade3a6f9d282855dee5626931c111887965e320ca9d760c45406f70b55e2a003327fd42fbb1699f0a55edea72e8610eff2a2a348080a39a1409914b

q_factors = [
    0x2,
    0x204043,
    0x234e27,
    0x804132fb,
    0x80d9634d,
    0x88853d11,
    0x8c48fc1b,
    0x8fc98e7d,
    0x8fd266cb,
    0x98426b7b,
    0x9c300553,
    0x9da8c5d7,
    0xa4be91c3,
    0xc0b29a99,
    0xcae3cae1,
    0xd07d9d27,
    0xd1cbcdd7,
    0xd53fe49d,
    0xd67f4a5d,
    0xd9274cd7,
    0xdbc400a9,
    0xdeba8267,
    0xe1a564a3,
    0xe36c6413,
    0xe62b9b29,
    0xe8d00d49,
    0xe8dc3f47,
    0xf1215139,
    0xf4fcc1bd,
    0xf627ba0d,
    0xfab516dd,
    0xfd17080f,
    0xffb27909,
    0xffb76373,
]

n = 0x958b757dbd2b39917c279ec122679535d5facdbae9cfa8f220c458ce2f5cfb5ef42d32928b5ef2470545d5667de43eb38675e7430810e826411b7de861035a693306e74f41bd325fdd535ad32387c71665641dac3af98b92f21f097dea14d5c5f0c5fbc2fe4a0e050102c775bd4ddec8198abea731a80fe7c8ddca8e19a92c97439403bb2a1c3cf4597c4a4460435382ae4c450702e92a73b9abc662a10c5d1b6b6efe6852f4579066d242331286285e052609ee8d684a7d3e8f95b0dc9e64869f8cec6c6f2f9b7b5510714a523b7f7fcf150a4545826ec1975a55512a67cdb4fc4e7f69556f5b98e7fff3d7392873b0e94825de9fd673bf7cde32a68e405249

# p (1024 bits)
# q (1024 bits)
# n (2048 bits)

Embed the semi-prime modulus, n, into the implementation of the Diffie-Hellman protocol that you would like to backdoor. For an example of how this could be done, see the NCC Group white paper.

Then, given a congruence pair, g^x ≡ h (mod n), with known generator, g, and congruence value, h...

E.g.

g = 3
h = 0x133f2c19bf9e24526330294e783c229ebc4ca57dd6bd398e85741b4cfd14681617d668441f4304e45b4e50e705f8568008447cbf729f82100eba0883127ffd66a6faf4647a4ef4196bd347e2e8ce079c35ec18ad7a119a8291729c4e5620d53aacf11bfae9de7ada4cf19d11bdeb4b198d9f4f2558f67b58a4370f6778ad626f5caba53b1f906a13a401369f55b093c2c50def80705fe61608841b60342a6138c49bf8433deaeed40b998835235f12b76f044da0f4d580cade1c10aff9bab7b89d1637cbe86398a5dda4b7775759e8102a56afbf55ed28ab66e24b97f01769ff35850810415da6a47b5b241d0c756743abdec15a832c62daf4769fc686977c42

...exploit the backdoor (i.e. solve for x).

$ python -m dph exp \
    0x2,0x4c464d,0x67e97d,0x81761d71,0x8394d5af,0x8444ef87,0x9109aa23,0x918afb05,0x920c39cb,0x94afe72f,0x9c355535,0x9da3a72d,0xa6a401e1,0xb052eb91,0xb41eef75,0xb5408cf1,0xb83a3093,0xb936b3ff,0xbbb1db63,0xbbcca7f5,0xbdc25583,0xc4986df1,0xcda4941f,0xd1bebe31,0xde167645,0xde63af2d,0xde8c7cfd,0xe26535ab,0xe3976bad,0xf5d7e43f,0xf64d5f9f,0xf7d31527,0xf9f811e5,0xfe2c46d5 \ # <p-factors>
    0x2,0x204043,0x234e27,0x804132fb,0x80d9634d,0x88853d11,0x8c48fc1b,0x8fc98e7d,0x8fd266cb,0x98426b7b,0x9c300553,0x9da8c5d7,0xa4be91c3,0xc0b29a99,0xcae3cae1,0xd07d9d27,0xd1cbcdd7,0xd53fe49d,0xd67f4a5d,0xd9274cd7,0xdbc400a9,0xdeba8267,0xe1a564a3,0xe36c6413,0xe62b9b29,0xe8d00d49,0xe8dc3f47,0xf1215139,0xf4fcc1bd,0xf627ba0d,0xfab516dd,0xfd17080f,0xffb27909,0xffb76373   # <q-factors>
    3 \ # <g>
    0x133f2c19bf9e24526330294e783c229ebc4ca57dd6bd398e85741b4cfd14681617d668441f4304e45b4e50e705f8568008447cbf729f82100eba0883127ffd66a6faf4647a4ef4196bd347e2e8ce079c35ec18ad7a119a8291729c4e5620d53aacf11bfae9de7ada4cf19d11bdeb4b198d9f4f2558f67b58a4370f6778ad626f5caba53b1f906a13a401369f55b093c2c50def80705fe61608841b60342a6138c49bf8433deaeed40b998835235f12b76f044da0f4d580cade1c10aff9bab7b89d1637cbe86398a5dda4b7775759e8102a56afbf55ed28ab66e24b97f01769ff35850810415da6a47b5b241d0c756743abdec15a832c62daf4769fc686977c42 \ # <h>
p = 0xe4be3b6ca10c2c2704873bf7bda4c43665ff18a2a1db564491f0d8b83290832d5801b9b8fcbc9e5167d9c3ffe91325cc2474fbdf57d995eefcf61e09de0311eab860bd80ca2d4af67bb28f02a04de296d53d93b70c9ff9775dfe0d851bccf977a5fce6f2ba45e808ef076465a6304371ed891666346adb86fb45470d7a33c23b
q = 0xa75d4bacf8ee1739ce297e646880f6363bfef380b80bd69215204e2df56484d402b948665307096ddf76f76a6f6e503800ed21aef33652f76ee9d366527b10acbac19f64cade3a6f9d282855dee5626931c111887965e320ca9d760c45406f70b55e2a003327fd42fbb1699f0a55edea72e8610eff2a2a348080a39a1409914b

Compute the discrete logarithm modulo `p`
-----------------------------------------
Solving discrete logarithm  1/33...
x = 0x5a2ee1c749c8db2044ea05bd117d91ddab3a0e904eabbe8aad44cada4aebfa753d2f64e8129aa1379f40c8716356176733d7d6b2c645480dddf6951d248575a2eb25107a6cce99f96b8251b29d9e9173d11e9839627772f716dc0a5a24744a1a9dc813adac3523ac2f84320c99ea5fe2d1b6c73da3f8ca563975c284215b7e98
Solving discrete logarithm  2/33...
x = 0x4ff7568c6cd5f53091e185c34a44e98bfa624f395ad32980c7164a8fa2916ec7a86333bfcafc0b7fe2664318faa42784e842e10fafb60759d1359f733983c42e1a5d368c6488fb96d4d46d2967d7311390ee2c9f8c0a73f212988551d3d90ad563d2d79ef0df3db2929949b0b1086a2e6b2dfbd028fc70d194bde2e3bbf7f969
Solving discrete logarithm  3/33...
x = 0x27e3fc954dc13e799bdd11ee8ead4c096948bad75c5a893b0a6b16afe0d8aa90866c492d2c73a4888afbb6007c46e5cfc3a35d741b74c440e5681437e70cae473cb936bc66c2cf0230e493b1a81f23d13745ae9d028ed4193dd1333c394ebeee8f3e7c98f78519ad60de8f7f128cae83cfff4d158023d7855dcd255e21b84989
Solving discrete logarithm  4/33...
x = 0x1d2cd06f87a36790b1c578759711f1f22e4bae0d45c6ce921c74c9ad9155882fa8b2bc06163e3833468bacb154bcb38af8bb058559c695cc1a487028940342cf4b528b506347c2ffbbd71774ab91eb33bd8ea7344659727f9b3395e274f27ca74310a02496830ca86feb95bd5abdc1d10444c9fecf5f1739595184118d9b133f
Solving discrete logarithm  5/33...
x = 0x5387d5b3bd0231501382e80c870a86bcc3f9d2d624a590477df992c8748c8f1d903c7d29318e82d25dfe2113fd98387121a03d68e2875065abb8ef2107cf8540ba413fe30918edb0f5a428d834c1a10ef0a0e553e376f0f3cb0a59565a322dddbde691a92c165833e17f319ef8abe6f68f9ed09e59866384505ae0a6a850b67f
Solving discrete logarithm  6/33...
x = 0x1ea1845b06c3fba36251bc2e361125b9372838a9131297484e36c6f94d5a757d792865e381dbc69b0e052801066935ff45dc5262570db0fb52daeb08670bbe5a84a465a5f9bb9ddf75fbbb5cffbb329f191c27b836b8d12a8688d44b06ee9147c62bf5727217cd0b7db0bc68eee8815fd54fe5b86a58bbe05a1fcdc1e28e862c
Solving discrete logarithm  7/33...
x = 0x64d074e3087d161fa02155ca62ec3592f2e99a56ff210c33cc6d49f17c3a096a8d2796471f07d5d0e7916c9b1cfd0a3942645ffa9442a803df38ef04031d5795c63f5f3c307b70e09c2860064500b7f5729056b4c44734422c072bf37c539a3d8212e70b35281f27c8e51f7086f04443d23072012f5e0d92499dd34f5fa5903f
Solving discrete logarithm  8/33...
x = 0x1cf6deec6f8908675542ae5174861dda18a517bc8f702ec40d29535a4dd061a4c29613d7dcaf9fbacca7ecc8f168fc3f3b759ae8cb1fbe0c5279c24cc2721cdda053f5681a06b520d1a7f6f131b169b46735b8a7c7ff94973ab642a60a54b9b238355966179c7d045b270a44e58cc58b13e07dd73edb47fa01ec9e010670004a
Solving discrete logarithm  9/33...
x = 0x32cc36d98f2a93d06c96a8ec3a97332f1a7139f316c45631b78ddcbdd6948aaf160e49943f5137c703938720451c1cf1587bbec04a7757d9c55b11abfdca27b188c8ffe087c0182646d48ddd48446582cd3f44f81845d863fbd5c569a0439a8a395ac8c3671c7737000d9a87e6364c35289b1e52e6e252f6a255a3e16d9d24ed
Solving discrete logarithm 10/33...
x = 0x70ba76a6d25948d2f4769e2ddcf977938bc3accd9a8cad2b74afdd3737298d6653a6df51d606f44bbc09a49ddd7f7997f1ad88b78b4be48444094261593308ef14e4f40f7b10db2e3fde9082a283ddbf1370646c5622a4c89f987ab419b8b2f631a2e9232c1ed5eebf102c91c23589e9f7ce1ee7ced48779468f37f81f265147
Solving discrete logarithm 11/33...
x = 0x12269737ed8897576684f04ed2314d52c61fa121b437585b60f819c2d4c3763716a98fb9bb75f4822988c82329a4cf7e3a439c85343d8ce004d89840fc9077cf9343aa08d4cd01a4cfbb2cc469133e1a7db75afc2333a51075e4a371ca876a2fe75be5863490189a89c083e3ffcd2636acccd9cb706208ad9af56e657e14c6f1
Solving discrete logarithm 12/33...
x = 0x6fff8d9982b7a314d3fa814ae271ca94583559ce987fe66e1c30078f2400bee6a0781c64e6a8fb6f69409181f0259aca9c1f6a243364e1062714b1612fe72b3402c844ab508199ec07c0e27fb54b90d6fb7c675bda2713b77bfc11bf7bab699835b4e882bc9e6074a5658231901d1cdc40489c488d796f5da1fddaaca1c33653
Solving discrete logarithm 13/33...
x = 0x4ce605a6f942a4f26a61e6a3db45c1acefa441e244608b985bd26e6748146a40338de35b9359b804f753bd7071bb7093020480d561338a68fc51cee20c61b3ffc4e7455cdf4b4bc5e8e1461614bf2d3cc10cfa1034457d11a26e8958d7c4ab4b2b8decb091de7e26eba7f9db9ed23941a1b80f188b0a58478ed03b4c735c89c3
Solving discrete logarithm 14/33...
x = 0x83ab0786ac445811b24b58d82db528a629401feb09b9041ae5d2972dd8d64b697357568686197645883ce53f23922788249d4d91206a7d26d2990940a5b07c756cc686fc1ab308ff72e38eb6f4ef890e5a992827cd7c2e59a3359f2bf8e721a1dda6b27f6b3ef3dab58cd8c094614725c453150cd5de7b6e9d3e648f503ccb6
Solving discrete logarithm 15/33...
x = 0x714f44502eac5981eaad37f1fb4b383c8f85340f9de316ca962b6d32a7288aa9e0b6f8062f0557e8fafb86730c6aebcebea526ee85c2d4fadea0433d3c231fd7be5ecca7ca4658c5a56267e6dec45909d90f62ae65a8fedfa521df6d9eddf95b2bda4b66809f29fc9a5af575bf1a8aeee1fb0f0407fd1f9c267aec9ed07d5478
Solving discrete logarithm 16/33...
x = 0x2ab025100b3eae618f9786c1ab0352fad7f125fda400bc270c06bb5361a466d5fff6406f1148ae3b8015de96ce01d2fc7dc0f8f8ef9bb087079027e1f656af6d53f64269bde8640226bdae35713da59704e29dc89fc4fb04826091e3aad838a1d1a92b19849c0cd397d4411c50867a40004b03e2fbebfd6ab05e2b2193118099
Solving discrete logarithm 17/33...
x = 0x10e2e7167b7423f7952318884e19a72b0e6f6910b63b058a7e351cea5a7029f6ceb94e7daedf264574518b1ce80b3b6676968bbd00ffe7a3424ccf92c8ba7eac84c80b0bcad3ffe8b119587a21394719a767d43743f11687782ff1cafb9b6f3a979c486e46efac56ed3fcdac77a196d9d7df99deb05afc4a8b1cd696ed322201
Solving discrete logarithm 18/33...
x = 0x5409012a4fb54eef63d21393d678e7706443683d0094c6c47098abd66a0a8d9dec4d51394d4a101febe455731dab089541b01e8315cbf3dd5a5683a6e85dd885d71e305e19874df8822406ac3d8372304de0d95e318ab405bb51a80e8d9d1a00f23149652ba1bf9f7b844a0899440ff4ebef621e0b7922d955859cb1086d1c
Solving discrete logarithm 19/33...
x = 0x5f2d18e055b67b0e39c16dd509380af9e871b3714964807740ed19f821726608ece68a06a74074f37605077290958135c6e6e7a304b9c11a1141046406424a5623651606faf28b9f06e4840ad6821ba269d31264f874322eb1ddf1fb339ca4be728a91a22fa0c569cdda1e4102fb0dbb9fee182ae65d857927206ee63c06db0e
Solving discrete logarithm 20/33...
x = 0x416f984b9bdb0e4f01f7651c6d761950d004f0a21749ef56da95ce21e6c747948bb170fca0e848fa8caea1db1d77a930136f5690731f981ebf790d7a2c9fba74258932580219e3e2504da4708a5825e63407e49c8dd668c53ae282afa8eb25d193f033bcde323ccd447caca056bf566a3ca01c86d0cfc5092d092459a4367d9e
Solving discrete logarithm 21/33...
x = 0x5508853b5cfd9a5ef5c78c16fa9486b0969181187adc4bf4d4f38460ff61abd3fff0b78043b51977957951c7708c33872e2248b9ffdaf07e6f68a7008de9ac7a5f2b4de191c460c70edf3cff2e769a3a86417d9f30c9bf00e1764aa386ba1d3dd55e6e2c5bf8f337196bd285270352b03caa4306a7a58e061b6f0b7fca961a0b
Solving discrete logarithm 22/33...
x = 0x3ad2574379a1383620953557d1a0202367d6e6519fadafef542e51d1d93270df8ae5136fc2dc89b3c35d4363cc329bbf269eb839a1245f3b2c2b15507de706821d8eabc021d51db8da89050ca51c9d83f6a678d65049d2e6a4705bc94e115f2e223a8317c1119ab8f6e0cfa877ba75dbf9a0d76ef31e0df133258830d41ee8d2
Solving discrete logarithm 23/33...
x = 0x262ee142a4178e682ffb288afa8712a91a4533374cb5c5e7c0f4914008551b46b279311455c95bfc7ac65377a5be83d5b717e1d0e11282533c4c62e53314a8224d907f1bbc4ed85186c49a4485cde6ae79cf0f6b0e19e0d7c16c352bd6089018a196e251b6e9b940d7b37c5c8d505c7552f04c218a999cfbb2f304ba37a66a6c
Solving discrete logarithm 24/33...
x = 0x3ef96d9f4ec03c4462f87df0a6557d2c4302fe56904f64fc71b1c81c90ba0e397588a2dde4fd7d4c07acb35dd23b8ea17c9b127f034ccdc9990a2546ff7e7e8901371e4532242b84d3f14d067e267ed26871c648a7da935dda97502678e89623f12301806992aa7dfb6012f75b6cf535d2e65264544c4a485e1a494d20352317
Solving discrete logarithm 25/33...
x = 0x6fddca0d07d58d2dd3f35ade1607f51042e97c831996d20de4de36881e93d76b283024d4e1b05a9758e131ca864b9d1167e642d082a55833f50d64183733229a42ecb0a403607dd8ef2f876d35070b57a900782ac586c67dadcfedad4202302c092196a6c23b3c481b004a8eac40344da42be23e8b758e1e9d8b6ed94328ffe8
Solving discrete logarithm 26/33...
x = 0x2185448390f45484a78626dea0706b8e383de0242ad2d0da536c7a31c6ede5c9698ad6a1a59c17c3d1a1d78025bceff55e3aca71c3a855c71e251146d7fb7d01073b5d9cd47556ff097b3bc03019bd313320ad296cea3ffaf82675a24f97c591bfcd868fd09afa530c9b261627bca0d6e9bb8293c3e49a7ea8472779151bea9d
Solving discrete logarithm 27/33...
x = 0x19d5fb7b95a34353329df929938c2d5639618d637942c276151dcdf66849a64685b1aab801b6622a1b3f47895cbe21e18c3daf430f72ef9cb41333a8eea4053c231f2c77a52e9d7a2efc42a15beef0b20967339f19283a1fa988ebf718ac3771255c2a7fae9ae9b7c338789f612f5be3f520de485f05ca873d4f572e428c9823
Solving discrete logarithm 28/33...
x = 0x62919120570a6780ddb6eeb9171049420919cd59124691a4e25f25a50e0a4279d765008b32284976b641893189c724585ad8281e36e0f968465c04525e1da426483a3ec9058673366bc1288288d74b466c889219b29b6a0cbde039fd8965a3229ed6fb8ef3bb7f5f19babc7c1cae86938323799c0026e5dd41e474578e201b8f
Solving discrete logarithm 29/33...
x = 0x28791827aaffb3b75bbc3f2c56fb33464b2d8b96b5fcd7f1452afeaf8d90115968d3423688bf4d3b6661c580dc52b5b90467e2a32f0056fd6b2aebd0ebd4a570a5571e293345c16df08418fe5b70d20adb0cc681ca4531d66cfe9da78acf38639693fcb1c6dc3c802ce8a13c130088d3b4b85dc22795726876702f7895f91d7b
Solving discrete logarithm 30/33...
x = 0x29b4d72a1b9b3172e2082ccadba665b65b848195be6905416f47f5df49b806ef47cc966f56b05d9261c93a60ffb6fb193445027642a057baf6a854abd8aa79bafbefb9396fd11b62e038a5821c2fa91c7e72142f14c87fe6c852ac55a202b8e4ccfb42820663616a43a5c9556e837fd4b339ee13d037fe35f6be90297d22609b
Solving discrete logarithm 31/33...
x = 0x36c055cad0259800c179f84b1c78ac220ca4d3d4debbd5c0c5682189d95591a9cd0a37ff75f4d4625ff164fe25aeca7335abe581da95fe696a453aed908d706e1a350f8edb9d574b37106d89166d77fc1289e8b9ae889f9e8592b18b49622f95c0229055858a77929ccaea361b6e9a5cb8ecbe71507136f95621b69d876eead
Solving discrete logarithm 32/33...
x = 0x61a02446f8347c9cecf00cbeadd839f89ef83c5774c500201fd18873ab1972016e9a0444310e339735b408a31bad2c769d0656a888083a85e7c62aef2ee24c9f3c4216f01bf7bc9fb6266a15a786cab2092654d7d6d5fed8fedb9895acf6d58e1da46a1a6962e8c569a19e531b339ee23b3d67dc54dfd76eb56d06cbdf5d47f4
Solving discrete logarithm 33/33...
x = 0x299ecbdbd1de2852e2156a8ec8fdbdf1cbbf82eaca1f6124cc8d08ef3a18233d66771d6f6447e398482cb0a39c1ba312d4de5b5a43c7ab7abccbf76a542157a6df4008a1378830c9d3dcc9d94c727a3e391ad111e6b5dfc861262929d3d5244ee9ac163a1297d3a0c0bd9bcc5120c993c57ec566bc8eee3e671cd8a2a515a392

Compute the discrete logarithm modulo `q`
-----------------------------------------
Solving discrete logarithm  1/33...
x = 0x123c0889d64665eede1240baf034d044d7e6b682cb58b529b9bc5cbd7fc2710c71717d6bd399873462890e21b3477f242e3f257e7a35b76491f32a2a9854d0b10fc27ee43bc3c40613791194fa5876a44001723553d1cb257db9eb74634b45afda4c69dd9bffcd4afa7c81693fe56010a3ff6f3bd42f0b7c3376ec242c67d6a6
Solving discrete logarithm  2/33...
x = 0x13984a7aae06d896d62f6dfc4ac5f12a7bb6fc5c48585146095fa2d2efe4cbbdddb6310b30961ef2d59d2ef2a656dd21c46d462ab7ad1e1cd7eefc486821b0111199acc3fafa63d08d33a3e28a54c1811cdcc16d24dc20d7252115c676f819d05cd6e7b2698b8633f48641505ff06b6451f9fbeab690385b036e0e760da16235
Solving discrete logarithm  3/33...
x = 0x3d81664507c0e2487db6595ffdda49735fc163711a2112a0a486a9dd4a09e0ec2269716e2f0de1cbed3998d6304237eb503269ecdad6bdec21e807aa4b46b7f63d9243e07788e949e0be236dd8b7402427fad45b6ab5550d49ce5f6eb1a1cad5b9cbbe05f39c22c7b38789c6e26027780deed7b8d10706efb650ef6dc6e0a2bd
Solving discrete logarithm  4/33...
x = 0x1f4f4d3198bebf6981cb7de593abbeea60462cc11ac0ccb26af6951dbf19e39e8617d334ef2212d78dd3c2bfb03e5b2f950fd775d28ef3187c369afc45fa0f33f770cbf4136e1ddb1f5c24a71a30e466f8407df0e47cb8edcc63f4ceaac9eba50918d9813dc93264f06c6b5ea20003a270a8b57e1427f352de0f679a4c6e6a80
Solving discrete logarithm  5/33...
x = 0x3f8e20f601f7457b83fd2c9e50e82b95b664e2d20ffed1917b7529852d44a2e92d6f5d02809f3bfb3d2728bb9f05557f624b3ea344fa1669d22d2f76fb2aa7d2c57cba4eaac24dc391bb73fef3773a1cf9ba7bb5b09f9e3030b9c7f42aa13b01e3ab94df418b13afabaca4a95f4de9ba80fc24dc71dfb43a79491454b977b7c2
Solving discrete logarithm  6/33...
x = 0x124407249afa493eb8d02c5c3b00c1c1f3d914f51ab3e92f65f90cc22d7b51a124d40c9d7cb33888aa580fdbcd4a20ef426521ba29a8aa114aa266ea227a8e4b865f207e17937526812532e7ad8e99f8eb09976464efc30ea7af3b40e70177471bfab5c610b550af2719287911e94e156c86c10fe72b4e868b40d9badf58c3e3
Solving discrete logarithm  7/33...
x = 0x3288108a31c93502a10356cb956c745dc2450f1e986757b125472117eda7802f029d9ee1ecdc7121463ab4dfe1e74b2b0efd65e305fc39e1bb4cc6a915a53f53e2df9e87e09767230d7fdb63ce8228e850a0e30b415849a8a774ed34ce6fde7d4e1b5f2bead2487c10573d674fae2fbc68007eb8051961b9244bcee3260d95b3
Solving discrete logarithm  8/33...
x = 0x4c832051eed5fd2b3b23b8a5aa82ccd8f4fd3dd3fbc3861e6f424abaa57465dec2148377e1a4e42919e85603ff8e59a6850e21f1a0353cf67a65ec4b70f4195b6add2c9f19255766c3bdcb491448d3f050b405f86e148669758d11e7f6d91e59854b8035f1b00e0adfe6f29aada136b1bc65932f6b87434f699920f71da51386
Solving discrete logarithm  9/33...
x = 0x3c7f249403dd06f05ba8572f03a942cef2e4c9f4ead5f3b6194cf74c7ac23770821146d32ff44f0af3d669cd1a6ff65425555f9669376604a5427a6e800f05dc0c2b084aad9a13bb6a1dc8243a4f98b62ffcb9b10eb39e7abc9d6034d062dfd45127de8c89d26a0e4fe0f47b753a2431431c610cc2f8044e9cc9d1da4685209
Solving discrete logarithm 10/33...
x = 0x3cfce03eee54eb0b84aefdd3cff34279a2c0a6a8c1293fff524fa9c636c990d828204e7157522ca32ec9a51defd68fdcc9d4f083831765b5abcbed3688084a55c5f21a0058de2fb614acc9fd77b452b1a9f1edabc56098d1b82b574d4bb98efd214c42e90f436e3a0b61943c3fd61ed68483168cf1f16483571d25bfd48fb8a1
Solving discrete logarithm 11/33...
x = 0x3c768857bb410f082deaa510ca55c5e8b0321a420c45a4b4504bd8f38edcd08332e99ef4dd66e355bf710f47e75508e7b2d6cd43ba5085342f413f894a9492ca68b188bcfa0e97b41f00fbadfb43fe9f683471d07583c86aeb26eee4a5efe3d1f40a7fa565aa0d330f2f7bb6a91d834cedb8036ff5f38b1ec4c5c67482e1b7d5
Solving discrete logarithm 12/33...
x = 0x362bd4c9c9ebd4f416a6ed48efc13cb53a19651714c56d2ef79bb19ade82742a756811f7ac23733147c10cc9051382e1b1ecc267ae80f819c34e4aa3a37ef5e7052ce000668c975490ff1592d117beb48729b9c65ee1cac561a07177ef9c931536f35199684568b826bd721ad2e62d77c0014b6a7f075ad93cf3567a0702e4da
Solving discrete logarithm 13/33...
x = 0x1065cf9a0e26ff32fe541ebbd9f9ffc5400607aecca104ce2fa5246c88ccd8a0e73ad469254436a853d96578d247f403daf88ee3ba592effc67817e64df99fe100cff89dfe98f3188efb692a3a3534456c979ede9d4a34ddeaf31d1b566297de0a2fde037b138256c086bd976372e07fbff3e07bd37a9c32ab1823dd055b6cf6
Solving discrete logarithm 14/33...
x = 0xe9bef18440e7acf0eb7afac20dfd267566e36dcb8451ca5f869f77ac2a58f9c76a557c3cce634eaa35929378f7c0f31f282ba801591b1d5a690754c4cef78250adf4dfb0f607c0f44d61c1b23af0c026fd0239ee7df2b03da2239f8bc514a90062c8ea35bcec9b7163f2337aa60f3aa5993bda34baeb38e0a098878f783ab52
Solving discrete logarithm 15/33...
x = 0x2dac7e21b8637bb45a0789d9db7c92ba96f1344ee18b8f40aa44e0d1a04e779f7a64fff05d581cf8501f2ba953251ccbc7308e510a40d9b51fbdf0f4ccdf8d75159f924cc01e98059a13b3d20d2835a63053ed77e134a30af59bfea2e22ecef8693b6d784e1afd3ba0b6f959c24e767ca7a00041a2272241390635a204e93794
Solving discrete logarithm 16/33...
x = 0x4ce19175590b99425613dfa96a777e97a24641d4c3b7c030362e3f0af863597604d3ee4b398437fcb02fc4ad2d6e432db4a75504ff9572d028f68f2d55441ac968f3caf4a4ca3d1bb60452be2a9d8f21e1996428eda72a83d39491146d8bee8068f57bacc36f86676212862fb3f1e7efeb15a0f3a81653f0dfe1ad2a03d5b08c
Solving discrete logarithm 17/33...
x = 0x33be8d8f787188b0414b0754a228128aadce66316a5e2a1720f02447a21fd7d78b6e4bdae86cdaf4a37d23556a739f76f5d1be4dfb755c02c2fd8d15fa0f818cd6961d5ea78847f35f2354442ad0e13b10f97342c59a8ba22e01fc010b6e81dc45f105f069406390622444493d6e738b3663a49b4025506ee8377b3e502167a5
Solving discrete logarithm 18/33...
x = 0x205b95833f02dbcdbf4b91b8f531612802b80df1cd99b0ce003ffa4f00aff0d1e80c6206c412eceb1d93a5df8de835dd979f6b282d57d392e9eb1f9204325f8b1e2240a694b2b705f4f33154cd020f409c59e677062c4addb94d86107f47569308b62cc0d4ca6af775004597aab9839d8e67c7aac8d51806bf709cb1f1121b14
Solving discrete logarithm 19/33...
x = 0x461773cdbb11c04748a54c058ce1acbca563d3ef68f68aa5e9e88adcfe01b41e5f7847dff7c3654b9a1728a1c2143361e24a7bc023622565a2586a0c3438c3d50681f17fd301f9c013a71dda2cf6fbbbf654f59b1f57bff202eadb995eb4ede6229394366a5580e4d07e76f5b3b846c4e50ad794fb0689febc66b85c15044ea
Solving discrete logarithm 20/33...
x = 0x4609cb417d096420f17bbe5933a8b11cf8b74dc041b7bce1c977684c80504eef6c4f196a3c9a0185ff595073d6d8af723e7aff9e8de96dc67fe3cf6996fd0943329286d0332e5556ad8d6ff48f3cc5265b04bf733205ea02a5edeb698118440fdb55c869287827fed3fac60a023a125ee31c154c59da324f1afb26ac4a1726d0
Solving discrete logarithm 21/33...
x = 0x17f464552697adbe5f9d8becc3ba6c8d30dff0822ced40b04b02620423af4b44366657b579efebeb9c9cd603ac80580126d2145077fab454fd95578d62d06cb64216f3a1a2305bd4ebcb11d4396a2a60babcda58ec61157f13c707781cd1d49782e6e6c22f59325a28a86fb4bb46db662312a292a7df5b3e42893dd4e1663bee
Solving discrete logarithm 22/33...
x = 0x4105155825256da0161b1481af6b462d5a3ae21e48604939d1245803c36e2f258a44a1b91e44329ef20bac7591a4d293bf4d15b67bd3b34c0b95cd982f1b219fd9f53c12f55d61027e6574fc92e9b9eb98263e78769f76b9a57252cb856fa496ffccf166fe24722a232767adf7a096af557cb899e23ad2b17d41c025c4641e6b
Solving discrete logarithm 23/33...
x = 0x517bd2e08cd96cbab44443d2f35e79df87feed252ebace012669f3ab0fc2ba3371914085872a773fdb94f35bc2f5c0b9ab4b6ff7da43fa36c2e77a3efba279a2d4f0849034ff2681ddd2d075b68f1627effe7bbf1388d5b6eec7e5ba0808de4cd8ee2ceb73bd446c1a78579cdd652f15e6f832cb68261a53135d40bef62cc984
Solving discrete logarithm 24/33...
x = 0x16cce6d73833a1ff084ea55b679e64549b68478e61ff74388643fe698221bdbc5b78476927cbf708ae15b4b3c8657478a5e27cb66f4eedaf097aa152b23f720e068ff13cc4cb0a400778c27b15522a9cd410f8f2d57f2cd658c2ffb5d088bb58c956daae00303299000e31ba0068fa292491f383c189e0f8ece097c87d19445e
Solving discrete logarithm 25/33...
x = 0x1e2b5b0074be872a081050deacf1197a09141d45ee353d84c4ab8aadd964cd61734904e40443df2a96cab8b174ce7487599d0f9565361a32489fd6f0b3a9b5cda18f9f5ef8311dd37dd3143d40a60defc2bb54aa6ffcba2a2b24fa0c19d8aeb8f689c52f2cc03023851edda27a824a74311a137d64b808f15db53aa13961119b
Solving discrete logarithm 26/33...
x = 0x333581ac3abb4a5a50d0a6e1f449664de1d5e1e6e6ad0a73b97f14c5df1a6bc4f175fa484a1b78f657099f0a8b53b831bc466a9ed0d493be59ed5df741adc7339c73818eda339ada5be1935159ae735b93650b49740110bedb2624d0aa891829743c029ae94cbc804f253aebabeeeeb9a678a32dabcbd6f567b29cc2d8dfc1ba
Solving discrete logarithm 27/33...
x = 0x72e900ea9acd62a39f35d852e33b2cddb01bd9e2795025179773c941133fca526a6ce56092cd881ad5c0367ea1632a0149f5de9851098712c62818ccfa21a5e3088501ca188e48faecdd012f95fd32cece8de53ea8fedd3eae3be20af7242f52c5521dc6d029cf183b1bcd7a3ba5171f4bc9a67d351090bf999e5eb7979af02
Solving discrete logarithm 28/33...
x = 0x4266d70d260f8db19086f1b190d4e0289eec3796079190841fb8312520658684aa42c106f0da4008ec272baa5d51fcd8943078477dc99d1a8881d8ee8326d86dca744f9fd11d2a5a1eb7e611f4789c6da68459618cd751330e686a08b468225c11ff77da7008a1fc5efb8d5f0f0451638a877d82c617860f0d942ac572ba20b
Solving discrete logarithm 29/33...
x = 0x2931bbb09df03c8518682accb9d5f9e8e6d3b7281e4ffd81fee16d89fc1767e9a2314a79eb4126e7634e2bd459572990abeb79b41cc78a020db1683229fe9bc4c75508787ef22f1b12c649182d11c7565b5f5feed6c68dd72b9378917c1931ccb048c221cd8c0e699f791287bcf8595444f6942e3a85faec151181c7356fb4c7
Solving discrete logarithm 30/33...
x = 0x4fbe7b0fd3198005379d61421a86c52814fe5aaf7335ce34b7a20322ffac4d6fa96edf4beddead15c12543bde6855294a6fb7c19daa150258581b3f0e57a9bfb173b89f8e9d49adf2ab749a70288f6fd4bcdac94da96d2129cdbfc09e9bd10b7f7e6e4d3f115a23707d63a549487f717f0b64ed6b1718e18a3d56c377566f0e0
Solving discrete logarithm 31/33...
x = 0x521a198992161b6591ec56851cb8144d683954df10a3c5f5dbdbf4b88963bb918b8713ed116731fb4dd697cfdc0b941711bbd567afce0953eabc15e0faa1164409f028629a79de417e3794cdbaa10209b011819a93fdf7c881835b7180cbb61c2150d0e059c93138c33bab5525c9d05c1b0c33df17a076481e636c310830e93
Solving discrete logarithm 32/33...
x = 0x430a56ec8b16479c4995b7483b53a052d6ca4d6ba18e15cc069b49451879998f8da2789ae1a3b3417f122f41a28339036e670218f9942a2b3c0435b085a4278c82b072013bf82ce7c0fa747938e500851c9324fd6728846c569ac0e09896db01fc29a6fb3c8dabc899af334a86f8bdd1c0880c06227da505b3a5b121082a29f5
Solving discrete logarithm 33/33...
x = 0x19b6e2796f3ad5e437d0f5ef42e16bed429eb7824e610dafa21475c5b9d71a29d26cac63def9cac7d44ddaf4d536e0f0b4df6f4273d1570548d6511cc318c947d04f1fd10d26eec2ba96918591fc3c8a108d6a7bb174987f4ad6698f76e5bfc75d98f13bd4928ccde66249a34f79c96ed1285b406a0aa67493f5c73221c4d420

x = 0x1ee7

This final value of x is the verifiable solution to our discrete logarithm problem.

Known Bugs

  • This backdoor is not actually NOBUS, since Pollard's p - 1 factorization algorithm could be used to efficiently find the factors, p and q. See the discussion of p_big and q_big in the the white paper for a solution to this issue.

dph's People

Contributors

pwnalone avatar

Stargazers

Emil Müller avatar Fred Clift avatar

Watchers

James Cloos avatar  avatar

Forkers

suhumc3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.