छिपे हुए आक्रमण (लुटेरे धागा)


16

यह एक पहेली है, पुलिस के धागे को यहां पाया जा सकता है।

आपका कार्य पुलिस के थ्रेड में दिए गए प्रोग्रामों के विपर्यय को खोजना होगा जो इसके बाएं व्युत्क्रम को प्रदर्शित करता है।

एक बार जब आप किसी उत्तर को हल करते हैं, तो नीचे दिए गए उत्तर के रूप में हल करें और मूल उत्तरदाता को सूचित करें।

आपको उन कार्यक्रमों की संख्या पर स्कोर किया जाएगा जिन्हें आप क्रैक करने वाले पहले हैं।

जवाबों:


21

पायथन 3, 46 बाइट्स, लिन

lambda x0223334566789:(x0223334566789*89)//178

मैं "मूल उत्तरदाता को कैसे सूचित करूं"?
जीबी

अपने उत्तर को मूल
Sefa

आपको f=अपने कोड की शुरुआत में छोड़ देना चाहिए क्योंकि इसकी आवश्यकता नहीं है और मूल फ़ंक्शन का हिस्सा नहीं है
0 '

हो गया, मैंने इसे बहुत जल्दी कॉपी-पेस्ट कर दिया।
जीबी

16
यहाँ मैं वास्तव में एक समाधान के लिए मजबूर कर रहा हूँ (और यहां तक ​​कि एक मौजूद है) और आप बस पूरी समस्या को रोकते हैं! +1
orlp

14

पायथन 2, 225 बाइट्स, ऑरलपी

p=90930641353124136621573325641513715557077985927835294018496194596645372722158;q=101979812089012306249375934082966806799688507587087308196267706260111970225882#--223444799
lambda n:pow(n,pow(65537,(p*q-2*(p+q))/4,p*q),~p*~q)

लगता है कि मैं पूरे दिन यादृच्छिक प्रधानमंत्री divenders अनुमान लगाने के बाद भाग्यशाली रहा ...

(डिफ़ॉल्ट c4.8xlarge स्पॉट सीमा 4 है, लेकिन मैं इसे पिछले साल 10 में टक्कर देने में कामयाब रहा। 16 दासों से 6 तक एफएएएस विन्यास को फिर से ट्विस्ट करना पड़ा। हालांकि (+3 एमपीआई, 1 मास्टर)। 20 मीटर पॉलीसेलेक्ट, 12 वीं 50 मीटर साइडिंग, 2 एच। 25m linalg, 30m sqrt। कुल लागत ~ $ 70। कम से कम @orlp एक सॉल्वेबल साइज़ को चुनने के लिए पर्याप्त था, लेकिन मैं फिर से ऐसा नहीं कर रहा हूँ! अंतिम चरण के लिए @IlmariKaronen का धन्यवाद! और हाँ मैं मज़ाक कर रहा हूँ अनुमान लगाना: पी)


मैं .. क्या ... अब मैं आपका पैसा तो खर्च :( मैं जानबूझकर एक आकार है कि अभी भी काफी छोटा होगा उठाया लेकिन हमला करने के लिए बहुत अधिक लागत के लिए बुरा लग रहा है मैं वास्तव में नहीं सोचा था कि किसी को भी इस पर पैसा खर्च होगा।।
orlp

1
@orlp पूरी तरह से मेरे लिए एक-बंद अनुभव के रूप में इसके लायक है। मुझे उम्मीद है कि लोग इस से जंगली में 512-बिट आरएसए सुरक्षा के बारे में कुछ सीखेंगे :)
Sp3000

यह गोल्फ के लिए वास्तविक समर्पण है, न केवल समय बल्कि पैसा खर्च करना! यह ध्यान रखना दिलचस्प है कि एक हमलावर संभावित रूप से क्लाउड गणना सेवा परीक्षणों के माध्यम से 512-बिट आरएसए को मुफ्त में तोड़ सकता है।
मील

@ मीलों मुझे यह उल्लेख करना चाहिए कि अगर किसी को भी प्रयास करना है तो एडब्ल्यूएस का श्रेय छात्रों को है, और यदि अन्य सेवाओं ने भी ऐसा किया तो मुझे आश्चर्य नहीं होगा। इसलिए आप शायद उस परीक्षण विचार से दूर नहीं हैं, कम से कम पहली बार। (अगर कोई भी कोशिश करना चाहता है - सुनिश्चित करें कि आप सभी वॉल्यूम, एएमआई इत्यादि को हटा दें, क्योंकि एक बार आप कर रहे हैं क्योंकि अन्यथा आपसे भंडारण के लिए शुल्क लिया जाएगा)
Sp3000

11

पायथन 2, 83 बाइट्स, ऑरलपी

मूल:

#((()))****+,,---/2289;==oppppppqqqqqw~~
lambda n:pow(n,65537,10998167423251438693)

क्रैक:

p=3207399658;q=3428998126#--11
lambda n:pow(n,pow(65537,(p*q-2*(p+q))/4,p*q),~p*~q)

इसे ऑनलाइन आज़माएं!

वुल्फराम अल्फा द्वारा किया गया आरएसए क्रैकिंग । ;)


मुझे बस एहसास हुआ ~p*~qकि -~p*-~qउफ़ से भी छोटा है ।
orlp

(p*q-2*(p+q))/4हालांकि आपने इंजन को कैसे रिवर्स किया ? :)
orlp

यह सबसे कठिन हिस्सा था, है ना? मूल रूप से, के ज्ञान कारमाइकल समारोह और तथ्य यह है कि p/2और q/2दोनों अजीब अभाज्य संख्या है, और कुछ है कि उपलब्ध अक्षरों का उपयोग काम करेंगे खोजने के लिए परीक्षण और त्रुटि के एक झुंड।
इल्मरी करोनें

मैंने जानबूझकर चुना pऔर q(वास्तविक वाले, कोड में एक हैं p-1और q-1गोल्फ के उद्देश्यों के लिए) ऐसे हैं जो (p-1)/2कि हमारे पास प्रमुख हैं φ(φ(pq)) = ((p-1)/2-1)((q-1)/2-1)। यह हमें यूलर की पहचान का उपयोग करके 65537मॉड के मॉड्यूलर व्युत्क्रम φ(pq)(जिसे हमें RSA की आवश्यकता है) की गणना करने की अनुमति देता है , जिससे उत्तर बहुत छोटा हो जाता है क्योंकि हमें मॉड्यूलर उलटा तर्क या हार्डकोड को एक और बड़े निरंतरता को लागू करने की आवश्यकता नहीं है। -~q*-~p-> के अलावा ~q*~p, आपने मेरा कार्य ठीक पाया :)
orlp

1
दरअसल, एक छोटी सी नाइटी लेने के लिए, मैं φ(φ(pq)) = 2((p-1)/2-1)((q-1)/2-1)सुरक्षित अपराधों के लिए विश्वास करता हूं pऔर q, क्योंकि φ(4) = 2। लेकिन λ(φ(pq)) = lcm(2, (p-1)/2-1, (q-1)/2-1)सबसे अधिक है ((p-1)/2-1)((q-1)/2-1)/2, और उस में से किसी भी एक से अधिक , एक घातांक, घातांक के लिए करेंगे। :)
इल्मरी करोनें

7

पायथन 3, 80 बाइट्स, वोल्फ्राम

from bisect import*
q=int(input())
print(bisect([(h+1)**2 for h in range(q)],q))

यह दरार करने के लिए वास्तव में कठिन था! मैं बिसेक्ट लाइब्रेरी का उपयोग करता हूं , जो कि पायथन 3 वितरण में शामिल है। bisectसमारोह एक क्रमबद्ध सूची और एक तत्व लेता है, और सबसे दायीं ओर का सूचकांक जहां तत्व व्यवस्था बनाए रखने के डाला जा सकता है देता है। हम सिर्फ इसे लंबाई- qवर्ग से शुरू करते हैं 1और तत्व देते हैं q


1
मैं बदलने (h+1)का सुझाव देने जा रहा था -~h। तब मुझे एहसास हुआ कि यह इस चुनौती की बात नहीं है: P
ETHproductions

@ETHproductions जो कि ऑपरेटर की पूर्ववर्ती स्थिति के कारण वैसे भी गलत होगा।
Sp3000

@ Sp3000 हुह, मुझे इस बात का कोई अंदाजा नहीं था कि पायथन की **तुलना ~में इसकी पूर्वता अधिक है। मुझे लगता है कि जेएस की तुलना में बेहतर है, जहां -~2**2एक वाक्यविन्यास त्रुटि फेंकता है ("**" के बायीं ओर अनपेक्षित रूप से एकात्मक अभिव्यक्ति दिखाई नहीं दे सकती)।
ETHproductions

@ETHproductions उन्होंने वास्तव में अस्पष्टता से बचने के लिए किया था, जो कि, जैसा कि मैं जोड़ सकता हूं, सबसे JS डिज़ाइन का बहुत ही अप्राप्य है।
फलों का रस

@ चैलेंजर 5 वास्तव में, मुझे आपसे वहाँ असहमत होना पड़ेगा: हाल के वर्षों में TC39 यह सुनिश्चित करने के लिए अत्यंत सावधानी बरत रहा है कि कोई भी नई सुविधाएँ जोड़ी गई हैं जो यथासंभव अस्पष्टताओं से मुक्त हैं (जिसमें **ऑपरेटर भी शामिल है , ES2017 में जोड़ा गया)
ETHproductions

6

जावास्क्रिप्ट, 21 बाइट्स, अरनुलड

मूल

b=>Math.pow(b,torc=3)

दरार

o=>Math.cbrt(o,pbw=3)

घनमूल लौटाता है।


तुम वहाँ जाओ! ;)
अरनौलड

@ अरनल्ड: मुझे यह थोड़ा अजीब लगता है कि जेएस आपको उन कार्यों के लिए अधिक तर्कों के साथ कार्य करने की अनुमति देता है, जिनके लिए वे परिभाषित हैं। मुझे आश्चर्य है कि इसके पीछे क्या विचार है।
एमिग्ना

6
आप सही हैं, जेएस डिजाइन द्वारा अनुमति देता है। अतिरिक्त तर्क पूरी तरह से खोए नहीं हैं, हालांकि, चूंकि वे तर्क ऑब्जेक्ट में संग्रहीत हैं, जो फ़ंक्शन द्वारा मैन्युअल रूप से एक्सेस किया जा सकता है।
अरनुलद

5

7, 9 बाइट, ais523

00000000: 0173 dc25 7e13 dcb6 1f                   .s.%~....

क्योंकि जानवर बल हमेशा जीतता है, और 9! केवल 362880 है


4

प्रसंस्करण .js , 59 बाइट्स, क्रिति लिथोस

मूल:

float igetuwebaoli(int p){return p*(((17*-4*-3)))+0+0;}//,,

क्रैक:

int loabewuteg(float p,i){return (i+0**+0,(p/17/(-4*-3)));}

खैर, यह काफी आसान था। सबसे मुश्किल हिस्सा यह पता लगा रहा था कि अतिरिक्त अल्पविराम और तारांकन कहां से चिपकाए जाएं। सौभाग्य से, ऐसा लगता है कि प्रसंस्करण अतिरिक्त अप्रयुक्त फ़ंक्शन मापदंडों के साथ-साथ सी-शैली अल्पविराम अभिव्यक्तियों की अनुमति देता है।


1
जाहिर है, मैंने जो दुभाषिया जोड़ा था वह गलत था। वास्तव में, अधिकांश (या यहां तक ​​कि सभी) ऑनलाइन दुभाषियों शायद गलत होने जा रहे हैं क्योंकि प्रसंस्करण-जावा प्रसंस्करण के लिए पूर्व संकलित हो जाता है। अभी, मुझे लगता है कि कार्रवाई का सबसे अच्छा कोर्स मेरे लिए होगा और आप हमारे जवाबों को प्रसंस्करण के बजाय "प्रसंस्करण.जेएस" में बदल देंगे क्योंकि तब आपका उत्तर मान्य होगा (प्रसंस्करण-जावा, त्रुटियों के टन देता है)। मैं एक ही कोड के साथ प्रोसेसिंग-जावा के रूप में एक अलग उत्तर पोस्ट करूंगा, लेकिन इसके लिए घोंसले के दुभाषिया को प्रोसेसिंग.org से इंस्टॉल करना होगा। वैसे भी किया गया!
कृति लिथोस

4

जावास्क्रिप्ट (ES6), 63 बाइट्स, SLuck49

मूल:

x=>eval(atob`eCp4KzEvLyAgfXBModLS4TvEn4wp1iys9YRRKC85KLIhNMC=`)

क्रैक:

x=>eval(atob`CgpNYXRoLnBvdyh4LTEsMC41KSAvLw4589CEIKKMRefipyz=`)

बेस 64 कोड डिकोड से ऊपर है:



Math.pow(x-1,0.5) //...

जहां ... यादृच्छिक कचरे का एक गुच्छा है, जिसे JS दुभाषिया द्वारा अनदेखा किया गया है, क्योंकि यह एक टिप्पणी है।

मुझे यह समाधान परीक्षण और त्रुटि से मिला। अंत में, केवल वास्तव में मुश्किल हिस्सा कोड की शुरुआत में दो नई-पंक्तियों, ठीक से आराम लाइन बनाने के लिए और प्राप्त करने के लिए आवश्यक थे Mमें Mathकुछ ऐसा है जो मूल वर्ण सेट में उपलब्ध था में बेस 64 एन्कोड करने के लिए। मैंने पहले रिक्त स्थान की कोशिश की, लेकिन " M"बेस 64-एनकोड में "ICBN"और मुझे कोड में बाद में Bएनकोड करने के लिए एकमात्र उपलब्ध की आवश्यकता थी ".po""0+M", "1*M", "1?M"या किसी अन्य समान कोई सेशन उपसर्गों मैं के बारे में सोच सकता है या तो काम नहीं किया है, लेकिन नई-पंक्तियों से किया था।

मुझे संदेह है कि यह बिल्कुल इच्छित समाधान नहीं हो सकता है, लेकिन जो भी - यह काम करता है। :)

डेमो:

var f = x=>eval(atob`eCp4KzEvLyAgfXBModLS4TvEn4wp1iys9YRRKC85KLIhNMC=`)
var g = x=>eval(atob`CgpNYXRoLnBvdyh4LTEsMC41KSAvLw4589CEIKKMRefipyz=`)
for (var i = -0; i <= 10; i++) console.log(i, '->', f(i), '->', g(f(i)))


अच्छी नौकरी जो कुछ काम करती है, मुझे उम्मीद थी कि मैंने शुरुआत में अतिरिक्त पात्रों को रखा था, इससे थोड़ा मुश्किल होगा
SLuck49

प्रभावशाली :) मैंने बिल्कुल वही दृष्टिकोण लिया, लेकिन न्यूलाइन की कोशिश करने के बारे में नहीं सोचा। मैं कहीं और सी खोने की कोशिश कर रहा था लेकिन कहीं नहीं मिल रहा था।
क्रिस एम





3

जावास्क्रिप्ट (ES6), 46 बाइट्स, SLuck49

मूल (गणना ln (x + 1))

x=>Math.log(x+(+String(t=985921996597669)[5]))

दरार

x=>Math[(lg=19979699+55686).toString(9+25)](x)

अगर मुझे यह एहसास नहीं होता कि उलटा एक Mathबिल्ट-इन है, तो मैंने इसे कभी नहीं फटा । (lg=19979699+55686).toString(9+25)लौटने का सिर्फ एक जटिल तरीका है "expm1"


अच्छी तरह से किया! हाँ, मैं मैथ के फंक्शन्स के माध्यम से तय कर रहा था कि क्या उपयोग करना है, देखा जाए expm1और कहा "रुको, यह एक बात है?"
SLuck49

2

जे, 10 बाइट्स, मील

1%:@*~>:[<

मुझे यहाँ कुछ लिखना है क्योंकि उत्तर बहुत छोटा है।


2

जे, 29 बाइट्स, जरगब

मूल

5#.[:,(3 5&#:(-$]-)7)#.inv"0]

दरार

[:(](07-5)"3 #.-:&#$,)5#.inv]

इसे ऑनलाइन आज़माएं!

एक और दरार बराबर है

[:((3 ]7-5)#.-:&#$,)5#.inv"0]

व्याख्या

[:(](07-5)"3 #.-:&#$,)5#.inv]  Input: integer n
                            ]  Get n
                      5        The constant 5
                       #.inv   Get the digits of n in base 5
[:(                  )         Operate on those digits D
                    ,            Flatten D (does nothing since it is already a list)
                  #              Get the length of D
               -:&               Halve it
                   $             Reshape D to half its length (only the base 2 digits)
    (07-5)"3                     The constant 2 with rank 3
             #.                  Convert the front-half of D to a decimal from base 2
   ]                             Return the right result

हाँ, यह काम करता है! यह मेरे समाधान से थोड़ा अलग है, लेकिन बहुत सारे रास्ते हैं। मूल तर्क हालांकि एक ही है।
जरगब
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.