कोडब्रेकर और कोडवर्ड


18

मान लें कि आपके पास कुछ पाठ है, और आप इसे अपने मित्र को भेजना चाहते हैं, लेकिन आप नहीं चाहते कि कोई और इसे पढ़े। इसका मतलब है कि आप इसे एन्क्रिप्ट करना चाहते हैं ताकि केवल आप और आपका मित्र ही इसे पढ़ सकें। लेकिन, एक समस्या है: आप और आपका मित्र एन्क्रिप्शन पद्धति पर सहमत होना भूल गए हैं, इसलिए यदि आप उन्हें संदेश भेजते हैं, तो वे इसे डिक्रिप्ट नहीं कर पाएंगे!

कुछ समय के लिए इस बारे में सोचने के बाद, आप अपने मित्र को संदेश के साथ अपने संदेश को एन्क्रिप्ट करने के लिए कोड भेजने का निर्णय लेते हैं। आपका मित्र बहुत स्मार्ट है, इसलिए वे संभवतः यह पता लगा सकते हैं कि एन्क्रिप्शन विधि का अध्ययन करके संदेश को कैसे डिक्रिप्ट किया जाए।

बेशक, चूंकि अन्य लोग संदेश पढ़ रहे होंगे, आप एक एन्क्रिप्शन स्कीम चुनना चाहते हैं जो इसे क्रैक करना संभव बनाता है (डिक्रिप्शन स्कीम का पता लगाना)।

पुलिस की टास्क

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

फिर आप कुछ कोड पोस्ट करेंगे जो एन्क्रिप्शन को निष्पादित करता है, और आपके कोड द्वारा विस्तृत योजना के साथ एन्क्रिप्ट किया गया एक संदेश।

चूँकि आप संदेश भेजने के लिए बाइट का भुगतान कर रहे हैं, आपका स्कोर आपके कोड की लंबाई और साइफरटेक्स्ट की लंबाई होगी । यदि आपका जवाब फटा है, तो आपके पास अनंत का स्कोर होगा।

एक सप्ताह के बाद, आप पाठ को प्रकट कर सकते हैं और अपने उत्तर को सुरक्षित मान सकते हैं । सुरक्षित उत्तर वे हैं जिन्हें क्रैक नहीं किया जा सकता है।

लुटेरों की टास्क

रॉबर्स या तो लेखक या दुर्भावनापूर्ण मध्य पुरुष के दोस्त के रूप में खेलेंगे (कोई भौतिक अंतर नहीं है, लेकिन आप भूमिका निभा सकते हैं जैसे कि यह ऐसा करने के लिए और अधिक मजेदार बनाता है)। वे एन्क्रिप्शन स्कीम और सिफरटेक्स्ट लेंगे और एन्क्रिप्टेड संदेश का पता लगाने का प्रयास करेंगे। एक बार जब वे एन्क्रिप्टेड संदेश का पता लगा लेते हैं, तो वे इसे एक टिप्पणी में पोस्ट करेंगे। (इस प्रश्न के लिए एक अलग लुटेरों का धागा नहीं होगा।)

सबसे अधिक दरार के साथ विजेता डाकू होगा।


यहाँ एक उदाहरण है कि फटा हुआ समाधान कैसा दिख सकता है:

अधिक संतरे खरीदें


यदि एन्कोडिंग जीवनी है, तो डोमेन और कोडोमैन क्या हैं?
लीकी नून

किन पात्रों के साथ तार?
लीकी नून

1
@WheatWizard कौन सा 256? आप 256 बाइट्स अक्षर सही नहीं मतलब है ?
आउटगोल्फ जूल

7
किसी को क्रिप्टोग्राफिक रूप से सुरक्षित फ़ंक्शन का उपयोग करने से रोकने के लिए क्या है?
टटलमैन

2
जीवनी सिद्ध करने का भार किस पर है: पुलिस या संभावित लुटेरे? Ie, यदि यह अज्ञात है यदि कोई फ़ंक्शन विशेषण है, तो क्या होता है?
स्टीफन

जवाबों:


5

जेली , 57 + 32 = 89 बाइट्स ( फटा )

“¡ḟċ⁷Ḣṡ⁵ĊnɠñḂƇLƒg⁺QfȥẒṾ⁹+=?JṚWġ%Aȧ’
O‘ḅ256b¢*21%¢ḅ¢ḃ256’Ọ

एन्क्रिप्टेड संदेश:

EªæBsÊ$ʳ¢?r×­Q4e²?ò[Ý6

हेक्स-स्ट्रिंग के रूप में:

4518AAE6421973CA
9724CAB3A23F72D7
AD18855134651810
B23F1CF25BDD9036

स्पष्टीकरण:

O‘ḅ256b¢*21%¢ḅ¢ḃ256’Ọ
O                     convert each into codepoint
 ‘ḅ256                convert from bijective base 256 to integer
      b¢              convert from integer to base N
        *21           map each to its 21th power
           %¢         modulo N
             ḅ¢       convert to integer from base N
               ḃ256’  convert from integer to bijective base 256
                    Ọ convert each from codepoint

जहां Nस्ट्रिंग द्वारा एनकोड किया गया है “¡ḟċ⁷Ḣṡ⁵ĊnɠñḂƇLƒg⁺QfȥẒṾ⁹+=?JṚWġ%Aȧ’, जो संख्या है 105587021056759938494595233483151378724567978408381355454441180598980268016731

इसके अलावा, यह Nऊपर और सार्वजनिक कुंजी के साथ RSA विधि है 21। इसे क्रैक करना दो प्रमुख कारकों को खोजने के बराबर है N


कुंआ। मुझे मिली कुंजी के साथ अपने स्वयं के एन्क्रिप्टेड संदेश को डिक्रिप्ट करने में सक्षम है, लेकिन यह आपके साथ विफल होता है। : - / (अपेक्षित परिणाम 4-वर्ण वाला गैर-अंग्रेजी संदेश नहीं है, है?)
अरनौल


@AndersKaseorg युप। यही मेरे पास था, लेकिन मैं कुछ अधिक सार्थक की उम्मीद कर रहा था। :-)
अर्नुलद

1
इसके लायक क्या है, यहां वह कोड है जो मैंने अपनी तरफ से इस्तेमाल किया था।
अरनुलद

1
@AndersKaseorg जेली यह बहस करने के लिए बेदखल करने का प्रयास करती है, इसलिए अशक्त बाइट्स वास्तव में संभव हैं। tio.run/##y0rNyan8/9//////6jEGIKgOAA
डेनिस

5

जेली , 88 + 64 = 152 बाइट्स

एन्क्रिप्शन फ़ंक्शन:

“¥@ɦ⁺€€Ṅ`yȤDƁWĊ;Y^y⁻U ⁸ßɠƁXẹṡWZc'µ÷ḷỊ0ÇtṙA×Ḃß4©qV)iḷỊDƭ Mṛ+<ṛ_idðD’
O‘ḅ256b¢*21%¢ḅ¢ḃ256’Ọ

एन्क्रिप्टेड संदेश:

AX!?ÖÍL¹    JÓ°û0àah4Û{µÌá`
^tÝrRÕù#êwðãTÓK"Íû´Ëß!øòOf«

हेक्स-स्ट्रिंग के रूप में:

9F419458213FD6CD4CB9094A10D3B0FB
8F30E0616834DB7BB517CCE1600A5E74
DD7252D5F923EA77F0E354D34B9F22CD
FB80B4CBDF21F80E94F24F9A66AB9112

स्पष्टीकरण:

O‘ḅ256b¢*13%¢ḅ¢ḃ256’Ọ
O                     convert each into codepoint
 ‘ḅ256                convert from bijective base 256 to integer
      b¢              convert from integer to base N
        *13           map each to its 13th power
           %¢         modulo N
             ḅ¢       convert to integer from base N
               ḃ256’  convert from integer to bijective base 256
                    Ọ convert each from codepoint

Nस्ट्रिंग द्वारा एन्कोडेड कहां है:

“¥@ɦ⁺€€Ṅ`yȤDƁWĊ;Y^y⁻U ⁸ßɠƁXẹṡWZc'µ÷ḷỊ0ÇtṙA×Ḃß4©qV)iḷỊDƭ Mṛ+<ṛ_idðD’

जो संख्या है

15465347049748408180402050551405372385300458901874153987195606642192077081674726470827949979631079014102900173229117045997489671500506945449681040725068819

इसके अलावा, यह Nऊपर और सार्वजनिक कुंजी के साथ RSA विधि है 13। इसे क्रैक करना दो प्रमुख कारकों को खोजने के बराबर है N, जिसमें 512 बिट्स हैं।


2
मुझे यह पसंद है कि आपका एन्क्रिप्टेड स्ट्रिंग आपके कोड की तरह दिखता है
स्काइडसाइड

इस अद्भुत कार्यक्रम का उपयोग करते हुए , मुझे यकीन है कि मैं ब्रह्मांड की गर्मी से मृत्यु के बाद आपके समाधान को कुछ हद तक क्रैक कर सकता हूं।
सुकराती फीनिक्स

ट्रायल डिवीजन द्वारा @SiscalPhoenix फैक्टराइजेशन कभी भी द्विघात चलनी के करीब नहीं आ सकता है।
लीकी नून

@LeakyNun मुझे आपके बड़े गणित के शब्द समझ नहीं आते ...
सुकराती फीनिक्स

@SiscalPhoenix आपका प्रोग्राम प्रत्येक कारक को 2 से आज़माता है, जबकि द्विघात चलनी बहुत तेज़ है। यह 6 मिनट में 256-बिट अर्धवृत्ताकार का कारक बन सकता है, जबकि आपके कार्यक्रम ने एक अनंत काल लिया होगा।
लीक नन

3

जावास्क्रिप्ट (ईएस 6), 43 + 33 = 76 बाइट्स लीके नन द्वारा फटा

एन्क्रिप्शन फ़ंक्शन, 43 बाइट्स:

s=>[...s].sort(_=>Math.cos(i++),i=0).join``

एन्क्रिप्टेड संदेश, 33 बाइट्स:

NB: यह एन्क्रिप्शन विधि ब्राउज़र-निर्भर है।

FireFox: "ty a)s kaasoeocr!hTt; o s  -cwaoo"
Chrome : "oht aasoaoas   e)tosr;oky c!-cw T"
Edge   : "tskso ;- caroteoTha wa soo ay c!)"

T! a)o khas eotrto-c; o sa cwsaoy
लीक नून

@LeakyNun Err ... नहीं।
अरनुलद

इसके बजाय मेरा जवाब क्या पैदा करता है?
लीकी नून

आप किस ब्राउज़र का उपयोग कर रहे हैं? मैं क्रोम का उपयोग कर रहा हूं।
लीकी नून

6
That was soooo easy to crack! -;)(मैं इसे दरार करने के लिए फ़ायरफ़ॉक्स का इस्तेमाल किया)
लीकी नून

3

ब्रिंगोल्फ, क्रैक

(d1&,&g)&@

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

एन्क्रिप्टेड संदेश, 45 बाइट्स (UTF-8)

°Áݭїϳ{ًչםק{їϳэÁק{|э³קѡ|

एन्क्रिप्टेड संदेश के Hexcodes

C2 B0 C3 81 DD AD D1 97 CF
B3 C2 90 7B D9 8B D5 B9 D7
9D D7 A7 7B D1 97 CF B3 D1
8D C3 81 D7 A7 7B 7C D1 8D
C2 B3 D7 A7 D1 A1 7C C2 85

अस्वीकृत संदेश

C'mon, this one's *easy*!

व्याख्या

(d1&,&g)&@  Implicit input from commandline args
(......)    Foreach loop, foreach codepoint of input
 d          Split into digits
  1         Push 1
   &,       Reverse
     &g     Concatenate
        &@  Print

डिकोडर

एक डिकोडर केवल 3 अक्षरों को बदलकर बनाया जा सकता है। बस, निकालें 1और $_इनबेटाइनी डालें &,और&g

(d&,$_&g)&@

क्या आप एक TIO प्रदान कर सकते हैं?
कृति लिथोस

1
C'mon, this one's *easy*!
केस्मार्ट्स

@KSmarts सही!
स्किड्सदेव

gअनिर्दिष्ट है
लीकी नून

क्या यह विशेषण है?
लीक नून

3

जावास्क्रिप्ट (ईएस 6), 96 + 9 = 105 बाइट्स

q=>Buffer(q).map((a,i,d)=>d[i-1]^Math.abs(1e16*Math.sin(d[i]+i))%255).sort((a,i)=>Math.tan(a*i))

सिफरटेक्स्ट (हेक्स-एन्कोडेड): 7d111c74b99faff76a

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

नमूना आउटपुट (V8 इंजन का उपयोग करके):

abc123 -> db48ea4f86b9

हैलो -> 1b3420f5ab


अमान्य प्रस्तुत: एकाधिक प्लेनटेक्स्ट समान सिफरटेक्स्ट उत्पन्न करता है। उदाहरण के लिए: "सी", "डी"। यह केवल पहले चार के लिए गिना जाता है। 256 संभावित आदानों में से, केवल 165 अद्वितीय आउटपुट।
मार्क जेरोनिमस

यह इच्छित सीमा के लिए
विशेषण है

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