security - समम - अपनी क्रिप्टोग्राफी पद्धति लिखते समय आप क्या तकनीक का उपयोग करते हैं?




सममित और असममित कुंजी क्रिप्टोग्राफी (13)

साल के लिए, शायद 10, मुझे क्रिप्टोग्राफी के साथ मोहित किया गया है मैं एक्सओआर बिट-आधारित एन्क्रिप्शन के बारे में एक किताब पढ़ता हूं, और चीज से तब तक फंस गया हूं

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

बिंदु के लिए - क्रिप्टोग्राफी लिखते समय आप किस तरीकों का उपयोग करते हैं? क्या क्रिप्टोग्राफी में अच्छा है?

मैं चाबी पर दो कुंजी-आधारित XOR एन्क्रिप्शन, विभिन्न हैशिंग तकनीकों (एसएचए 1) का उपयोग करता हूं, और सरल चीजें जैसे कि यहाँ और वहां पर स्ट्रॉज़ पीछे कर रही हैं आदि।

मुझे यह देखने में दिलचस्पी है कि अन्य लोगों के बारे में क्या सोचता है और कोशिश करते हैं जब एक ऐसा न तो आउट-द-बॉक्स एन्क्रिप्शन पद्धति लिखते हैं। इसके अलावा - किसी भी जानकारी के बारे में कि पेशेवरों को कैसे "विभिन्न प्रकार की क्रिप्टोग्राफी तकनीकों को तोड़ने" के बारे में दिलचस्प होगा

स्पष्ट करने के लिए - मुझे इसका उपयोग किसी भी उत्पादन कोड या इस बात के लिए मेरा किसी भी कोड में करने की कोई इच्छा नहीं है। मैं यह सीखने में रोचक हूं कि यह कैसे पहिया के माध्यम से काम करता है, पहिया को फिर से नहीं बदल रहा है :)

इयान


अधिकांश विशेषज्ञ मानते हैं कि क्रिप्टोग्राफ़िक विधियों और एल्गोरिदम के विकास में खुलेपन को अस्पष्टता से अधिक मूल्यवान है।

दूसरे शब्दों में, हर कोई नया कोड डिज़ाइन करने में सक्षम है, जो हर कोई उन्हें छोड़कर तोड़ सकता है। सबसे अच्छा क्रिप्टो एल्गोरिथम होने के परीक्षण से बचता है और कुछ एन्क्रिप्ट किए गए संदेशों को वहां रखा जाता है और सबसे अच्छा क्रिप्टो हैकर्स इसे तोड़ने का प्रयास करते हैं।

सामान्य तौर पर, ज्यादातर अस्पष्ट तरीकों और सरल हैशिंग (और मैंने उनमें से बहुत कुछ किया है) बहुत आसानी से टूटा हुआ है। इसका मतलब यह नहीं है कि वे प्रयोग करने में मजेदार नहीं हैं और इसके बारे में जानें

क्रिप्टोग्राफी पुस्तकों की सूची (विकिपीडिया से)

इस सवाल ने मेरी आंखों को पकड़ लिया क्योंकि मैं वर्तमान में नील स्टीफेंसन द्वारा क्रिप्टोपोनोमीनॉन को फिर से पढ़ रहा हूं, जो कि एक बुरा अवलोकन नहीं है, हालांकि यह एक उपन्यास है ...


अन्य उत्तरों के मुताबिक - एन्क्रिप्शन योजना का आविष्कार निश्चित रूप से विशेषज्ञों के लिए एक बात है और किसी भी नए प्रस्तावित क्रिप्टो योजना को अपनी मजबूती में मान्यता और विश्वास की किसी भी उचित उम्मीद के लिए सार्वजनिक जांच करने की आवश्यकता है। हालांकि, मौजूदा एल्गोरिदम और सिस्टम को कार्यान्वित करना "मज़े के लिए" और अधिक व्यावहारिक प्रयास है और आपके कार्यान्वयन की शुद्धता को साबित करने के लिए सभी प्रमुख मानकों में अच्छे परीक्षण वैक्टर हैं।

उस के साथ, उत्पादन समाधान के लिए, मौजूदा कार्यान्वयन बहुतायत से हैं और आमतौर पर कोई कारण नहीं होना चाहिए कि आपको सिस्टम को स्वयं लागू करने की आवश्यकता होगी


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

यदि आप एक माउस को एल्गोरिथम देते हैं ...


एकमात्र क्रिप्टोग्राफ़ी है जो गैर विशेषज्ञों को सही होने की उम्मीद करने में सक्षम होना चाहिए अस्थि सरल एक समय पैड सिफर

CipherTextArray = PlainTextArray ^ KeyArray;

इसके अलावा, कुछ भी (मनोरंजन के लिए भी) को देखने के लायक कुछ भी गणित में एक उच्च स्तर की डिग्री की आवश्यकता होगी


मुझे पहले से ही दिए गए सही उत्तरों पर गहराई में जाना नहीं है (यह उत्पादन के लिए मत करो, सरल उल्टा नहीं है, अस्पष्टता खराब है, आदि)।

मैं बस केक्रॉफ़ के सिद्धांत को जोड़ना चाहता हूं, "कुंजीपटल को छोड़कर प्रणाली के बारे में सब कुछ, सार्वजनिक ज्ञान है, भले ही एक क्रिप्टोसिस्टिम सुरक्षित होना चाहिए"।

जब मैं इस पर हूं, मैं बर्गोफ़स्की के सिद्धांत का भी उल्लेख करता हूं (डिजिटल किले में डैन ब्राउन द्वारा उद्धृत किया गया है): "यदि कोई कंप्यूटर पर्याप्त कुंजियों की कोशिश करता है, तो गणितीय रूप से यह सुनिश्चित किया गया कि वह सही है। एक कोड की सुरक्षा यह नहीं थी कि उसका पास -की अपरिहार्य था लेकिन यह कि अधिकांश लोगों के पास समय या उपकरण नहीं था। "
केवल वह स्वाभाविक नहीं है; दान ब्राउन ने इसे बनाया


मैं आपको सबसे अच्छी सलाह दे सकता हूं: पहिया को फिर से बदलने के लिए प्रलोभन का विरोध करना क्रिप्टोग्राफी आपको लगता है की तुलना में कठिन है

ब्रूस शन्नियर की पुस्तक एप्लाइड क्रिप्टोग्राफी प्राप्त करें और इसे ध्यानपूर्वक पढ़ें


मैं पहिया की फिर से खोज न करने से सहमत हूं

और याद रखना, अस्पष्टता के माध्यम से सुरक्षा कोई भी सुरक्षा नहीं है। यदि आपकी सुरक्षा तंत्र का कोई भी हिस्सा वाक्यांश का प्रयोग करता है तो "यह कभी भी यह नहीं समझ पाएगा!", यह सुरक्षित नहीं है एईएस के बारे में सोचें - एल्गोरिथ्म सार्वजनिक रूप से उपलब्ध है, इसलिए हर कोई जानता है कि यह कैसे काम करता है, और फिर भी कोई इसे तोड़ सकता है।


यहां अभ्यास करें:

http://www.schneier.com/crypto-gram-9910.html#SoYouWanttobeaCryptographer

शुरुआत के लिए, घन हमला कागज ( http://eprint.iacr.org/2008/385 ) को देखो और इसके साथ कुछ एल्गोरिदम को तोड़ने का प्रयास करें। क्रिप्टोग्राफिक योजनाओं को तोड़ने से परिचित होने के बाद, आप उन्हें बनाने में बेहतर बनेंगे।

जहां तक ​​उत्पादन कोड जाता है, मैं दोहराता हूँ जो पहले से ही कहा गया है: बस बाजार में क्या उपलब्ध है इसका उपयोग करें, क्योंकि सभी मुख्यधारा योजनाएं क्रिप्टानलालिसिस के कई दौरों के माध्यम से पहले ही चली गई हैं।


सही जवाब ऐसा कुछ नहीं करना है इस उद्देश्य के लिए कई क्रिप्टोग्राफी पुस्तकालयों में से एक को चुनना और उन्हें अपने आवेदन में उपयोग करना सबसे अच्छा तरीका है। अस्पष्टता के माध्यम से सुरक्षा कभी काम नहीं करती।

क्रिप्टोग्राफी एल्गोरिदम के लिए वर्तमान शीर्ष मानक भी चुनें एन्क्रिप्शन के लिए एईएस, हैशिंग के लिए SHA256 सार्वजनिक कुंजी के लिए एलगैमल

एप्लाइड क्रिप्टोग्राफी पढ़ना एक अच्छा विचार है लेकिन पुस्तक की एक विशाल बहुमत उन कार्यान्वयन का ब्योरा है जिन्हें आपको अधिकतर अनुप्रयोगों के लिए आवश्यकता नहीं होगी।

संपादित करें: संपादन में दी गई नई जानकारी पर विस्तार करने के लिए वर्तमान क्रिप्टोग्राफ़ी के विशाल बहुमत में बहुत जटिल गणित शामिल है। यहां तक ​​कि ब्लॉक सिफर जो बस सभी प्रकार के बिट्स के चारों ओर घूमने लगते हैं, वे समान होते हैं।

इस मामले में फिर एप्लाइड क्रिप्टोग्राफी पढ़ो और उसके बाद पुस्तिका को एप्लाइड क्रिप्टोग्राफ़ी प्राप्त करें जो आप मुफ्त में डाउनलोड कर सकते हैं।

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

कहीं भी जाने के लिए क्रिप्टोग्राफी एक विशाल अकादमिक इतिहास के साथ एक मुश्किल क्षेत्र है। लेकिन अगर आपके पास कौशल है तो यह काफी फायदेमंद है जैसा मैंने पाया है कि यह होना चाहिए।


हर किसी को (भावी पीढ़ी के लिए) गूंज करने के लिए, अपना स्वयं का क्रिप्टो कभी भी लागू नहीं करें लाइब्रेरी का उपयोग करें

उसने कहा, यहां डीईएस को लागू करने का एक लेख है:

http://scienceblogs.com/goodmath/2008/09/des_encryption_part_1_encrypti.php

क्रमांतरण और शोर कई एन्क्रिप्शन एल्गोरिदम के लिए महत्वपूर्ण हैं। बात इतनी ज़्यादा नहीं है कि वह चीजों को अस्पष्ट करे, लेकिन इस प्रक्रिया में कदम जोड़ने के लिए जबरदस्त बल के हमलों को अव्यावहारिक बनाते हैं।

इसके अलावा, एप्लाइड क्रिप्टोग्राफी प्राप्त और पढ़ें। यह एक महान पुस्तक है


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


यह पहले से ही मौत के कारण पीटा जा चुका है कि आपको किसी उत्पाद में घर वाले क्रिप्टो का उपयोग नहीं करना चाहिए। लेकिन मैंने आपका प्रश्न पढ़ लिया है और आप स्पष्ट रूप से बताते हैं कि आप बस मज़े के लिए यह कर रहे हैं। सही geek / हैकर / शैक्षणिक भावना की तरह मुझे लगता है आप जानते हैं कि यह काम करता है, आप जानना चाहते हैं कि यह काम क्यों करता है और यह देखने की कोशिश करें कि क्या आप इसे काम कर सकते हैं।

मैं पूरी तरह से प्रोत्साहित करता हूं और कई कार्यक्रमों के साथ ऐसा करने के लिए बस मज़ेदार के लिए लिखा है मैं इस पोस्ट को पढ़ने का सुझाव देता हूं ( http://rdist.root.org/2008/09/18/dangers-of-amateur-cryptography/ ) "rootlabs" नामक ब्लॉग पर इस पोस्ट में लिंक की एक श्रृंखला है, जिसे आपको बहुत दिलचस्प मिलना चाहिए। कम्प्यूटर साइंस में पीएचडी के साथ गणित / क्रिप्टो में दिलचस्पी रखने वाले और Google के लिए काम करने वाले व्यक्ति ने प्रोग्रामिंग क्रिप्टो पर लेखों की एक श्रृंखला लिखने का फैसला किया। उन्होंने कई गैर-गलतियां कीं जो उद्योग विशेषज्ञ नैट लॉसन ने बताया था।

मेरा सुझाव है कि आप इसे पढ़ा। अगर यह आपको प्रयास करने के लिए प्रोत्साहित नहीं करता है, तो इसमें कोई संदेह नहीं होगा कि आपको अभी कुछ सिखाया जाएगा।

शुभकामनाएँ!


अब तक जो कुछ भी कहा है, उसका विरोध करने के लिए , इसके लिए जाओ! हाँ, आपके कोड में बफर ओवरफ़्लो भेद्यताएं हो सकती हैं, और धीमे, छोटी गाड़ी आदि हो सकती हैं, लेकिन आप इसे मज़े के लिए कर रहे हैं! मैं पूरी तरह से क्रिप्टो के साथ खेलने में पाए जाने वाले मनोरंजक आनंद को समझता हूं।

कहा जा रहा है कि, क्रिप्टोग्राफी सभी पर अस्पष्टता पर आधारित नहीं है (या कम से कम नहीं होना चाहिए)। अच्छा क्रिप्टो काम करना जारी रखेगा, यहां तक ​​कि एक बार ईव ने आपके अस्पष्ट कोड के माध्यम से फंस चुका है और पूरी तरह से समझता है कि क्या हो रहा है। आईई: कई अख़बारों में प्रतिस्थापन कोड पहेलियाँ हैं जो पाठकों ने नाश्ते पर कोशिश करते हैं और इसे तोड़ते हैं। यदि वे पूरे स्ट्रिंग को पीछे करने जैसी बातें करना शुरू करते हैं, तो हाँ, यह कठिन होगा, लेकिन जो रीडर अभी भी इसे तोड़ने में सक्षम होगा,

अच्छा क्रिप्टो उन समस्याओं पर आधारित है जो माना जाता है (कोई भी अभी तक सिद्ध नहीं हुआ, एएफएआईएक) वास्तव में मुश्किल है इसके उदाहरणों में फैक्टरिंग प्राइम्स , लॉग ढूंढना , या वास्तव में किसी अन्य एनपी-पूर्ण समस्या में शामिल हैं

[संपादित करें: स्नैप, इनमें से कोई भी एनपी-पूरा नहीं है। वे सभी गैर-सिद्ध हुए हैं, फिर भी अलग हैं। उम्मीद है कि आप अभी भी मेरी बात देख रहे हैं: क्रिप्टो एक तरफा कार्यों पर आधारित है। वे ऐसे कार्य हैं जो करना आसान है, लेकिन पूर्ववत करने के लिए कठिन हैं अर्थात् दो नंबर बनाम उत्पाद के प्रमुख कारक मिलते हैं। गुड कैड टड्वेहर ]

गणित की वास्तव में अच्छी शाखा के साथ खेलने के लिए आपको अधिक शक्ति, बस याद रखें कि क्रिप्टो उन चीजों पर आधारित है जो कठोर हैं, जटिल नहीं हैं। कई क्रिप्टो एल्गोरिदम, एक बार जब आप वास्तव में उन्हें समझते हैं, मनबहुत सरल होते हैं, लेकिन अभी भी काम करते हैं क्योंकि वे कुछ ऐसी चीज़ों पर आधारित होते हैं जो कठोर है, न सिर्फ चारों ओर अक्षरों को स्विच करना।

नोट: यह कहा जा रहा है के साथ, कुछ एल्गोरिदम अतिरिक्त quirks (स्ट्रिंग सीवर्सल) में जोड़ने के लिए जानवर को मजबूर करने के लिए उन्हें इतना मुश्किल है कि। मुझे एक हिस्सा लगता है जैसे मैं इसे कहीं संदर्भित डीईएस पढ़ता हूं, लेकिन मुझे यह विश्वास नहीं होता ... [संपादित करें: मैं सही था, इस आलेख के 5 वां पैराग्राफ को क्रमबद्ध के संदर्भ में बेकार के रूप में देखें।]

बीटीडब्लू: यदि आपको इससे पहले नहीं मिला है, तो मुझे लगता है कि चाय / XTEA / XXTEA श्रृंखला की एल्गोरिदम ब्याज की होगी।





cryptography