diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/ClosePQ/README.md b/docs/workshop/5-snake-oil-crypto/hands-on-support/ClosePQ/README.md new file mode 100644 index 0000000..2df583c --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/ClosePQ/README.md @@ -0,0 +1,22 @@ +# How close is too close? +- if \(\rm\:|p-q| < n^{1/3},\:\) +- then n can factored in polynomial time using fermat algorithm: + +```python +def fermatfactor(N): + if N <= 0: return [N] + if is_even(N): return [2,N/2] + a = ceil(sqrt(N)) + while not is_square(a^2-N): + a = a + 1 + b = sqrt(a^2-N) + return [a - b,a + b] +``` +# Instructions +This folders contains two public keys: +- `veryclosepq.pem` +- `notsoclosepq.pem` + +Use the provided algorithm to factor n. + +A detailed explanation of this method can be found [on Daniel's Bernstein website](https://facthacks.cr.yp.to/fermat.html), or [John D. Cooks's](https://www.johndcook.com/blog/2018/10/28/fermat-factoring/). diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/ClosePQ/answers/README.md b/docs/workshop/5-snake-oil-crypto/hands-on-support/ClosePQ/answers/README.md new file mode 100644 index 0000000..1904727 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/ClosePQ/answers/README.md @@ -0,0 +1,50 @@ +# What to run to get the answer +## Run +```bash +$sage fermat.sage +``` +This scripts runs the fermat algorithm on a moduli n, after a few second, you obtain: + +```bash +n = 112421669060399956986367421471522274763620630713869928275575801768805742928429125845443925273931224902361917953532406156094313050840872610487333863447808074966477755274534568334940704111115937296330388429409569440785006316555673801318745308608773691570316883074174605863734103561500162053873040254255024422007 +p = 10602908518911212269196394177169313611302648397290858147355211341039858033427866435756684124880003295417095989705061290172988160459431024782951095853727631 +q = 10602908518911212269196394177169313611302648397290858147355211341039858033427866435756684124880003295417095989705061290172988160459431024782951095853727897 +p * q = 112421669060399956986367421471522274763620630713869928275575801768805742928429125845443925273931224902361917953532406156094313050840872610487333863447808074966477755274534568334940704111115937296330388429409569440785006316555673801318745308608773691570316883074174605863734103561500162053873040254255024422007 + +``` + This n corresponds to the `veryclosepq.pem` file. It outputs the two primes +p, and q, that when multiplied equal n. It actually factored n, breaking the +key. + +You can uncomment the second n, and comment the first to compute the modulus +corresponding to `notsoclosepq.pem` The computation will take way longer (25h +on my laptop): + +```shell +p = 22157691135118301489929674559231673892644010748661833901588762699146589433597772776737145770818674169792068962295837261628180455856666583009960744201462119 +q = 22157691135118301489929674559231673892644010748661833901588762699146589611309046815477146817565891659898679783418932444200455480172523644395164206769491779 +p * q = 490963276439300163974358078751564966935647623573945092674153919631095106803113960790445734183657340544356961673814947178422179864580766235512590323915826448266616741533232891220025698071647988317789125525821000237672311769577294966790885260094640627513288213434253048131773244591800441567386069459534350419701 +``` + +# Explanations + +## How did we get the modulo? + +We can use the script: +```bash +./getModulusBase10.sh ../notsoclosepq.pem +``` + +That has the follwing content: +```bash +openssl rsa -in $1 -pubin -modulus -noout | # asks openssl to output the keys' modulus +awk '{print substr($1 ,9)}' | # remove 'Modulus=' +./convert10.sh # pipes the result into convert10.sh +``` +`./convert10.sh` converts anything it gets in input (stdin) into base 10. + +## How close are p and q? +### `veryclosepq.pem` +p - q = 266 +### `notsoclose.pem` +(still computing) diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/ClosePQ/answers/convert10.sh b/docs/workshop/5-snake-oil-crypto/hands-on-support/ClosePQ/answers/convert10.sh new file mode 100755 index 0000000..a70cd8c --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/ClosePQ/answers/convert10.sh @@ -0,0 +1,7 @@ +#!/bin/bash +while read line +do +ruby<B!N\C/;)˙$)+Ol0V+ V;φ1/ +d.)Pc1 %u +(Xr1@J( +JBor`*#~u_f{AޑQrSI5^YpO٬Zww \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/17.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/17.pem new file mode 100644 index 0000000..e790ac4 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/17.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5AsNKFgLT51QMAS12lb0/Svu1 +mEp9PM3A9e3plzefTrTbFFqLNTF//ws/LMQgXSOGnfPKVuE5pr5VlLHwxMRecS9e +uqxMv7reH+C20dVjnyrm0RDSjx6FvDIk49DkGsSetHPPaw+YUU9EikVXGCvxraCj +RoK6jOfSFtoaNxKs9QIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/18.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/18.bin new file mode 100644 index 0000000..31a5426 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/18.bin @@ -0,0 +1,2 @@ + +>c}('~.@0 lUsIhs;Jjڞ,V]_bh$5\ՓMY[hH*Mt. ʙDBiw K%eHLۘF \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/18.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/18.pem new file mode 100644 index 0000000..7c34ffd --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/18.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjfAyZlSGYdu9WFTUpcsGscqcH +ed6XN3+MV5hEKdvofZbf9B/PzUQOxs2/2JedxV/Vlv/jYusQ1UMzEy8qPMeE918G +Xt9HT6yqXdsJekQEGD3C8fHhSHfwQ/SqjmQHrXkpWcFu1rNKKJuqG1NhzQDestkY +YZBkVV0bFfH/XVaLgQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/19.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/19.bin new file mode 100644 index 0000000..e015752 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/19.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/19.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/19.pem new file mode 100644 index 0000000..3e8d15b --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/19.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFuxzmX3pKtREuBFYcRmJOjnlg +jJzcPYfVzS5UrkIlXvfOZKQZ8D03eCv9j7U5tMl8U8FlTiQAOW7bLDGTT5d+WtJw +r4ucWSFtvz+MyRf2nsVOpt1Au3cqzrfbQUnMKwaTLw3jryqTHA0/YW+rHWI5tTAO +xP84kUGgNi8g5+I3aQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/2.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/2.bin new file mode 100644 index 0000000..52bc318 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/2.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/2.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/2.pem new file mode 100644 index 0000000..35a2a9f --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/2.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKwOU+/FX4XxgBQV5NMIi2tdmv +Zp7TrDa9ZNYK79izRzx5Mps9kuepITjMS4MZ3bGr/d5DYGQxYC7Ar3kD6+nWSpNT +8IPZTlpz6qsYk/Xjwyf6FmOpWTG3ZeVDNBZwijL05aKBW9udT4oCRsTPNYTx+Kfc +vl2+xoWkfBuO+bjChwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/20.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/20.bin new file mode 100644 index 0000000..0e758e0 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/20.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/20.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/20.pem new file mode 100644 index 0000000..09d6d9f --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/20.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDa/3Zmrnf850fwqD3OveWxDAfX +vZy3LBVixoe3Hewlvn2AZE3NGjYtAFv7YFAo+HRzdRZp4zU2gdE0nbm13w1fvf7e +zQQhqsRxE3Hr7j8hxON1UHrmP4sSsUzvsUWUM1o9r3ICDA4yQANsFiIW26ytvLUm +Kt6XmgmjAtEnf3owWQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/21.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/21.bin new file mode 100644 index 0000000..46f5250 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/21.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/21.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/21.pem new file mode 100644 index 0000000..8838ba8 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/21.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDXVqra0b1Oq7mdlksxfQhPDsGg +TKmAsch0clqX27rvnGU9GngbbCFskQvkLb81bugUU1yuS+KBT0FyB8BOlcCrtVSX +Lk5WcMj4ki1opOFLnXVTnabaJBTbhjVMyaQ6a7eidNPG6S3wQfVhnlJxxq9ISTdc +eFOM9/DLJRy6ttGYDQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/22.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/22.bin new file mode 100644 index 0000000..c460f5f --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/22.bin @@ -0,0 +1,2 @@ +*HCgLt{E,([ 4nb%WcӮ6ÿی\&}B k{_Lp +14ZAxf-)]mN$cs݃P'=AȤqr \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/22.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/22.pem new file mode 100644 index 0000000..0811aab --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/22.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhVYS4PJP2zZEdvjKGSncINN+g +xWd8aXe6FPWafw1myrE5/LiKPWMh6NWL+zft4QByQefv/HFiARjZwumM+SBB63w4 +hhn0sut2PwamfzjgjCcV6GrcuszvGZSF4RRve68DngdtLzXQn7UmKaVKtr5XZGcU +9G8+rqlsL1AZPkPZOQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/23.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/23.bin new file mode 100644 index 0000000..08db262 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/23.bin @@ -0,0 +1,2 @@ +Cxڰ'e5;%[ہGDs![5!a"J#HEe +E~Gh%:ԣPgae't_9bn.<|Uߐ~&R*ީ ψ2Dn}aJ \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/23.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/23.pem new file mode 100644 index 0000000..d16cfa8 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/23.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4JPOpfTwlK3lAJqdw9NJr/mYB +8BNW3GGB4sIRZLr+k4ato7x62uT/ohLaMb7hBNCFYkHMijinWDGBU34Mnb23QBy5 +pWisDbrBJz/ebsMyXcndbx8fVreFMf6R6PaTTGxpavUYk0RonkJI6efBMuNn8dl8 +Wi+DoMrXAsdx3VSIEQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/24.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/24.bin new file mode 100644 index 0000000..491593b --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/24.bin @@ -0,0 +1,3 @@ +p<4S8zYg=@=AMm(OީS+v9eaQR{qd}dߵ{\ +g:]-i +`Գµkm`?+ \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/24.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/24.pem new file mode 100644 index 0000000..44d9a03 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/24.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSyr0MPS52QsZFKEwwR/o1JP2v +SabMSbuTyDYvVAE4aZkeoaL3NbgeqeYYpiVcXFVWanbVX+YBlazDLIXqJMqUV2Vi +glV8/3go2yt9PkYeYOfXAvV1exAQK7l5ccWUSUTgWNfgjLuy7TPtgEiKXeKro/f0 +rJvo9sGnpjB3IlyrwwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/25.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/25.bin new file mode 100644 index 0000000..6dac6f4 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/25.bin @@ -0,0 +1,2 @@ +CzQZ $55/j +I^:~Or"kGAJhٜc6Р&pn>dIǢ%jBUxS/^ qx֤.k \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/25.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/25.pem new file mode 100644 index 0000000..8fc955c --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/25.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDN3ciK6MjeiCsTH6U7cBc0w1pY +HbAmmBDxmBu+F7TT5AXueg7SxE4OrbL4MDN7Qhoh/6OvKYYsVT1TMblM7wu2NLws +MCW/1u7Zxxj6wz824ZQpcrkFmHkAVFTRlThabSHPrHYnKdaBGcAXVqaEW0I63nOU +r+ORBxc7Ol+mr0NjNQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/26.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/26.bin new file mode 100644 index 0000000..f1de20d --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/26.bin @@ -0,0 +1,2 @@ +BK\'NiBvB +;E7 h &6Tvӣ}%u3 ^UlrxWPce T&ǤpY(<zG{6hb \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/26.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/26.pem new file mode 100644 index 0000000..b3639d5 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/26.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDGbiX8c3a3WdOGXN/bx3kcZhvQ +7vbHdR0s0GbADoxnKdwTX949BebdtFM1wJ+YVgZXYyiTuURZiGd9trjqlB+uMWZj +UbbBFd/Ebgg6ONsf2sOUMj4XAjL2DLnXnOsY0ofOW6pvITNI2Tb3XNODv7JwAvHV +vVLwwD46f2ppxRei2wIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/27.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/27.bin new file mode 100644 index 0000000..e9f6d60 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/27.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/27.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/27.pem new file mode 100644 index 0000000..0695642 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/27.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCu4/nMbJwIwZ/+bCq3WaKPKFwf +GLgt4ZkgVj3JONOvXa/X+LgDToDrJZsjoSZO1tkKLRbiJ7XM56RPeCn97LnIMRzd +4qba04hbGWvYpdCxFN7rebD0s98DQguVy0FXKTlKhmYBNMbn4zcPebSbBrWXhBUO +kHjYM0Bje5ZzavPNmwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/28.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/28.bin new file mode 100644 index 0000000..c83b942 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/28.bin @@ -0,0 +1,2 @@ +>v\v͝76 T*i +_5`U9 HYO@ѯtfXЙ>Kj#Dĥ}ֳUI%n"PE&wgz4%q:MfӄHW \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/28.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/28.pem new file mode 100644 index 0000000..7d99e9a --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/28.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC94FWyGDqaAZWdVIt6cSuKUfJv +882PHIPH2f+hR6KBWu+AxhDnxLpmz6BJm0BxahZO5tmgNZ4akorTW9kU3aVUPSH7 +GxYVZ2ih4TwEXRLtRhCRIr+jtGBfuyD7bjdx6UuUdYc6JLBzZ6F+dnCiS/8TzHTG +RVKrt2FFDKmAWiFNLQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/29.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/29.bin new file mode 100644 index 0000000..789dd8c Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/29.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/29.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/29.pem new file mode 100644 index 0000000..41bd7bc --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/29.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDZcZTDjRHsFV+qehyRkJFK9Boh +mLi/oXvAZwN2esPxTAO8xbQEuVJlHPSJUkjK99K0vNcknHMIyEAVFtKUzryeoMaa +izDEZLiJTicr5fHCMq/oAcFICey1b5jr2Zv23htW31EZNZ6wNSMf7k6DrI34LKKS +KSZ05Ufr9fXO2WienQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/3.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/3.bin new file mode 100644 index 0000000..1964c56 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/3.bin @@ -0,0 +1 @@ +d`=ov_ ]2lB\).BKm17O6[kW%5"T6|ՠE t߬qPr2ܬ͇ @f1'RKaLGwh \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/3.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/3.pem new file mode 100644 index 0000000..8391b78 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/3.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkgwebOPh1vtuE2fr3La14w9UF +gkztqe1jD5RO65ZKvYoR8MStoX6HHDJGP6aSEIoUWJX7KXD2BjO4ywHkm849545q +7COiaov/PaSuz90SNri1wRVnjXam1cE0e22SJpfptTSC3em3DD57viH5n7PVRspk +yUnMIxWZD/9OgAevnwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/30.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/30.bin new file mode 100644 index 0000000..1f03a73 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/30.bin @@ -0,0 +1 @@ +-V̇U9sċ(<곃^ ^jjlknÞ1O)ZAQA˖İB=`x6yh%S*]@}|sqF- \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/30.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/30.pem new file mode 100644 index 0000000..c6c269c --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/30.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCoMUCkgoh9N+amUj2j20K8kOag +0AN4Q0sXPPIAA11s51I/x4hrneuSArfGkZrdn9uiAUzejOg7yoZsewYInJw+MD+r +zBsCHN0bpCva5yPTbbS7aA276MBsqRWIisyTK51eYSvJiDZ9p9rP885PuyEYSOMM +5Gypx7V7EJ0mCO0uowIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/31.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/31.bin new file mode 100644 index 0000000..5d92695 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/31.bin @@ -0,0 +1 @@ +,)03lLQ+N)&J'Ha(!8C]}ynҒ1yhY2`ѪT@$V71FiR|m͉"yӔ:r.WWroQfߵ1^hgB]3ʋ>xWqb \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/33.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/33.pem new file mode 100644 index 0000000..bb7d19f --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/33.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDB2m6GEW0ftpjhbKZ5+hllQuiK +AiJBVBYiurt62gOWDuiLe4W+wSLeSkjeze3MPPzUdk+Strx4S6CPopcKnPd3NkDD +n2auppSvx1/BYeQDfzjctrW96AA0K/ZmVxq6xGY/59MSkkTrHLtcbsjTuRPnS5iQ +FL4/Glsd6G+0Jfio/QIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/34.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/34.bin new file mode 100644 index 0000000..ed80081 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/34.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/34.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/34.pem new file mode 100644 index 0000000..dbc66b5 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/34.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDX/YtBfR9ira4SkUP5VQJF4GD +8b7FT4R9GZAbnsr9enp3cM8oRgvHvC6+dk4m9PFIfM4eUZ+u6/8ckBDLES0L94St +uRpngap11TxKxMOuUPlq+OqMtmicM24zFl7KLX36evvWqtxQS4ekZlX6jo3zYpbj +FkhWTAEyXQhA5SGZpQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/35.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/35.bin new file mode 100644 index 0000000..eb32ab3 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/35.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/35.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/35.pem new file mode 100644 index 0000000..efdd4e0 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/35.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCy90CY6W7vR5fE6hso25KXrQ0k +gQVQIymEJ6qnf0b64xOeslQENQN3tdWG1rVfB7MuzaDGaXDtVwy45rtVFYDUdQfw +MHB7xsvKCvyLrhbnKoZDJSMMqnEP/PM9NeDbS73dbcrnL1S+XMG04a1YaoS87Srn +V18QnMSvT3jZ2/ceXQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/36.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/36.bin new file mode 100644 index 0000000..98ba920 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/36.bin @@ -0,0 +1 @@ +$ݪx؊z[#+eS$". ;vL`7բx[8+We73˷A=: y{Ad36$ސdz2Ꙓ­E.W =+3 SoAX \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/36.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/36.pem new file mode 100644 index 0000000..85395ec --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/36.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5K/9KUY++pgC9UFs8/BsG950j +yOtZ5owHEQhtTUx13U3zsw1Cy2JH27Hw9mz8VFWTGUeU75KV1DYcLGjT1n+kPTci +NqITujWG/7MEsd+bS88c9o4LA+E2MYv57nE63VgunLRHO++rvfMWrZJKTITG41sl +A0673PANuFUmv2sDkwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/37.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/37.bin new file mode 100644 index 0000000..e02bfb1 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/37.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/37.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/37.pem new file mode 100644 index 0000000..4269a7b --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/37.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDfCT9lIQwQlh7qxLE8qz7vEXXY +ZBZDE11Rrs3WcXiPVJt/O4H7FR0XVXCOslASRb5gw9BfY76HDo3g3c8G6ikBOvcM +I7tfFK26M9wI1tEVrI7Sk4fS3XNsS088Dyknh7bQp1hISW+lQsBKb2tEzh4X+ZXS +rGSrELxfd8lmHcpbewIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/38.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/38.bin new file mode 100644 index 0000000..8fb78ed Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/38.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/38.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/38.pem new file mode 100644 index 0000000..c16a0b5 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/38.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDxWDRcA3BlkWQZ1RhgfGOkcpJ +KwuJG/UhzRW1yKdjqIWXDXK0Ju/r6Cz4m364RqjMx6jDOX4LT18vMjDtkW7sJ6k4 +YKXwpEpCRNEnVXsLFWjXJQibfBRkVWhDZROGOTS5G/JAqqIDTF8aH117gAE11OlB +HbtwKN49AyViuRa1mQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/39.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/39.bin new file mode 100644 index 0000000..596c3cc --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/39.bin @@ -0,0 +1,2 @@ +_G?oـ_|X4/"{x0PmS Z2}0jZц6)3?#:+%H\R5(` +c``_x3 \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/39.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/39.pem new file mode 100644 index 0000000..b3c7840 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/39.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8ZWJJ1feGVlgE3wek3U20XtwV +WJ7vh5D4Fm5nca8VyV5JnnAOt3VI9aOfsQulFcjyuNINtHEfDdwNQ/Kl/wcJFjqm +odQjf6dv9P4bh2JBtbH5p5j8oYr1+uUfbyX/B5ZU8EhqocB03ntIKci6rOt3547j +qzrbBO0PQsKN6zZmlwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/4.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/4.bin new file mode 100644 index 0000000..cd669fc --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/4.bin @@ -0,0 +1 @@ +8=|(\F.׊gpK ]kFr!q-]?]] N"%J\7.G4*݈cABEF鯥wgP6[AgN,h4ݜ(J-ݱ&}  \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/4.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/4.pem new file mode 100644 index 0000000..b40374e --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/4.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCxnCpRIkZPnscTLWvuiGw+IMls +PXyEodasBqyBDJ1+75bo/rrFrxRaG1jkUyJT/JbUWv6h7rPd4EbsSRPFSHqDkK2U +Z8ihCW2rRPn89E9QfJyyAiIU5RVxZk19AWQiEG8z0YJt9Y8j/RNI41ERbpXFvDRe +qaGWoc35UnPJxyZceQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/40.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/40.bin new file mode 100644 index 0000000..ab11db1 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/40.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/40.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/40.pem new file mode 100644 index 0000000..36a0886 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/40.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCzz6iENKhCenl/abYPqnlkGtQX +/4yjK5jBUj82KBcuwZzL2jeenfOPSK5k9Tma+AbsY88yluIi1GJ8SB/oPT1l3Am+ +g2J6vES4S5H0LZET13jY4q1iiqkwn2GZ63iMuJ1z+AEPXgM6C6exbJ7JkOEzQPL0 +CFSnhN0wA3fLRIyIgQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/41.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/41.bin new file mode 100644 index 0000000..5080c2e --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/41.bin @@ -0,0 +1,2 @@ +Xsޤ +Pj*fIDϸɼf00?w<-EI)ZP:}+=k@r z.Jh^]™Z,eGY<rm \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/41.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/41.pem new file mode 100644 index 0000000..a652d90 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/41.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2gkaDg4LIQFfgp3+hX2CHotQ1 +9BfhWFasPp4ebKqIl5HkA1gAS54B6rXQ9LRoLgBGbm49N58mMqG5LUUfxgbvhYkd +ojudvlqRUafDv6xZqI3q8nzm9izUANZWsobYXTOr49AQIAWy4Zabbqop40JQDCuG +vbL2f6Mvx94opQ6a9wIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/42.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/42.bin new file mode 100644 index 0000000..0af66d3 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/42.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/42.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/42.pem new file mode 100644 index 0000000..ae6bdbb --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/42.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCll8GQMLYT1gOhqIfgT2AinvwS +QWSnflFpqxCqYDXwZsO1UvPnp415Bg5B/2/+AEWVx8qWYZM3wQuHC135/OCaMw99 +1xNp5ZXJ8N5WjNbZUkSYVhI/6+Eiq8+PCYRWilc34hJH9b45JSnpOB7kqlIgaDbQ +w0VVYkICiiDXH/FkKQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/43.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/43.bin new file mode 100644 index 0000000..75874be --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/43.bin @@ -0,0 +1 @@ +q,2DcT=Ʒ.Z\w>.皃C6l;xCG^"BTQѣIO|!cQpcZMկb1Rƴ>w\Y *cl \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/43.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/43.pem new file mode 100644 index 0000000..3b07879 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/43.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDB4EevSOQlCtZiV1G3rBI7rfMt +QxawcV8s5IbeoEfcUf8LDC2clYB8+bxmLgHJWm4LzbxiDpEJIEM8Pnwx8h84fuSD +r/FHD6yfEFOfPxrpp2Ff81nKvDB1Ef7ZxulhW8mM/7KjrzFSD9MNKAtje+oTa4iE +CLIUWJXJuXrST/sHeQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/44.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/44.bin new file mode 100644 index 0000000..dce95d4 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/44.bin @@ -0,0 +1,2 @@ +d{9 O[AYpg]egOZ]/Yy_>eTc +”\@}b%p;2&䞅K:Bb1qpL[ \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/44.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/44.pem new file mode 100644 index 0000000..76f7fa2 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/44.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDY7vEvvo+Lt6exqlQQD5pb9tGd +/fg3Fels3GV7tTU/OU++NAWv7phv43GbjzBXiBhOJV2tjMtOTSWPeza9viD0i1Nc +4mC6sz+Kz1AGDgc5hEDwi1vYFPdkvf87yTYtB1bn4ItQdPkvkLAizEBwZfRNOU15 +F14Ic2Khyj1a679QCwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/45.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/45.bin new file mode 100644 index 0000000..c6bd370 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/45.bin @@ -0,0 +1 @@ +e,{'33\bBj t?PYGSpzMcB Ӽ"D`WV*En~3 ᷹-RPK :dcm<_q \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/45.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/45.pem new file mode 100644 index 0000000..6614436 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/45.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHKVNXnSAy6Hh4vkZcn5oCQ10J +5EQfU1imVF3gFPRXx0hc+GfnwmldsXyAeDaN5qkoXZNlRrAf9ik5AgmU6U3TJsnh +Rd2AboOXehmVQHVLUxLpNaz+cZ4eMKtIZ0JdV/A4BJmezzrND53GB0Zzaw1U5fE+ +s4/xHNS1+OJilpOLGQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/46.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/46.bin new file mode 100644 index 0000000..b342254 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/46.bin @@ -0,0 +1 @@ +! E)x`Ƙ 3DڲUQ8CT̗te; |8qv/oaLӸ ۃ]H@Chb'FQXv®+͉4nZżdف8 \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/46.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/46.pem new file mode 100644 index 0000000..9cb8717 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/46.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDvN4SO9KZnR0XllGQt3uFzD96E +maDDBv2ghwHm1Q+18uBx5apHYT+Vda62Sq4PnXsmSp8Mgo2IN7+Lnp8Udurwu2h6 +eNHDtG/ed0NR5fCKDJGhRShRy/yvgme8pQf5dr7H+FWd39N3/MEe72S5HuiiJK/o +We/zF4Y+yMpGJuMfWQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/47.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/47.bin new file mode 100644 index 0000000..f2b74cf Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/47.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/47.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/47.pem new file mode 100644 index 0000000..dba6d36 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/47.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRmoA0QRH5kIMrHw9+g9mVQUQ5 +cDjXw/lrI+VhPTITNyl4Z0E+YZL5UhteCZ2Dsg0RvtR7U8cjNN6RXbbNMdcw+7pr +n7xFRlQ6d3Rv4Ce1IBKtCBHGdWbd++JDchIuPzB8v6E0/YbKB/bHGvHSJKV7B/8Q +pSJ44uTW6ABCFf+w5wIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/48.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/48.bin new file mode 100644 index 0000000..06d6fd2 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/48.bin @@ -0,0 +1,2 @@ +N򬞟F"(Gs)b +whnA}Y E_ݡNon: FǟcU#|KtʣH0=(ph;yu.HQ-Ƭ GOPthߗţj)1 \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/48.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/48.pem new file mode 100644 index 0000000..20acdbc --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/48.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDZPjawPxqb2Rjk24ftjG5K2i0A +hvYhqILRuDE8pAox2D3ThkCRSbWXtJPMPp8zOq8zatEHsDnw0NJ39iUo+HJgHHvf +iQj+wAXfxISn+kGi0GfmGdYASSjGGU4XfLeY+EmQva7oGn0mbcS1gbC2o/KHIwgj +BXpQ6x68DbwHLxk2IwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/49.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/49.bin new file mode 100644 index 0000000..e66366f --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/49.bin @@ -0,0 +1,3 @@ +r4/]QD}d('^UcfOayFs1yjBd/ws E}( +j6ݢl8>:HY? +|-n c+4Z \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/49.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/49.pem new file mode 100644 index 0000000..76d860b --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/49.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsak/m4/4e37ZeZqEWULDqv7DQ +HSa6xDXbmh6Gs0FR2jn9h49TqPkXQL1jVeTeZQICTTee9EqrEugwrzayvjkPizJ+ +9kHg4+Zx0yAx0r+l7/a+hXZb1TDK8ETBJfpLQ1yHc0PUewiYquW0GgHFGbPaS7Ie +X/42W19l+WW2IWBLywIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/5.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/5.bin new file mode 100644 index 0000000..5a61ec3 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/5.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/5.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/5.pem new file mode 100644 index 0000000..1b89d6c --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/5.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDUFjWoIJn9ilwhbBBGKJxUbiTw +UBv89WhL9XNPKzFiEiU0tr03a+L6tisHTntN0wMD49vpBNv3oHmKzcWda94Jqf6S +BfMOpHcrgSL6QjSTT0Nk7sMwsFj4w0kxFPo2J5LcYwZo/28woBvSQaQty8wHMxwc +bo68wGNYvD3jBkSQzwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/50.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/50.bin new file mode 100644 index 0000000..16c52c7 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/50.bin @@ -0,0 +1 @@ +@g& b+F7DCYy)Ju1l)\qu:mu@RPɆŊCi3獏|L^l]ٻ%=_r$ \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/50.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/50.pem new file mode 100644 index 0000000..beb2407 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/50.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCyfFgKL2bnqxnhX9/0KV1z7D2m +LXCID2YGwNJyGBjr/g+EWZ7k9Au0AWS4Oljd+5ygunEhmdm+c+5Ynah/QCLRV967 +1lmBMrs8Y/Qg+aAP98IPw9XY3buT0fgSqC7jmJ5NzPbX8buw/ioAc6kYs0YmL+LM +tWNS/b81CT3j5YAXLwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/51.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/51.bin new file mode 100644 index 0000000..f8b850a Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/51.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/51.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/51.pem new file mode 100644 index 0000000..76c5c0c --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/51.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+o8xB/qQYHZRRZDPX5eBpoI/2 +o39I1FQphSGj4jwH2grqPiIcLguHrHSMTXtsryOMLWDdYtIZIbopTeUyWSdIejDd +n5woD1BGT/6yMBQ3JEO/9lnJHnHwBmeoZ/LJda9InijTZzgMgb+zeL+hdsGU/bbZ +LZUvCbLcdmT9r1O6DwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/52.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/52.bin new file mode 100644 index 0000000..636d5fb --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/52.bin @@ -0,0 +1 @@ + ģ0T|:I h9J\ۊ$ \|>hڅgh=$>t!B$-'7w<m+e_iM?R K(USgޗym֦mTn/IZ}z7rGf6Wx>2w#!3HMW>V'7YnN\rt@[rt|ֱSkVΕWרI|<вwv +E>>w "+"cӝ?rxR)+q \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/61.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/61.pem new file mode 100644 index 0000000..a039cde --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/61.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCeLVzim3kJiouPzbwZZJUbgdku +JQicwTEhIdAdPjzXNSBn76U47K7e+1Lx1vxx9wAuH6nT4O2dRNITgiGY5R+0Pgx9 +Q/yKfove/W9+BU/fwiTPMlvcMUa2ycrxRJGXFU4x0tgzwbD0TH+++xLvLjoW0i3B +JWExmeh6KO+GQ+IyJwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/62.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/62.bin new file mode 100644 index 0000000..6495540 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/62.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/62.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/62.pem new file mode 100644 index 0000000..abda368 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/62.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcUMoMNo/hs09i7yRFlziAyDkF +/R/l6ACnBHY8W2DvaaHFw6CNOWAfKdrEctjyO6xFRNNqxshJXzy4H+GPZa/FtQKu +lwvHsEZPwMNeawA+Ygr7tpkXaSDm4edeSOoT+s8t69uukmHDG43kiL2bkYdSONib +X5/6mY6Xy4x4tRquzwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/63.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/63.bin new file mode 100644 index 0000000..c675921 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/63.bin @@ -0,0 +1 @@ +kAijea)ᓑR+}I7ZAD :5Dx#v؍M#-<@zEGHoU~|R+7\m 0嚉lu$h3^DBP{bo \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/63.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/63.pem new file mode 100644 index 0000000..adf8ac4 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/63.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHcyA2LUmcRKICARy+0e4cMKiW +8A0IwYiEh2bNc3k9zxTH3TYNS2quicy2x0SoVK0XmlZP1PVSzISDwD9Fmlh6QPk/ +As2wHULn6b6tjSdDcIKHaoit2VVS6qsU1ckhKKHJaUt7JBGSdx5vU/+uTjWMq7+U +AznL7/pVdUPLGCTvewIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/64.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/64.bin new file mode 100644 index 0000000..867666e --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/64.bin @@ -0,0 +1 @@ + &sRbxG 5*tZK*cvGh ŰMx3 U2j¦\鈦#'iP6^Fa+"X;E)#> 7Gmo?} \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/64.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/64.pem new file mode 100644 index 0000000..6935233 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/64.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVvfaByNva2FXynpmPKHl/ubOg +JT0DeQ9ZcM3DOTUC1M1cIjQASuJ1yL0qthHV4b9jylF0lL15DyVpn6sj8YWTYKfw +sAhcm/hIP0iPlX5bX9q5kwGTK0vTuOaHiKip3oykg3P8DUh2+Q+dP+AoniJkcXT1 +34GyEL2Kf5C1K4ApXwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/65.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/65.bin new file mode 100644 index 0000000..1f1f249 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/65.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/65.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/65.pem new file mode 100644 index 0000000..748d656 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/65.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCyU9LgoFPsujzi4fW+8UhuhEx2 +n56IBU/MO0ziBDAKLkWUIqhlcVs0dB/Ek31x7fOGGY3jEsmwHi7d5IxY5hge7qN2 +so013XlCLaYz344N6Y+4UQebA9N3e5155njUCjrrY5+5ECiux8lPo+PxxY09VxYS ++fRa2qGxxyuWb7VvdQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/66.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/66.bin new file mode 100644 index 0000000..8543d51 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/66.bin @@ -0,0 +1 @@ +rl:b9`mC3|'os݆D;:ԺCqRGEgdjTkXu Ø"KO[nֽӑA)@DP7ttwi>s>ʷ4 \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/66.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/66.pem new file mode 100644 index 0000000..60d7dcc --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/66.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC6+cG9VasMNgczyfLzv+y8kkSJ +t4WoDqp7oIH+e5dssTAonUJPgB7Q2htga+KhOn5aMUKn+aLCrMA50rgkL64ssaQM +vdU+YWDTSvuDuwCuZWax2RbcFzyzGk+5st/7VYjrta1bR3ItFM9XiO8scMZvZ4iZ +FjwV8pSn+CIYkuwQJwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/67.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/67.bin new file mode 100644 index 0000000..2e91ea5 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/67.bin @@ -0,0 +1,2 @@ + +S!?y3.Wy7ͮVb@tK.k_=O3@q0̔*1ߦ[6ؔp#ĆGV1U5Sb:{~]w$. \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/67.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/67.pem new file mode 100644 index 0000000..1d088a7 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/67.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDXPuZ93G7UmP6lwzfokl0AlhZq +A6yu6qD5s5iX2QpqNjVVuRBfC7dPbUR9Th0aWOnfs3aPNpJ6RhfphmJ+e/ubLVHt +1Gkd4tjiC7n9xJYsOQItWVEzKFTVU7pL1w55HsLrIQ3a6Xi7imlm0mp17HsFvGkf +JkutyUfFfLDfG83lDwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/68.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/68.bin new file mode 100644 index 0000000..3bf49eb Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/68.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/68.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/68.pem new file mode 100644 index 0000000..671cc4f --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/68.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjnoQC7fuunjAqolTjy2sXb5Is +DW17LcHkVq/5abLKEJzbjW8Hp7ZQDkgA64LmmGDGIoqWUNr0L4BgTtkOgpfo3cgF +DeH1D0stjhhW7bM0L5l+5QgnDZ3bM6UPTId1rYfXkFEtkrA/SJLz1I+aZNIqOaEo +U3JyaxnGzMo2ykLDrwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/69.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/69.bin new file mode 100644 index 0000000..c74cdfc --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/69.bin @@ -0,0 +1 @@ +3Ez-Na]qV]ĝB~j^0W7֧\K(0y h򊭁C@ /!ovԦ7P;!1JaJJ\Xs xY ر Kɘoy_;Z \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/69.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/69.pem new file mode 100644 index 0000000..8d76ed6 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/69.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQI1FuLE2RtslwSrcKpPFPepPj +wG2QG1WbZEJrEMReSHBkDGAsf8fov1eQT0HCqniszpZlLfHy5M4AoPkOCLDeUGRx +y/ZuZuPkBqb1sc7dDwAah2gblQtCZmqGdz/ZLCymp9y0W9w0KGYIYLCgbJYgVzpv +hhbx0LKNPhrD9T0MZwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/7.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/7.bin new file mode 100644 index 0000000..a545bcb Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/7.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/7.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/7.pem new file mode 100644 index 0000000..b9bdc54 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/7.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCDe1jXfIw48eMHVulvb69ejcV +XLYQyXBF9DibqDbSrcnMi6nUB6JPUmREE+S5RxkFnAhZx5Xm6dKKpkbfiM5Pg2Ay +8eLBWmf//Ep/0ai8YR4Fz2pcVLGNtCoAIvUAeCh1nCFLj+t3vpM0IYnAFH3FWcvz +Y1pTNTI4ke8RQAQj5wIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/70.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/70.bin new file mode 100644 index 0000000..ef5952f --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/70.bin @@ -0,0 +1 @@ +f}oRɦu|opN@=Ocߞj%:zVT1P&k;uzȇ*A#gUap)LMM6g;0õ+ `-W 'o[8 \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/70.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/70.pem new file mode 100644 index 0000000..2bdeea5 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/70.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCWTjUHnRb36WsjTHLwyAfeDdi +kZxXflEePJhKGCMFHwqA/nygVbv98U7Wu2gPM/v3+z+RB7HirfVsAaE/goALoHRH +WWikEtfmgB3UUKnJkvHfKYImDLO5AARZyzfyju7C7FaNiQJpqptDiNbnG33rSYr7 +UUAvE0hEBtpjzk7UcQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/71.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/71.bin new file mode 100644 index 0000000..2c4fe64 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/71.bin @@ -0,0 +1 @@ +agF+Hsn01dMJӢw o@X)_I+pWClRDl{m/`s㥘+>V!f,ψ;XwX \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/71.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/71.pem new file mode 100644 index 0000000..cf0c1f3 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/71.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA60pPEZiEuTb5BX+gW63odY2s +AX2fKTYA6zkaTbXWbBJNgP2Gjh5gUMS2d+O/EC3n0wxBFi0LpfOPEMRf/Z6RX4vj +3YpjXXzmeEzj3ekeGDHqkiblXnusfAfD4TtYEFfSDZBMA3sipYJPCa3Oe9qe9bio +38kHQ5eXJeVL1yY1jQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/72.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/72.bin new file mode 100644 index 0000000..9bfdad1 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/72.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/72.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/72.pem new file mode 100644 index 0000000..76d5b3d --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/72.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDKTuMhRKhm71XUC14dDOcKMBV +qoAc8t9vNj/dOasP4qrnY8VS7u8wjQcbbO1J/dT61PK9JjdzfWTKx/xtkjnj85Lb +WOzG9IfbeAUNZfbZNMEaweMP5vW9Fk175WX4NHINUn07v2tDh5daqEo9m8NrK1Qv +yr+X7Eh5fJV1/ofN4QIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/73.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/73.bin new file mode 100644 index 0000000..e1410af --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/73.bin @@ -0,0 +1,2 @@ +ZO7_"_Z/X@IH !>]pP%W2\ +e|pDl'M"^^ /"Y_[^5~7u}"@.`;`T۠ \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/73.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/73.pem new file mode 100644 index 0000000..860f022 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/73.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0iWEDigRMuQEd80LzAQIOYhuK +GWjmDA5UlfxzdOxKeIKEwXYd+hyTeKnBkuJRNkRDCHKd45pblthvEKp3AVt6GrhF +q3YKxQnoI6IL26NaNRpGkt6NfELwwqKysFBV2HxtSYcvwGPcE2tOV4T7RWjjP9vh +7cdMix2kMp7p+wzRrQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/74.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/74.bin new file mode 100644 index 0000000..08f0cc7 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/74.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/74.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/74.pem new file mode 100644 index 0000000..1b79b9a --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/74.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCzbsjfAsiS9K0dwd20ZO6ofeNs +PV57hQcsEqvALvKNnG63QQMzvrnykCk4vp84sZSOaiJ8t0I9x3Kf15rX8YnILBvL +EXbRLDnZbIVyS+GfrdgT6Qa5zIDMqjh6LSQKaAySRAtg2yegodU8YJOKbq/E86vo +MCKijKl0U37dYEyI9wIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/75.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/75.bin new file mode 100644 index 0000000..ece4276 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/75.bin @@ -0,0 +1,3 @@ +=07 g#3PTtN?a `lCB,wV@t*<2#*lI +$W{pU +:̇pێ S !so"Ɖ3}JOE;O_!F` 㼃 ^s \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/75.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/75.pem new file mode 100644 index 0000000..1f4f095 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/75.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDaeigDbVZFkQs9tvQNP9Gce5fx +BWFQwLrMbht78mt4KBF5G3NFqgd1Apv/GShyKfzoP+8JZ+m+xzc4gK6WSASNMGuC +HoG5Cicxa4btS5mZqPhke59yqsbTf5Jb1Z4AjxU7HpEbQsElojFhmzbrsmP3B747 +TdpXJXdJl2pBeWUrCQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/76.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/76.bin new file mode 100644 index 0000000..1c04a0f --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/76.bin @@ -0,0 +1 @@ +64JX[!!,R%{¤&mp}ƿμGU){L{K Q4nu bU|5+u.YX=-B 5#N40ڣ=W~x@ t5tg \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/76.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/76.pem new file mode 100644 index 0000000..6a491b9 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/76.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBKBXFFr0eY7CRuKiLxLMSQpCz +ug0sINDDm10ucPo634Sk59F2GKAPuplnXKMqYv3YdkY8qsKhW45AplLRb4AdKFOg +frr75aMvBKhQyPU/M+TVF0NcL2auzgbfm7DepLQHGLyvMfguo1+GusV13B8+y7O1 +sUe1rQl5takClUOnHwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/77.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/77.bin new file mode 100644 index 0000000..248bd69 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/77.bin @@ -0,0 +1 @@ +:z iMXEؐܭTD f?G# Yw/B9EпmEKG|2tޅ;rе X;FsH=,Urf+:;k \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/77.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/77.pem new file mode 100644 index 0000000..faa6754 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/77.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC79iLETJQ7TpvyYXLnT/k+vtKj +5Q5PleaqCDgWQf28qiLyBi2bJ19XjCKsuiBtsnH+5DKkwuuJPWB7Aj8sM98aS9mB +ki/FkBbH7MIbA8ti0PE51dLqujvZeeRwVTpknD/Rjy6RnobTEJ999CPE1IDUXyyh +bPwYjuXLCLVl2WYijwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/78.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/78.bin new file mode 100644 index 0000000..e22b490 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/78.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/78.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/78.pem new file mode 100644 index 0000000..015c3aa --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/78.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDI9/nArM4T+hZW42j2MymYXBhL +QoaxY4PgT+DIXfNBF4BQKbGV8mx79yMzCarbqaEt+njXEdPWSd6UKkl8AlTuqx7C +CrW1vqnttDPcVsiq64qJ8MeEpfA96ENRAqIoKr2jvCCmrJIVICuL/MuRlet1WbCD +M1dr2tS32dYFh1bd7wIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/79.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/79.bin new file mode 100644 index 0000000..a4cb92e --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/79.bin @@ -0,0 +1,3 @@ +V#ȗbzc(2 s3 +YکU(/ Ws޿ݭ0Ef}YFr T^b `]I5@_ u H0 W̍pܖ1 +5cPSKP$Tz_tm!e \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/79.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/79.pem new file mode 100644 index 0000000..b3ec571 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/79.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCjhRYNAcC6gbuLS0/MiRloymP/ +4asNEolrbSyJ6FrFYb8/JT83Q53F4hEQXZM24ueu90H2U1xXP7LrFh9ROU30b4Am +0wtPsAbHmJ6rl34N2wL2OzY3Gug/8EdKAyGihZG6eGBnQLo8PqWRaUpNJNWlXORB +6cgFUr00f18uWx/0EwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/8.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/8.bin new file mode 100644 index 0000000..ee1ecf9 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/8.bin @@ -0,0 +1,3 @@ +B." T.<(b]ӯ!==ѷ;%7U@x5 +*h\w@aܳj ~tS QUL--K}\->Dգ e6" +GlI \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/8.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/8.pem new file mode 100644 index 0000000..6bff8a7 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/8.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1fGe+mMJYZ+BDm76Ag25bXcBB +pABkGZpnQpnSTocEuCQyp5/lNNVFdF0QliNRULnxoK+pD8VEBqxR+zkYsYf9iGzU +PzOELWvbFgIJdUPixlaD3/1Y6+eSDffCOsCoJ1A/8DELMbjQdbFoxfqj9AVRU3cd +R0AauL4O9hPz0N9OVQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/80.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/80.bin new file mode 100644 index 0000000..e8eec80 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/80.bin @@ -0,0 +1 @@ +)+vI0RЀ7Ay6a="ʉ&{\v'B'~} M V,dJг( *dDv s?bɮ$sS 9=k-t؝CY \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/80.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/80.pem new file mode 100644 index 0000000..0674592 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/80.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcDMJENwEZQB655i+3a35GYrix +aOaz9vzHvzy+LSH/yUe8ZaGUhohPbkm0mohVme2grgHOsp0vwQcKtjENUTrihSqJ +Vz65/cMQoAniJtPnwZFvQJ0hVaGVyI5hZ/dAD59JMbNIzB3BEC6bbbn2/SfpJpQT +gHflxB53byrsvCsZkQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/81.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/81.bin new file mode 100644 index 0000000..a330295 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/81.bin @@ -0,0 +1 @@ +*%X@fYTa+W$ugsB7B$ŜSp!S&'2vQK<]RoDHqfuDUsmB`o:I:8HѾ`UE06!͔ \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/81.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/81.pem new file mode 100644 index 0000000..4008d6a --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/81.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/IwZX61fcg5KhnRHhmKTtV/Ov +/b/DvNiRZdvThRaXNFEXQUHRrUe4XSrgTei91rmJdX+k4T/bg2u34CM077bulClj +y4t2ZacgdWpVEfXKPA3suI5GP4mCEUOJ5FM7WeRAAF2jZJAwIZsmHHuxmHShUbmQ +4mGWrMNAUgAmnIxpzQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/82.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/82.bin new file mode 100644 index 0000000..2452c11 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/82.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/82.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/82.pem new file mode 100644 index 0000000..a8f354b --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/82.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPQHu+EmORIaacC21FQW8SfU5i +7JsOsvrPfG4QqocysxADf6d5f0RIwENGxtDZGOPFUsLvMp3Cx11gwF5Z69IaHVDH +xME1oo5dmp+QqW7U87R8hvfdmQR4ZGQHGNOexvwm1V+lE4VOZUzb9WY9Bk+HDiUR +PAFoEvYUwoUQCB9OcwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/83.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/83.bin new file mode 100644 index 0000000..47cf988 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/83.bin @@ -0,0 +1 @@ +l m'́ Wښ9uL]!bF=x1Pv$^.yKs %Cs?EԕDs鲩iۘ:?r?)9uC|U+FW~q%f\0 \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/83.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/83.pem new file mode 100644 index 0000000..1b2bfe1 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/83.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC361EH2RirTi/+6e3c+KeXd3V5 +HtN+vvmZb6Y9F4bbF3a6hFQyrM/IpkLyz2Qhe5xLgXdfzoTFojZTR8eylF7TMbUL +YuIj+TKsynl1kWM5Rj+1flNT4RXRGjRE5pxF658fQvLLcb16BfsZxZa32sK+QYmt +XWksed9LIGNgeTXiHwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/84.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/84.bin new file mode 100644 index 0000000..78eda18 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/84.bin @@ -0,0 +1 @@ +ֽrhjxQK/&dmV&Wՙ{P;f g̛[B,Ř6ꇌߨZ᫳3A6-I[LUF3ō w)C0H2}- QQ69H8 \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/84.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/84.pem new file mode 100644 index 0000000..31c9f4c --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/84.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDsDW3WHM4vVdd+odt8ZACjkVXb +JThR2A6y7xnOa++u+4E04DcbLBKsE5EEovIe3JIc+RHVFJA8g4VYWmdD9bGVDcy2 +zFmXjzE6D7Ds4gPnICpRtnBom5HvDI5Y3ag5D4SSpa9x0dpDZ+oocPNWzbUEoggH +2b8oDeo1HoqJzpWv+QIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/85.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/85.bin new file mode 100644 index 0000000..2df8a13 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/85.bin @@ -0,0 +1,2 @@ +lkP*66_ V%e +vdaTKr_B`)_3a`┱%ivGpᜁi!]uwݨ|x1LHS JJD,dؽrkK Z%- \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/85.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/85.pem new file mode 100644 index 0000000..6ad70b4 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/85.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC24sSggX2vYRf4ly9EZul4KzqM +05bgcxBUTm1nqeMQf2p3D+SOY1Xp17d4sahWEpoAKbjTpuwj7Ma7fN68MMh9kIkh +aCeTYz48S9IBrmPMnbXoisq/TJY1NkkrMIfXxyxAhVpX0O12f7neP8ZYIm9B5396 +mMg1jAQyJa8LZP7NHwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/86.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/86.bin new file mode 100644 index 0000000..dc5c3fd --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/86.bin @@ -0,0 +1 @@ +36 q3W=3@` `{Ɍ$ ~y8hm/UJ9IT Q̳ \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/9.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/9.pem new file mode 100644 index 0000000..a4d2b3f --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/9.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJLYfp7lXJ8iwcGLmAgmVi0l6e +UgIGGIst3Z2Age9ZIQmwxG+NFN43R0j2UzusV2aWQ3m+3HaUl9xJyXopa9dzTTy9 +D6dpNhstLz4faxgs4R9VR9LMa2oSI97zivfWCvs9VWVf0LPKUCpMXREuLNLs1a0V +qDHvKZgwINWnGf6QgwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/90.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/90.bin new file mode 100644 index 0000000..0dc69e4 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/90.bin @@ -0,0 +1 @@ +VM>M ^3v+iS}Ibl̕UIڦ3=P0ںs- D4R8egzeF O.TKȧ\S0AT ;6:Ѳ{/ʗd2X` \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/90.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/90.pem new file mode 100644 index 0000000..972b2c8 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/90.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJp4nnGPvCG7/8WXCJPhs4Hhgj +AFpDqoSPRKsW5zpWPmv8/f35rIcpCks/EQHiGHSKbJqDExYU98LyzIKn3abRCcr2 +nrD7Fu8OWSyVfcMp1fRMVLhL5rbRuxcKBwfT9O5HUw9W++60OqIdRifnAt+4V88l +kwngTve/Y2WSBSaxjQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/91.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/91.bin new file mode 100644 index 0000000..875e5ce Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/91.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/91.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/91.pem new file mode 100644 index 0000000..3692322 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/91.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDUnyRIuLYVi64Jr3/7valGNlh0 +Zx0Ln0x069jQrXOBo1eFDq7WbM+m5brsOio+hpz3d137acF4sd2NAqvkg+EoJ50B +p8LJhAaa9txGCPiG5CLtpJymGLd02NJCqZDHdnQpa4rak3yn3nqb3s9YY6eGto/k +HUAFrF+nsY3qUyL57wIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/92.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/92.bin new file mode 100644 index 0000000..dcd0b81 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/92.bin @@ -0,0 +1,2 @@ +b=oאJ@t=]P͟?!sRj镒 +VpIyTz4yUŨ ʌpwٍ"WS.^\v \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/93.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/93.pem new file mode 100644 index 0000000..f989abd --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/93.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDaHJNrB8rxqW6HjoVl3ai3IAXV +peKevzk5KxmIzzu9uOK4cmOg4/WZT8qOleYGSVGaPJ7HUy24DW0eyjdrudOTTCqz +zDvfNqYrN/KTaaTEYSm/oGKwwyqphJCnPW37UjDJH3Cn2Jj3Jzahf21vX5qbpB/+ +6VDs1FUXlqbOM5YIuwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/94.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/94.bin new file mode 100644 index 0000000..dcbd490 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/94.bin @@ -0,0 +1 @@ +\X^/J7k9r@ I^t{(c ZA w7Sg(+L!˶sΖQ+u'c^#'`-{H%"#gtnPa \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/94.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/94.pem new file mode 100644 index 0000000..10f8773 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/94.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDa7+h748iz+YBt8aJvP6KaUkCA +U7zpgayrO1ej+QWdBvjIOgxEC55g7GPqOkiB1iV29O3ECb2sLLgVMrkust0SkF8G +uCgceAej1v7lqUUoIFbOGv/lGkyZusfGG9GonhLnUOTAkSwdzIX314OKdQJ8hCPq +E0tRkV6PLXCac3X3MwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/95.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/95.bin new file mode 100644 index 0000000..373fe46 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/95.bin @@ -0,0 +1,2 @@ +QqcT D*%u+UP h8SJff0$=(WgIH I$L) ~']X!5T{\w"DjBf +zbiyW!k \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/95.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/95.pem new file mode 100644 index 0000000..2d3e031 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/95.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCr/4UeirrhPMubLI1GRjo7TJIM +ZvwR1bqgOpCY5DP/jzg9HUgAwUuD925qTdcjEMNe/8SsLdFGmhZS4/qj1vaX0rhl +KSecL+/iZFo5+4uR25n7rF/bpc5kY6Yk6EU6MXJUjxZWhitxbvDIb5NtyqY9yIvC +ryDXdinPqe20QDKSvQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/96.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/96.bin new file mode 100644 index 0000000..b39faba Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/96.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/96.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/96.pem new file mode 100644 index 0000000..ce8dcf2 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/96.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCbVY8tDD9M+STEOzBaV/NoKeoh +FmUjdIrbu8SATXfRSMjRUJuVsiP/QmPP1BOMsS80/5PVij6Y1MV6/tsOhIqS4Le6 +rq2u54OkArd+udcce3W27xtyHJz5uiWG/cHZD+DBt2o3i5cowD3wvhgII3ePQc6n +BEjWFGB9dBrG1LNPEwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/97.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/97.bin new file mode 100644 index 0000000..c66f3cc --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/97.bin @@ -0,0 +1,2 @@ +caHsҰ-CCuNqCjEGuab: +NHQ ٮ;T|-8^U<;XinGJ [S q8C J+T Rq5rq \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/97.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/97.pem new file mode 100644 index 0000000..817686f --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/97.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQJJxtoYhCKQOErFErr40xmdR/ +jIIyJVJogsUu6kOvcJFeBtS/IaAjTyj43gA2Zo/yxysTK3D/aEWAmG8fgpP6tWxh +LbQcdr12ZbtZjlvMBJmzJ3Cncp+6SbYD2Tz2e6yFskOnMJPF97xT9YxmToEUG0FW +BrPkwEGo6OPkjE09kwIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/98.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/98.bin new file mode 100644 index 0000000..b803ce7 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/98.bin @@ -0,0 +1 @@ +11醴(Sb{VohgW a|0l˝I|n`g%h{]m%^`cowWGfDҙ0D,ɗxܪ\0ԌT \ No newline at end of file diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/98.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/98.pem new file mode 100644 index 0000000..4fe2035 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/98.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/ZfokE/oCok9bb/4iGz4QS2T9 +DVWtUeCkMHr/OeSMh4Y8JUutICaaOkVVwzk8ZO04tzGM30Us6XuJbrMZCw9Vs4Ct +gm0Ed6qpUYJPL50lWhNVApblkyc1+XZzT7yt4HsSFeYW0ok3S9wYutvCwA5wKhnR +TUBssFS3ohrcovtz9wIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/99.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/99.bin new file mode 100644 index 0000000..7fb9e22 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/99.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/99.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/99.pem new file mode 100644 index 0000000..a9435b6 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/challenge/99.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhpxw6lQ8ApeDS6164zWhUOcHx +mRFBrLM44Io4kpvJN6HUjrik/CokU6XEc7pjadoqBnGO8/PW7cUAH+g1WdJJTBGI +hYSZxnaBRmtyJA5l5AqqqA7YAVkRNu+u7ygtAYa6GgcNueie1Y1tTHpjlHSlj/Ve +rIA0qQ1dbUK3gqLj0wIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/scripts/bgcd-db.sage b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/scripts/bgcd-db.sage new file mode 100644 index 0000000..041f28d --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/scripts/bgcd-db.sage @@ -0,0 +1,41 @@ +# http://facthacks.cr.yp.to/batchgcd.html + +import csv + +def batchgcd_faster(X): + prods = producttree(X) + R = prods.pop() + while prods: + X = prods.pop() + R = [R[floor(i // 2)] % X[i] ** 2 for i in range(len(X))] + return [gcd(r // n, n) for r, n in zip(R, X)] + +def producttree(X): + result = [X] + while len(X) > 1: + X = [prod(X[i * 2:(i + 1) * 2]) for i in range((len(X) + 1) // 2)] + result.append(X) + return result + +def remaindersusingproducttree(n, T): + result = [n] + for t in reversed(T): + result = [result[floor(i // 2)] % t[i] for i in range(len(t))] + return result + +def remainders(n, X): + return remaindersusingproducttree(n, self.producttree(X)) + +with open("toCrack10.csv", "r", encoding="utf-8") as csv_file: + csv_reader = csv.reader(csv_file, delimiter=',') + moduli = [ZZ(line[0]) for line in csv_reader] + csv_file.seek(0) + csv_reader = csv.reader(csv_file, delimiter=',') + files = [line[1] for line in csv_reader] + res = batchgcd_faster(moduli) + match = [x for x in zip(moduli, res, files) if x[1] != 1 and x[0] != x[1]] + +with open('vulnerableKeys.csv','w') as out: + csv_out = csv.writer(out) + for row in match: + csv_out.writerow(row) diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/scripts/bgcd-db.sage.py b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/scripts/bgcd-db.sage.py new file mode 100644 index 0000000..62ce192 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/scripts/bgcd-db.sage.py @@ -0,0 +1,48 @@ + + +# This file was *autogenerated* from the file bgcd-db.sage +from sage.all_cmdline import * # import sage library + +_sage_const_2 = Integer(2); _sage_const_1 = Integer(1); _sage_const_0 = Integer(0)# http://facthacks.cr.yp.to/batchgcd.html + +import csv + +def batchgcd_faster(X): + prods = producttree(X) + R = prods.pop() + while prods: + X = prods.pop() + R = [R[floor(i // _sage_const_2 )] % X[i] ** _sage_const_2 for i in range(len(X))] + return [gcd(r // n, n) for r, n in zip(R, X)] + +def producttree(X): + result = [X] + while len(X) > _sage_const_1 : + X = [prod(X[i * _sage_const_2 :(i + _sage_const_1 ) * _sage_const_2 ]) for i in range((len(X) + _sage_const_1 ) // _sage_const_2 )] + result.append(X) + return result + +def remaindersusingproducttree(n, T): + result = [n] + for t in reversed(T): + result = [result[floor(i // _sage_const_2 )] % t[i] for i in range(len(t))] + return result + +def remainders(n, X): + return remaindersusingproducttree(n, self.producttree(X)) + +with open("toCrack10.csv", "r", encoding="utf-8") as csv_file: + csv_reader = csv.reader(csv_file, delimiter=',') + moduli = [ZZ(line[_sage_const_0 ]) for line in csv_reader] + csv_file.seek(_sage_const_0 ) + csv_reader = csv.reader(csv_file, delimiter=',') + files = [line[_sage_const_1 ] for line in csv_reader] + print(files) + res = batchgcd_faster(moduli) + match = [x for x in zip(moduli, res, files) if x[_sage_const_1 ] != _sage_const_1 and x[_sage_const_0 ] != x[_sage_const_1 ]] + +with open('vulnerableKeys.csv','w') as out: + csv_out = csv.writer(out) + for row in match: + csv_out.writerow(row) + diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/scripts/convert10.sh b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/scripts/convert10.sh new file mode 100755 index 0000000..4f96e39 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/scripts/convert10.sh @@ -0,0 +1,7 @@ +#!/bin/bash +for i in `cat toCrack.txt` +do +ruby< toCrack.txt diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/scripts/getModuliBase10.sh b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/scripts/getModuliBase10.sh new file mode 100755 index 0000000..e88b194 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/scripts/getModuliBase10.sh @@ -0,0 +1,2 @@ +#!/bin/bash +ls ../challenge/*.pem | xargs -I {} openssl rsa -in {} -pubin -modulus -noout | awk '{print substr($1 ,9)}' | xargs -I {} echo 'ibase=16; {}' | bc | tr -d '\\\n' diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/scripts/listfiles b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/scripts/listfiles new file mode 100644 index 0000000..d1587c3 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/scripts/listfiles @@ -0,0 +1,100 @@ +100 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +1 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +2 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +3 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +4 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +5 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +6 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +7 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +8 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +9 diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/scripts/pasteFileName.sh b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/scripts/pasteFileName.sh new file mode 100755 index 0000000..dbfdca1 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/SharedPrimeFactor/scripts/pasteFileName.sh @@ -0,0 +1,2 @@ +#!/bin/bash +paste -d ',' toCrack10.txt listfiles diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/TLSinspection/badBox/EndEntity b/docs/workshop/5-snake-oil-crypto/hands-on-support/TLSinspection/badBox/EndEntity new file mode 100644 index 0000000..42509c5 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/TLSinspection/badBox/EndEntity @@ -0,0 +1,24 @@ +-----BEGIN CERTIFICATE----- +MIID+TCCA2KgAwIBAgIEMqcj4DANBgkqhkiG9w0BAQQFADCCASkxCzAJBgNVBAYT +AkluMQ8wDQYDVQQKEwZIdWF3ZWkxDjAMBgNVBAsTBUhUSVBMMRUwEwYDVQQuEwxE +TiBxdWFsaWZpZXIxEjAQBgNVBAgTCUthcm5hdGFrYTENMAsGA1UEAxMEUk9PVDEP +MA0GA1UEBRMGc2VyaWFsMREwDwYDVQQHEwhsb2NhbGl0eTEOMAwGA1UEDBMFdGl0 +bGUxEDAOBgNVBAQTB3N1cm5hbWUxEjAQBgNVBCoTCWdpdmVuTmFtZTEMMAoGA1UE +KxMDaW5pMQ8wDQYDVQRBEwZwc2V1ZG8xDDAKBgNVBCwTA2dlbjEXMBUGCSqGSIb3 +DQEJARYIZW1haWxAQEAxHzAdBgoJkiaJk/IsZAEZFg9kb21haW5Db21wb25lbnQw +IBcNMTIxMjEyMTIwMTAzWhgPMjEwMDA5MjYxMjAxMDRaMIIBLjELMAkGA1UEBhMC +SW4xDzANBgNVBAoTBkh1YXdlaTEOMAwGA1UECxMFSFRJUEwxFTATBgNVBC4TDERO +IHF1YWxpZmllcjESMBAGA1UECBMJS2FybmF0YWthMRIwEAYDVQQDEwlFbmRFbnRp +dHkxDzANBgNVBAUTBnNlcmlhbDERMA8GA1UEBxMIbG9jYWxpdHkxDjAMBgNVBAwT +BXRpdGxlMRAwDgYDVQQEEwdzdXJuYW1lMRIwEAYDVQQqEwlnaXZlbk5hbWUxDDAK +BgNVBCsTA2luaTEPMA0GA1UEQRMGcHNldWRvMQwwCgYDVQQsEwNnZW4xFzAVBgkq +hkiG9w0BCQEWCGVtYWlsQEBAMR8wHQYKCZImiZPyLGQBGRYPZG9tYWluQ29tcG9u +ZW50MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDS8kdEEPuw8e3S/eSDkncr +n9wjfBN3hokizcVaxuWtf1933M82LzSf57LJgqfnhmHkkHPs8yDRxTpCaAmJ7Y04 +dzTV9PhkOML2rwlVH3Yg/IS/Aq91YJrlg2+eqc8wM4RHoj0bdGtvqjPINqQFT2pH +wBFCBXifL8Fr01xhyaodXwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCBsAwDwYDVR0T +AQH/BAUwAwIBAjANBgkqhkiG9w0BAQQFAAOBgQBCMuNDWfllNTIBvT9FJ6NDvM9G +YUJx5LQCSPH+htFF+AGDxV8IK88Mdi5+5ILPLLEmJgniuJHTb/Q13Hgx9g1JptOD +0+iD51sZtrNJJjcycG/LjmUf/JnmokqjdgOqI1LNr1R3mysg86MpNUzY6n+VaZQB +QS+J+KQ9SN9kYbpRPw== +-----END CERTIFICATE----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/TLSinspection/stripped.pcap b/docs/workshop/5-snake-oil-crypto/hands-on-support/TLSinspection/stripped.pcap new file mode 100644 index 0000000..eb32db9 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/TLSinspection/stripped.pcap differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/UsingRSA/README.md b/docs/workshop/5-snake-oil-crypto/hands-on-support/UsingRSA/README.md new file mode 100644 index 0000000..7cff6e3 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/UsingRSA/README.md @@ -0,0 +1,45 @@ +# Instructions + +This directory contains a sample public key `public.pem`, the corresponding +private key `private.pem`, and a message that has been encrypted with the +private key `message.bin`. + +You should be able to decrypt the message using the command-line openssl +utility like this: + +```bash +$openssl rsautl -inkey private.pem -decrypt < message.bin +``` + +If you want to see the details of the keys' contents, try: + +```bash +$openssl rsa -in public.pem -pubin -text -noout +$openssl rsa -in private.pem -text -noout +``` + +Note that the output from OpenSSL will be in hexadecimal! + +The most fundamental difference between the public and private keys is +that the public key includes the modulus n ("modulus"), while the +private key also includes the two primes p ("prime1") and q ("prime2") +such that p×q = n. + +You can generate a new private key using: + +```bash +$openssl genrsa -aes128 4096 > my key.pem +``` + +Then you can create the corresponding public key using: +```bash +$openssl rsa -in key.pem -out key-public.pem -pubout -outform PEM +``` + +And finally encrypt a message with this new key using: + + +```bash +$openssl rsautl -encrypt -inkey key-public.pem -pubin -in mymessage.txt -out mymessage.txt.asc + +``` diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/UsingRSA/message.bin b/docs/workshop/5-snake-oil-crypto/hands-on-support/UsingRSA/message.bin new file mode 100644 index 0000000..8716e12 Binary files /dev/null and b/docs/workshop/5-snake-oil-crypto/hands-on-support/UsingRSA/message.bin differ diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/UsingRSA/private.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/UsingRSA/private.pem new file mode 100644 index 0000000..cdf2c16 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/UsingRSA/private.pem @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC23AKJbkriaiUbl9S5Gdc/tG8gLPwtcMs1gTcJaG6G+dXjG1jA +A0/7P6eBspTeGLI8tGFfkCc8qYSc2/2HSfLb/yM4vUoduD6OUalbEdCQv0i6ShUF +Ur/+8TmNB8rAPeI3jyX2k/g7OmkH8vD7jECxcgX7zBu0tmYW98ovsTlWnQIDAQAB +AoGAZ7U11x3vaKQMsa6V3fky5BWAZP4+c8Mh7RGA1lwdO34ceXZ8CkKWrQd4CA3x +clkNVXJ0O0+1gSkfZhs6me0tx/MTyJ0JyrG2gaaFbBqN50dA/V+/FZ9KId0cmNf4 +nDIrLgqk2XF+9hbQPj9DevONa6s7H/a6wpbtSSDq1r0DVcECQQDwM9EE8725+Oi/ +UGwICAqUaUrS30c4N5lJVYtKY0ytFSwbzdfDzCxtqcT7vwVvUIV+1naARnwF0Vg1 +WnQ9MvINAkEAwuK7/wqRCQ5yum6R4OuBtAxpwDpFoevZ2Hi8I16s951HW+EgB6XW +fU4Li61JaOW8U8ie5d2vFl1iJHdE/Wwi0QJBAIh5qGTb6AxmNDefBgJ6Lyirumud +mOWEEX/tLrsROFuPEASsK89/ji6wqs8udXQNmAu85o9zfLwBedC2mBy9eXECQQCO +Yerp/cVS8YxeqvPHeSiM69jDSY+gKllBb4w85ynFytHczdCB5eacK84BoXwVuGrs +Z5G37UvDMjzG2aC86ilRAkBbhxuhJaQKKwYYmxE4WThR1zEHZPglYV0xRuimPofw +S017aA/RoQTrqq9rq+fxw0TWp6VMTQgDCFXDSbbosr+h +-----END RSA PRIVATE KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/hands-on-support/UsingRSA/public.pem b/docs/workshop/5-snake-oil-crypto/hands-on-support/UsingRSA/public.pem new file mode 100644 index 0000000..b000219 --- /dev/null +++ b/docs/workshop/5-snake-oil-crypto/hands-on-support/UsingRSA/public.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC23AKJbkriaiUbl9S5Gdc/tG8g +LPwtcMs1gTcJaG6G+dXjG1jAA0/7P6eBspTeGLI8tGFfkCc8qYSc2/2HSfLb/yM4 +vUoduD6OUalbEdCQv0i6ShUFUr/+8TmNB8rAPeI3jyX2k/g7OmkH8vD7jECxcgX7 +zBu0tmYW98ovsTlWnQIDAQAB +-----END PUBLIC KEY----- diff --git a/docs/workshop/5-snake-oil-crypto/misp.png b/docs/workshop/5-snake-oil-crypto/misp.png index 03dd16c..9e34ab1 100644 Binary files a/docs/workshop/5-snake-oil-crypto/misp.png and b/docs/workshop/5-snake-oil-crypto/misp.png differ diff --git a/docs/workshop/5-snake-oil-crypto/soc.pdf b/docs/workshop/5-snake-oil-crypto/soc.pdf index c6f49a3..8007f61 100644 Binary files a/docs/workshop/5-snake-oil-crypto/soc.pdf and b/docs/workshop/5-snake-oil-crypto/soc.pdf differ diff --git a/docs/workshop/5-snake-oil-crypto/soc.tex b/docs/workshop/5-snake-oil-crypto/soc.tex index 28ca744..0b4b730 100644 --- a/docs/workshop/5-snake-oil-crypto/soc.tex +++ b/docs/workshop/5-snake-oil-crypto/soc.tex @@ -15,20 +15,19 @@ \subtitle{How I stopped to worry and started to love crypto} \author{Jean-Louis Huynen} \titlegraphic{\includegraphics[scale=0.20]{../../logos/d4-logo.pdf}} -\institute{Team CIRCL \\ \url{https://www.d4-project.org/}} -\date{2019/11/27} +\institute{Team CIRCL \\ } +\date{2019/12/06} \begin{document} - \begin{frame} - \maketitle - \end{frame} + +\begin{frame} + \maketitle +\end{frame} \begin{frame} \frametitle{Outline} \begin{itemize} - \item Cryptography 101, - \item Encryption an Law Enforcement, \item Use-Case: RSA, \item First Hands-on: Understanding RSA, \item Snake-Oil-Crypto: a primer, @@ -39,616 +38,11 @@ \end{frame} -\begin{frame} - \begin{center} - {\bf Cryptography 101} - \end{center} -\end{frame} +\input{rsabasics.tex} +\input{soc-d4.tex} -\begin{frame} - \frametitle{Cryptography Concepts} - \begin{itemize} - \item {\bf Plaintext} P: Text in clear, - \item {\bf Encryption} E: Process of disguising the plaintext to hide its content, - \item {\bf Ciphertext} C: Result of the Encryption process, - \item {\bf Decryption} D: Process of reverting encryption, transforming C - into P, - \item {\bf Encryption Key} EK: Key to encrypt P into C, - \item {\bf Decryption Key} DK: Key to decrypt C into P, - \item {\bf Cryptanalysis}: Analysis of C to recover P without knowing K. - \end{itemize} - -\end{frame} - -\begin{frame} - \frametitle{Cryptography Services} - - \begin{itemize} - \item {\bf Confidentiality }: Ensure the secrecy of the message except for - the {\bf intended } recipient, - \item {\bf Authentication }: Proving a party's identity, - \item {\bf Integrity }: Verifying that data transmitted were not altered, - \item {\bf Non-repudiation }: Proving that the sender sent a given message. - \end{itemize} - -\end{frame} - -\begin{frame} - \frametitle{Type of Encryption Applications} - - \begin{itemize} - \item {\bf In-transit encryption}: protects data while it is - transferred from one machine to another, - \item {\bf At-rest encryption}: protects data stored on one machine. - %\item {\bf Perfect Forward Secrecy} - \end{itemize} - -\end{frame} - -\begin{frame} - \frametitle{Kerckhoffs's Principle} - - \begin{quote} - It [cipher] should not require secrecy, and it should not be a problem if it falls into enemy hands. - \end{quote} - - \vspace{10 mm} - - { \bf There is no security in obscurity.} - -\end{frame} - - -\begin{frame}[allowframebreaks] - \frametitle{Attackers model} - {\bf Black Box} - Attackers may only see inputs / outputs: - \begin{itemize} - \item {\bf Ciphertext-Only Attackers (COA) :} see only the ciphertext, - \item {\bf Known-Plaintext Attackers (KPA):} see ciphertext and plaintext, - \item {\bf Chosen-Plaintext Attacker (CPA):} encrypt plaintext, and - see ciphertext, - \item {\bf Chosen-Ciphertext Attakers (CCA):} encrypt plaintext, - decrypt ciphertext. - \end{itemize} - - \framebreak - - {\bf Grey Box} - Attackers see cipher's implementation: - \begin{itemize} - \item {\bf Side-Channel Attacks:} study the behavior of the - implementation, eg. {\bf timing attacks }\footnote{\url{https://cryptojedi.org/peter/data/croatia-20160610.pdf}}: - \begin{itemize} - - \item Osvik, Shamir, Tromer~\cite{aes2006}: Recover AES-256 secret - key of Linux’s dmcrypt in just 65 ms - \item AlFardan, Paterson~\cite{lucky13}: “Lucky13” recovers plaintext of CBC-mode encryption in pretty much all TLS implementations - \item Yarom, Falkner~\cite{gpg2014}: Attack against RSA-2048 in GnuPG 1.4.13: “On average, the attack is able to recover 96.7\% of the bits of the secret key by observing a single signature or decryption round.” - \item Benger, van de Pol, Smart, Yarom~\cite{openssl2014}: “reasonable level of success in recovering the secret key” for OpenSSL ECDSA using secp256k1 “with as little as 200 signatures” - - \end{itemize} - - \framebreak - Most recent timing attack: {\bf TPM-fail }~\cite{244048} - - \vspace{10 mm} - - \begin{figure}[h!] - \includegraphics[width=250px]{./tpmfail.png} - \end{figure} - - \framebreak - - \item {\bf Invasive Attacks:} - - \begin{itemize} - \item injecting faults~\cite{Matsuda2018}, - - \vspace{10 mm} - - \begin{figure}[h!] - \includegraphics[width=250px]{./faultInjection.png} - \end{figure} - - \framebreak - - \item decapping chips~\footnote{~\url{https://siliconpr0n.org/wiki/doku.php?id=decap:start}}, reverse engineering~\footnote{~\url{http://siliconzoo.org}}~\footnote{~\url{http://degate.org}}, etc. - - \end{itemize} - - \end{itemize} - - \begin{figure}[h!] - \includegraphics[width=.49\textwidth]{./decaping.jpg}% - \hfill - \includegraphics[width=.49\textwidth]{./degate.png} - \end{figure} - -\end{frame} - -\begin{frame} - \frametitle{Security Notions} - - \begin{itemize} - \item {\bf Indistinguishability (IND) :} Ciphertexts should be - indistinguishable from random strings, - - \item {\bf Non-Malleability (MD):} ``Given a ciphertext $C_1 = E(K, P 1)$, -it should be impossible to create another ciphertext, $C_2$ , whose corresponding -plaintext, $P_2$ , is related to $P_1$ in a meaningful way.'' - - \end{itemize} - - \vspace{1 mm} - - Semantic Security (IND-CPA) is the most important security feature: - \begin{itemize} - \item Ciphertexts should be different when encryption is performed - twice on the same plaintext, - \item To achieve this, randomness is introduced into encryption / - decryption: - - \begin{itemize} - \item $C = E(P, K, R)$ - \item $P = D(C, K, R)$ - \end{itemize} - - \end{itemize} - \end{frame} - - -\begin{frame} - \frametitle{Semantic Security} - \begin{figure} - \centering - \includegraphics[width=\textwidth]{d4-ecb.pdf} - \caption{Image encrypted with AES-ECB} - \end{figure} - -\end{frame} - - -\begin{frame} - \frametitle{Semantic Security} - - IND-CPA should not leak information about the PlainText as long as the - key is secret: - - \begin{itemize} - \item $C^1 = E(K, P^1)$, $C^2 = E(K, P^2)$, what are the couples? - \item the same message encrypted twice should return two different CipherText, - \item one way to achieve this is to introduce randomness in the - encryption process: $C = E(K ,R ,P )$ where R is fresh random bits, - \item C should not be distinguishable from random bits. - \end{itemize} - - {\bf No Semantic Security without randomness} - -\end{frame} - -\begin{frame} - \frametitle{Randomness} - - \begin{itemize} - \item - \end{itemize} - -\end{frame} - - - -\begin{frame} - \frametitle{Generating Randomness} - - Random Number Generator: - \begin{itemize} - \item - \end{itemize} - - Pseudo Random Number Generator: - \begin{itemize} - \item - \end{itemize} - -\end{frame} - - -\begin{frame} - \frametitle{Entropy} - - \begin{itemize} - \item - \end{itemize} - -\end{frame} - -\begin{frame} - \frametitle{Quantifying Security} - RSA 2048 is roughly 100 bits security. - \begin{itemize} - \item - \end{itemize} - -\end{frame} - - -\begin{frame} - \frametitle{Type of encryption} - - \begin{itemize} - \item Symmetric encryption, - \item Asymmetric encryption. - \end{itemize} - -\end{frame} - - -\begin{frame} - \frametitle{How thinks can go wrong} - Some attacks requires less than CCA / CPA: - \begin{itemize} - \item Side Channel attacks as for instance Padding Oracle (Vaudenay Attacks) - \end{itemize} - -\end{frame} - -\begin{frame} - \begin{center} - {\bf Encryption and Law Enforcement} - \end{center} -\end{frame} - -\begin{frame} - \frametitle{2016 ENISA / EUROPOL joint statement} - \begin{itemize} - \item In the arms race between cryptographers and crypto-analysts. In - terms of practical breaks, cryptographers are miles ahead. - \item In a society that is ever more depending on the correct - functioning of electronic communication services, technical - protection of these service is mandatory, - \item In the face of serious crimes, law enforcement may lawfully - intrude privacy or break into security mechanisms of electronic communication, - \item {\bf proportionality} - collateral damages (class breaks) - \item Resolving the encryption dilemma: collect and share best - practices to circumvent encryption. - \end{itemize} -\end{frame} - -\begin{frame}[allowframebreaks] - \frametitle{Encryption Workarounds~\cite{kerr2017}} - \begin{quote} - Any effort to reveal an unencrypted version of a target's data that - has been concealed by encryption. - \end{quote} - \begin{itemize} - \item {\bf Try to get the key:} - \begin{itemize} - \item {\bf Find the key:} - \begin{itemize} - \item physical searches for keys, - \item password managers, - \item web browser password database, - \item in-memory copy of the key in computer's HDD / RAM. - \item seize the key (keylogger). - \end{itemize} - \item {\bf Guess the key:}, - \begin{itemize} - \item Whereas encryption keys are usually too hard to guess (eg. - 128bits security is $2^{128}$ trials (universe is $2^{88}$ ns old)), - \item passphrases are usually shorter to be memorizable, and are - linked to the key, - \item some systems have limitations on sorts of passwords (eg. 4/6 - digits banking application), - \item educated guess on the password from context, - \item educated guess from owner's other passwords, - \item dictionaries and password generation rules (\footnote{\url{https://hashcat.net/hashcat/}}). - \item Offline / online attacks (eg. 13 digits pw: 25.000 on an - iphone VS matter of minutes offline), - \item + beware devices protection when online (eg. iphone erase on repeated failures). - \end{itemize} - - \item {\bf Compel the key:} - \begin{figure} - \centering - \includegraphics[width=180px]{security.png} - \end{figure} - \end{itemize} - - \item {\bf Try to access the PlainText without the key:} - - \begin{itemize} - \item {\bf Exploit a Flaw:} - - \begin{itemize} - \item Weakness in the algorithm (more on that later), - \item weakness in the random-number generator (more on that later), - \item weakness in the implementation, - \item bugs (eg. Gordon's exploit on android in - 2015\footnote{\url{https://cve.circl.lu/cve/CVE-2015-3860}}), - \item backdoors (eg. NSA NOBUS -Bullrun program- Dual EC-DRBG~\cite{eprint-2015-26238} - \end{itemize} - - \item {\bf Access PlainText when in use:} - - \begin{itemize} - \item Access live system memory, - \item especially useful against Full Disk Encryption, - \item Seize device while in use, - \item remotely hack the device, - \item ``Network Investigative Technique'' (eg. Playpen case - against tor). - \end{itemize} - -\pagebreak - - \item {\bf Locate a PlainText copy:} - - \begin{itemize} - \item Avoid encryption entirely, - \item cloud providers (eg. emails), - \item remote cloud storage (eg. iCloud), - \end{itemize} - - \end{itemize} - - \end{itemize} - - \vspace{5mm} - - {\bf Takeaways:} - \begin{itemize} - \item {\bf No workaround works every time:} the fact that a target used - encryption does not mean that the investigation is over. - \item {\bf some workarounds are expensive:} exploiting. - \item {\bf expertise may be have to be found outside of the - governments:} vendors' assistance? - \end{itemize} - - - \framebreak - - Technically, we can retain that crypto-systems have weaknesses: - - \begin{itemize} - \item key generation, - \item key length, - \item key distribution, - \item key storage, - \item how users enter keys into the crypto-system, - \item weakness in the algorithm itself / implementation, - \item system / computer running the algorithm, - \item crypto system used in different points in time, - \item {\bf users.} - \end{itemize} - - -\end{frame} - -\begin{frame} - \frametitle{When cryptography helps investigations} - \begin{itemize} - \item crypto provides authentication mechanisms. - \item - \item - \item - \end{itemize} - -\end{frame} - -\begin{frame} - \begin{center} - {\bf Hands-on: Understanding RSA} - \end{center} -\end{frame} - -\begin{frame} - \frametitle{With only one key} - Several potential weaknesses: - \begin{itemize} - \item Key size too small: keys up to 1024 bits are breakable given the - right means, - \item close p and q, - \item unsafe primes, smooth primes, - \item broken primes (FactorDB, Debian OpenSSL bug). - \end{itemize} - -\end{frame} - -\begin{frame} - \frametitle{With a set of keys} - Several potential weaknesses: - \begin{itemize} - \item share moduli: if n1 = n2 then the keys share p and q, - \item share p or q, - \end{itemize} - \vspace{10mm} - {\bf In both case, it is trivial to recover the private keys.} - -\end{frame} - -\begin{frame} - \begin{center} - {\bf Hands-on: Exploiting Weaknesses in RSA} - \end{center} -\end{frame} - -\begin{frame} - \frametitle{Using Sage} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Breaking small keys\footnote{https://www.sjoerdlangkemper.nl/2019/06/19/attacking-rsa/}} - \begin{itemize} - \item Go into: - -\begin{lstlisting} -~/smallKey -\end{lstlisting} - - \item what is the key size of smallkey? - \item what is n? - \item what is the public exponent? - \item what is n in base10? - \item what are p and q? - - \end{itemize} - - \vspace{8mm} - {\bf Let's generate the private key: }using p, then using q. - -\end{frame} - -\begin{frame}[fragile] - \frametitle{Close Prime Factors} - \begin{itemize} - \item Go into: -\begin{lstlisting} -~/ClosePQ -\end{lstlisting} - - \item use Fermat Algorithm\footnote{\url{http://facthacks.cr.yp.to/fermat.html}} to find {\bf both p and q:} - -\begin{lstlisting} -def fermatfactor(N): - if N <= 0: return [N] - if is_even(N): return [2,N/2] - a = ceil(sqrt(N)) - while not is_square(a^2-N): - a = a + 1 - b = sqrt(a^2-N) - return [a - b,a + b] -\end{lstlisting} - - \end{itemize} - -\end{frame} - - - -\begin{frame} - \frametitle{Shared prime factors} -\end{frame} - -\begin{frame} - \begin{center} - {\bf Hands-on: Exploiting Weaknesses in RSA}\\ - {\bf -- at bigger scale --}\\ - \end{center} -\end{frame} - -\begin{frame} - \frametitle{Snake Oil Crypto\footnote{\url{https://github.com/d4-project/snake-oil-crypto}} - Problem Statement} - IoT devices {\bf are often the weakest devices} on a network: - \begin{itemize} - \item Usually the result of cheap engineering, - \item sloppy patching cycles, - \item sometimes forgotten--not monitored, - \item few hardening features enabled. - \end{itemize} - - \vspace{10 mm} - -{\bf We feel a bit safer when they use TLS, but should we?} - -\end{frame} - -\begin{frame} - \frametitle{Snake Oil Crypto - TLS Fingerprinting} - {\bf Keep} a log of links between: - \begin{itemize} - \item x509 certificates, - \item ports, - \item IP address, - \item client (ja3), - \item server (ja3s), - \end{itemize} - \begin{quote} - ``JA3 is a method for creating SSL/TLS client fingerprints that should be easy to produce on any platform and can be easily shared for threat intelligence.''\footnote{https://github.com/salesforce/ja3} - \end{quote} - - {\bf Pivot} on additional data points during Incident Response -\end{frame} - -\begin{frame} - \frametitle{Snake Oil Crypto - Objectives} - {\bf Collect} and {\bf store} x509 certificates and TLS sessions: - \begin{itemize} - \item Public keys type and size, - \item moduli and public exponents, - \item curves parameters. - \end{itemize} - {\bf Detect} anti patterns in crypto: - \begin{itemize} - \item Moduli that share one prime factor, - \item Moduli that share both prime factors, or private exponents, - \item Small factors, - \item Nonces reuse / common preffix or suffix, etc. - \end{itemize} - \vspace{5 mm} - {\bf Focus on low hanging fruits that appeal to attackers} -\end{frame} - - -\begin{frame}[fragile] - \frametitle{Snake Oil Crypto - RSA on IoT } - Researchers have shown that several devices generated their keypairs - at boot time without enough entropy\footnote{Bernstein, Heninger, and Lange: \url{http://facthacks.cr.yp.to/}}: - -\begin{lstlisting}[frame=single, language=python] -prng.seed(seed) -p = prng.generate_random_prime() -// prng.add_entropy() -q = prng.generate_random_prime() -n = p*q -\end{lstlisting} - -Given n=pq and n' = pq' it is trivial to recover the shared p by computing their -{\bf Greatest Common Divisor (GCD)}, and therefore {\bf both private keys}\footnote{\url{http://www.loyalty.org/~schoen/rsa/}}. - -\end{frame} - -\begin{frame} - \frametitle{Snake Oil Crypto - GCD} - In Snake-Oil-Crypto we compute GCD\footnote{using Bernstein's Batch GCD algorithm} between: - - \begin{itemize} - \item between certificates having the same issuer, - \item between certificates having the same subject, - \item on keys collected from various sources (PassiveSSL, Certificate Transparency, - shodan, censys, etc.), - \end{itemize} - -\vspace{10 mm} - {\bf ``Check all the keys that we know of for vendor X''} - -\end{frame} - -\begin{frame} - \frametitle{Snake Oil Crypto - MISP feed} -\begin{figure} -\centering -\includegraphics[width=\textwidth]{misp.png} -\end{figure} - -\end{frame} - -\begin{frame} - \frametitle{Snake Oil Crypto - MISP feed} - The MISP feed: - \begin{itemize} - \item {\bf Allows} for checking automatic checking by an IDS on hashed values, - \item {\bf contains} thousands on broken keys from a dozen of vendors, - \item {\bf will be accessible upon request (info@circl.lu).} - \end{itemize} - - In the future: - \begin{itemize} - \item {\bf Automatic} the vendor checks by performing TF-IDF on x509's subjects, - \item {\bf automatic} vendors notification. - \end{itemize} - -\end{frame} - +\input{d4-pssl.tex} \begin{frame} \frametitle{First release} @@ -665,31 +59,9 @@ Given n=pq and n' = pq' it is trivial to recover the shared p by computing their \item lookup-d4-passivessl \footnote{\url{github.com/D4-project/lookup-d4-passivessl}}: {\bf Exposes} the DB through a public REST API. - \end{itemize} + \end{itemize} \end{frame} - -\begin{frame} - \frametitle{PassiveSSL} -\end{frame} - -\begin{frame} - \frametitle{Using Snake-Oil-Crypto} -\end{frame} - -\begin{frame} - \begin{center} - {\bf Leveraging OpenPGP metedata} - \end{center} -\end{frame} - -\begin{frame} - \begin{center} - {\bf Checking for weak crypto} - \end{center} -\end{frame} - - \begin{frame} \frametitle{Get in touch if you want to join/support the project, host a passive ssl sensor or contribute} \begin{itemize} @@ -699,13 +71,4 @@ Given n=pq and n' = pq' it is trivial to recover the shared p by computing their \end{itemize} \end{frame} - - -\nocite{*} -\begin{frame}[allowframebreaks] - \frametitle{References} - \bibliographystyle{amsalpha} - \bibliography{../references.bib} -\end{frame} - \end{document}