0:00:00.000,0:00:04.010 इस खंड में, मैं व्यवहार में उपयोग किए जाने वाले स्ट्रीम ciphers के कुछ उदाहरण देना चाहता हूँ। 0:00:04.010,0:00:07.072 मैं दो पुराने उदाहरण कि वास्तव में नहीं कर रहे हैं के साथ शुरू कर रहा हूँ वाला 0:00:07.072,0:00:11.017 नई प्रणालियों में इस्तेमाल किया जा माना जाता।[br]लेकिन फिर भी, वे अभी भी काफी रहे हैं 0:00:11.017,0:00:14.164 व्यापक रूप से प्रयोग किया जाता है, और इसलिए मैं सिर्फ इतना है कि आप के साथ परिचित हैं नाम का उल्लेख करना चाहते हैं 0:00:14.164,0:00:19.087 इन अवधारणाओं। पहली धारा सांकेतिक शब्दों मैं बारे में बात करना चाहता हूँ RC4 डिज़ाइन किया, कहा जाता है 0:00:19.087,0:00:23.429 वापस 1987 में। और मैं हूँ केवल देने वाला आप इसे, उच्च स्तरीय वर्णन और फिर 0:00:23.429,0:00:27.818 हम RC4 के कुछ कमजोरियों के बारे में बात करेंगे और इसे उस पर छोड़ दें। तो RC4 लेता है एक 0:00:27.818,0:00:32.702 चर आकार बीज, यहाँ मैं बस एक उदाहरण के रूप में जहां यह 128 करेगी दिया 0:00:32.702,0:00:36.980 बिट्स बीज आकार है, जो तब स्ट्रीम सिफर के लिए महत्वपूर्ण के रूप में इस्तेमाल किया जाएगा के रूप में। 0:00:36.980,0:00:41.738 पहली बात यह है, यह 2048 टुकड़ों में, 128-बिट गुप्त कुंजी फैलता है जो 0:00:41.738,0:00:46.382 कर रहे हैं के रूप में आंतरिक राज्य जनरेटर के लिए इस्तेमाल किया जा करने वाले। और फिर, एक बार यह किया जाता है 0:00:46.382,0:00:51.197 इस विस्तार, यह मूल रूप से एक बहुत ही सरल पाश कार्यान्वित जहां के हर चलना 0:00:51.197,0:00:55.898 इस लूप उत्पादन का एक बाइट outputs. इसलिए, अनिवार्य रूप से, आप के लिए चलाने के जनक कर सकते हैं 0:00:55.898,0:01:00.653 जब तक आप चाहते हैं, और एक ही समय में एक बाइट उत्पन्न। अब RC4 वास्तव में, है जैसा कि मैंने कहा, 0:01:00.653,0:01:05.205 काफी लोकप्रिय। यह HTTPS प्रोटोकॉल में काफी आमतौर पर वास्तव में किया है। 0:01:05.205,0:01:11.888 इन दिनों, उदाहरण के लिए, गूगल में इसकी HTTPS RC4 उपयोग। यह भी रूप में हम WEP में प्रयुक्त है 0:01:11.888,0:01:15.686 अंतिम खंड में, लेकिन ज़ाहिर है WEP में चर्चा की, यह ग़लत तरीके से प्रयोग किया जाता है और 0:01:15.686,0:01:18.861 यह जिस तरह से यह WEP के अंदर इस्तेमाल किया है पूरी तरह से असुरक्षित है। इतना पिछले कुछ वर्षों में, 0:01:18.861,0:01:23.886 कुछ कमजोरियों RC4 में पाया गया है, और एक परिणाम के रूप में, यह अनुशंसित है कि नई परियोजनाओं 0:01:23.886,0:01:28.793 वास्तव में RC4 का उपयोग नहीं, लेकिन बजाय एक और अधिक आधुनिक pseudo-random जनरेटर के रूप में हम करेंगे का उपयोग करें 0:01:28.793,0:01:34.059 खंड के अंत की ओर चर्चा। तो मुझे सिर्फ दो कमजोरियों का उल्लेख। 0:01:34.059,0:01:39.561 तो पहले से एक है, यदि आप पर दूसरी बाइट देखो यह मूल रूप से, की तरह अजीब है 0:01:39.561,0:01:44.630 RC4 के उत्पादन की। यह दूसरा बाहर मुड़ता है बाइट थोड़ा पक्षपाती है। यदि RC4 था 0:01:44.630,0:01:49.780 पूरी तरह से यादृच्छिक, संभावना है कि दूसरी बाइट शून्य के बराबर होना होता है 0:01:49.780,0:01:54.744 ठीक से एक से अधिक 256 होगा। 256 संभव बाइट्स, संभावना है कि 0:01:54.744,0:01:59.646 यह शून्य के एक से अधिक 256 होना चाहिए। यह इसलिए होता है कि के लिए RC4 संभाव्यता 0:01:59.646,0:02:04.486 असल में दो 256, जिसका अर्थ है कि यदि आप RC4 आउटपुट को एन्क्रिप्ट करने के लिए उपयोग पर एक 0:02:04.486,0:02:09.574 संदेश दूसरी बाइट बिल्कुल एन्क्रिप्ट नहीं किए जाने की संभावना है। दूसरे शब्दों में यह हूँ 0:02:09.574,0:02:14.575 XOR-एड दो बार संभावना है कि यह माना जाता है के साथ शून्य के साथ हो। 0:02:14.575,0:02:19.436 तो दो 256, 256 से अधिक एक के स्थान पर।[br]और जिस तरह से मुझे कहना चाहिए कि है 0:02:19.436,0:02:22.849 दूसरी बाइट के बारे में विशेष कुछ नहीं है। यह पहली और तीसरी बाइट्स बाहर हो जाता है 0:02:22.849,0:02:27.818 भी उपलब्ध हैं। और यदि आप कर रहे हैं यह अब कि अनुशंसित है वास्तव में RC4 का उपयोग करने वाले, 0:02:27.818,0:02:32.800 तुम क्या करना चाहिए है मूल रूप से पहले 256 बाइट्स और सिर्फ उत्पादन पर ध्यान न दें 0:02:32.800,0:02:37.246 उत्पादन के जनक बाइट 257 से शुरू करने का उपयोग शुरू करते हैं। पहली जोड़ी 0:02:37.246,0:02:41.241 हो पक्षपातपूर्ण से बाहर कर दिया बाइट्स की, तो आप सिर्फ उन्हें अनदेखा। दूसरा कि हमला 0:02:41.241,0:02:48.482 कि यदि आप एक बहुत ही लंबी पर देखो वास्तव में यह इतना होता RC4 के आउटपुट है की खोज की थी 0:02:48.482,0:02:53.863 आप अनुक्रम 00 मिलने की अधिक संभावना हो कि। दूसरे शब्दों में, आप और अधिक कर रहे हैं 0:02:53.863,0:02:58.970 सोलह बिट्स, हो जाने की संभावना दो बाइट्स शून्य, शून्य, से तुम चाहिए। फिर से, यदि RC4 0:02:58.970,0:03:03.948 पूरी तरह से यादृच्छिक था संभावना शून्य देखने का, शून्य बिल्कुल 1/256 होगा 0:03:03.948,0:03:08.556 चुकता। यह पता चला है RC4 थोड़ा पक्षपाती है और 1/256 cubed पूर्वाग्रह है। यह 0:03:08.556,0:03:13.718 डेटा के कई गीगाबाइट द्वारा उत्पादित कर रहे हैं के बाद इस पूर्वाग्रह बाहर हो जाता है वास्तव में शुरू होता है 0:03:13.718,0:03:18.634 RC4. लेकिन फिर भी, यह कुछ ऐसा है जो जनरेटर की भविष्यवाणी के लिए इस्तेमाल किया जा सकता है 0:03:18.634,0:03:23.120 और निश्चित रूप से यह जनरेटर के उत्पादन में अंतर करने के लिए इस्तेमाल किया जा सकता 0:03:23.120,0:03:28.097 एक सच में यादृच्छिक अनुक्रम से। मूल रूप से तथ्य यह है, कि शून्य शून्य अधिक बार प्रकट 0:03:28.097,0:03:32.414 यह होना चाहिए की तुलना distinguisher है। और फिर पिछले खंड में हम के बारे में बात 0:03:32.414,0:03:36.313 कि मूल रूप से कहना है कि कि WEP, पर हमला करने के लिए इस्तेमाल किया गया से संबंधित कुंजी हमलों 0:03:36.313,0:03:41.078 यदि एक कुंजी है कि एक-दूसरे के निकट से संबंधित हैं का उपयोग करता है तो यह वास्तव में संभव है 0:03:41.078,0:03:45.732 रूट कुंजी को पुनर्प्राप्त करने के लिए। तो इन कमजोरियों कि RC4 के और, के रूप में जाना जाता है एक 0:03:45.732,0:03:50.217 नई प्रणाली वास्तव में नहीं RC4 का उपयोग करें और इसके बजाय का उपयोग करें कि परिणाम, यह सिफारिश की है एक 0:03:50.217,0:03:54.421 आधुनिक pseudo-random जनरेटर। ठीक है, दूसरा उदाहरण मैं तुम्हें देने के लिए चाहता है एक 0:03:54.421,0:03:59.131 बुरी तरह से टूटे हुए स्ट्रीम सिफर डीवीडी फिल्मों को एन्क्रिप्ट करने के लिए उपयोग किया जाता है। जब आप एक डीवीडी खरीदें 0:03:59.131,0:04:03.504 की दुकान में, वास्तविक फिल्म एक स्ट्रीम सिफर बुलाया का उपयोग कर एन्क्रिप्टेड है 0:04:03.504,0:04:07.933 सामग्री प्रणाली, सीएसएस पांव मार। सीएसएस एक बुरी तरह से टूटे हुए स्ट्रीम सिफर निकला, 0:04:07.933,0:04:12.523 और हम बहुत आसानी से इसे तोड़ कर सकते हैं, और मैं तुम्हें दिखाता कैसे करना चाहते हैं का दौरा एल्गोरिथ्म 0:04:12.523,0:04:16.894 काम करता है। हम यह कर रहे हैं ताकि आप एक उदाहरण के एक हमले कलन विधि है, लेकिन में देख सकते हैं 0:04:16.894,0:04:21.435 वास्तव में, वहाँ कई प्रणालियों कि मूल रूप से इस हमले decrypt करने के लिए उपयोग कर रहे हैं 0:04:21.435,0:04:25.749 एन्क्रिप्टेड डीवीडी। तो सीएसएस स्ट्रीम सिफर है पर कुछ उस हार्डवेयर आधारित 0:04:25.749,0:04:30.291 डिजाइनरों की तरह। यह एक हार्डवेयर स्ट्रीम सिफर है कि करने के लिए माना जाता है होना करने के लिए डिज़ाइन किया गया है 0:04:30.291,0:04:34.491 हार्डवेयर में लागू करना आसान हो, और एक तंत्र एक रैखिक फोन किया पर आधारित है 0:04:34.491,0:04:38.749 आपके सुझाव बदलाव रजिस्टर। तो एक रैखिक प्रतिक्रिया बदलाव रजिस्टर मूल रूप से एक रजिस्टर है 0:04:38.749,0:04:43.801 कि जहां प्रत्येक कोशिका एक बिट शामिल कक्षों के होते हैं। तो मूल रूप से 0:04:43.801,0:04:49.046 क्या होता है वहाँ कुछ कोशिकाओं, नहीं सभी कोशिकाओं में इन नल कर रहे हैं कुछ 0:04:49.046,0:04:54.134 पदों के नल कहा जाता है। और फिर इन नल एक XOR में और फिर पर फ़ीड 0:04:54.134,0:04:59.053 हर घड़ी चक्र बदलाव रजिस्टर बाईं ओर पाली। अंतिम बिट से फ़ॉल्स 0:04:59.053,0:05:04.345 और फिर पहले थोड़ा इस XOR का परिणाम हो जाता है। तो आप देख सकते हैं कि 0:05:04.345,0:05:08.703 इस को लागू करने के लिए, एक बहुत ही सरल तंत्र है और हार्डवेयर में बहुत कम लेता है 0:05:08.703,0:05:13.622 ट्रांजिस्टर। बस बदलाव सही, बस बंद पिछले बिट falls और पहले थोड़ा 0:05:13.622,0:05:18.541 पिछले बिट्स XOR बन जाता है। तो इस LFSR के लिए बीज 0:05:18.541,0:05:23.460 असल में, LFSR की प्रारंभिक अवस्था है। 0:05:23.650,0:05:28.538 और यह स्ट्रीम ciphers का एक संख्या के आधार है। तो यहाँ कुछ उदाहरण हैं। तो, के रूप में 0:05:28.538,0:05:33.362 मैं ने कहा कि, दो LFSRs डीवीडी एन्क्रिप्शन का उपयोग करता है।[br]मैं तुम्हें दिखाता हूँ कैसे कि बस काम करता है एक 0:05:33.362,0:05:38.060 दूसरा। जीएसएम एन्क्रिप्शन, इन एल्गोरिदम A51 और A52 कहा जाता है। और है कि 0:05:38.060,0:05:43.456 का उपयोग करता है तीन LFSRs. ब्लूटूथ एन्क्रिप्शन एक कलन विधि कहा जाता है, ई शून्य है। ये सब कर रहे हैं 0:05:43.456,0:05:48.534 धारा ciphers, और चला का उपयोग करता है चार LFSRs. है कि इन सब बाहर बुरी तरह से टूट रहे हैं, 0:05:48.534,0:05:53.245 और वास्तव में वास्तव में विश्वसनीय यातायात को एन्क्रिप्ट करने के लिए नहीं किया जाना चाहिए, लेकिन वे सभी कर रहे हैं 0:05:53.245,0:05:56.705 अब क्या हार्डवेयर परिवर्तन के लिए थोड़ा मुश्किल है, तो यह हार्डवेयर में कार्यान्वित 0:05:56.705,0:06:01.047 करता है। लेकिन इन, सीएसएस, सरलतम वास्तव में एक प्यारा पर हमला, तो चलो है 0:06:01.047,0:06:05.459 मुझे तुम्हें दिखाता कैसे हमले काम करता है। तो, चलो का वर्णन कैसे सीएसएस वास्तव में काम करता है। तो, 0:06:05.459,0:06:11.073 सीएसएस के लिए कुंजी पांच बाइट्स, अर्थात् 40 बिट्स है, पांच बार आठ 40 बिट्स है। इस 0:06:11.073,0:06:15.587 डीवीडी एन्क्रिप्शन था कि वे खुद को केवल 40 बिट्स को सीमित करने के लिए था कारण है 0:06:15.587,0:06:19.941 एक समय जहां अमेरिकी निर्यात विनियमावली केवल निर्यात के लिए अनुमति में बनाया गया 0:06:19.941,0:06:25.086 crpyto एल्गोरिदम जहां केवल 40 बिट्स के लिए महत्वपूर्ण था। तो सीएसएस के डिजाइनर थे 0:06:25.086,0:06:30.206 पहले से ही बहुत, बहुत कम की चाबियाँ तक ही सीमित।[br]सिर्फ 40 बिट कुंजी। तो, अपने डिजाइन काम करता है 0:06:30.206,0:06:35.398 इस प्रकार। असल में, सीएसएस दो LFSR का उपयोग करता है। एक एक 17-सा LFSR है। दूसरे शब्दों में, 0:06:35.398,0:06:40.806 इस रजिस्टर 17 बिट्स होती हैं। और एक अन्य एक 25-बिट LFSR है, 0:06:40.806,0:06:46.647 यह थोड़ी देर, 25-सा LFSR है। और जिस तरह से इन LFSRs वरीयता प्राप्त कर रहे हैं 0:06:46.647,0:06:51.870 इस प्रकार है। तो कुंजी एन्क्रिप्शन के लिए मूल रूप से दिखता निम्नानुसार। 0:06:51.870,0:06:57.669 तुम एक साथ एक शुरुआत है, और आप इसे करने के लिए पहले दो बाइट्स के जोड़ना 0:06:57.669,0:07:02.947 कुंजी। और कि LFSR की प्रारंभिक अवस्था है। 0:07:02.947,0:07:08.256 और फिर दूसरा LFSR मूल रूप से उसी तरह intitialized है। 0:07:08.256,0:07:14.012 एक कुंजी के पिछले तीन बाइट्स concatenated. और है कि 0:07:14.012,0:07:19.889 LFSR की प्रारंभिक अवस्था में भरा हुआ है।[br]आप देख सकते हैं कि पहले दो बाइट्स हैं 0:07:19.889,0:07:25.411 सोलह बिट्स, प्लस अग्रणी एक, कि सत्रह बिट्स है कुल मिलाकर, जबकि दूसरा 0:07:25.411,0:07:31.217 LFSR 24 बिट्स प्लस जो 25 बिट्स है एक है।[br]और तुम नोटिस हम सभी पांच बिट्स का इस्तेमाल किया 0:07:31.217,0:07:36.881 कुंजी। तो फिर ये LFSRs मूल रूप से कर रहे हैं आठ चक्र के लिए चला तो वे उत्पन्न 0:07:36.881,0:07:42.333 आउटपुट के आठ बिट्स। और फिर वे मूल रूप से करता है इस एडर के माध्यम से जाना 0:07:42.333,0:07:48.197 modulo 256 इसके अतिरिक्त है। तो हाँ, यह एक अतिरिक्त बॉक्स, modulo 256 है। वहाँ एक और है 0:07:48.197,0:07:54.325 तकनीकी बात है कि होता है। हम वास्तव में वास्तव में-भी जोड़ा से ले जाना है 0:07:54.325,0:07:59.723 पिछले ब्लॉक। लेकिन यह इतना महत्वपूर्ण नहीं है। है कि नहीं है एक विस्तार तो 0:07:59.723,0:08:04.761 प्रासंगिक। ठीक है, तो हर ब्लॉक, तुम नोटिस हम modulo 256 के अलावा क्या कर रहे हैं और 0:08:04.761,0:08:09.982 हम कैर्री की अनदेखी कर रहे हैं, लेकिन कैर्री मूल रूप से एक शून्य या एक से एक के रूप में जोड़ा गया है 0:08:09.982,0:08:15.147 अगली ब्लॉक के अलावा। ठीक? और फिर मूल रूप से इस दौर प्रति एक बाइट आउटपुट। 0:08:15.147,0:08:20.411 ठीक है, और तब इस बाइट तो है बेशक इस्तेमाल किया, XOR-ed उपयुक्त के साथ 0:08:20.411,0:08:25.167 एन्क्रिप्टेड किया जा रहा है फिल्म की बाइट।[br]ठीक है, तो यह एक बहुत ही सरल स्ट्रीम 0:08:25.167,0:08:29.986 सिफ़र, यह बहुत कम हार्डवेयर को लागू करने के लिए लेता है। यह चलेगा फास्ट, पर भी बहुत 0:08:29.986,0:08:35.830 सस्ते हार्डवेयर और यह सिनेमा एन्क्रिप्ट जाएगा।[br]तोड़ने के लिए आसान है, तो यह यह पता चला है 0:08:35.830,0:08:41.222 में मोटे तौर पर दो सत्रह के लिए समय। अब मुझे बताएंगे कि कैसे। 0:08:41.222,0:08:45.734 मान लीजिए कि आप फिल्मों को रोकना, हम तो यहाँ है, तो एक 0:08:45.734,0:08:50.647 एन्क्रिप्टेड फिल्म decrypt करने के लिए इच्छित।[br]तो चलो कहना है कि यह सब तो एन्क्रिप्टेड 0:08:50.647,0:08:55.279 तुम क्या यहाँ से अंदर है पता नहीं है।[br]तथापि, यह इतना कि सिर्फ इसलिए होता 0:08:55.279,0:08:59.970 डीवीडी एन्क्रिप्शन एमपीईजी फ़ाइलें उपयोग कर रहा है, यह इतना होता है अगर आप के उपसर्ग का पता 0:08:59.970,0:09:04.250 plaintext, चलो बस कहना है शायद यह बीस बाइट्स है। ठीक है, हम जानते हैं यदि आप 0:09:04.250,0:09:08.589 XOR इन दोनों चीजें एक साथ हैं, तो दूसरे शब्दों में, आप यहाँ XOR करते हैं, 0:09:08.589,0:09:13.523 क्या आप प्राप्त करेंगे PRG के प्रारंभिक खंड है। तो, आप मिल जाएगा 0:09:13.523,0:09:18.472 सीएसएस, इस PRG के उत्पादन के उत्पादन की पहली बीस बाइट्स। ठीक है, तो अब 0:09:18.472,0:09:23.986 यहाँ है क्या हम जा रहे हैं करने के लिए। तो हम पहली बीस बाइट्स के उत्पादन की है। अब 0:09:23.986,0:09:31.405 हम तो निम्न कार्य करें। हम सब दो पहले की सत्रह संभव मूल्यों के लिए प्रयास करें 0:09:31.405,0:09:37.088 LFSR. ठीक? तो दो सत्रह संभव मूल्यों के लिए। प्रत्येक मान के लिए इतना तो के लिए 0:09:37.088,0:09:42.622 प्रत्येक इन दो की LFSR की सत्रह प्रारंभिक मानों के लिए, हम कर रहे हैं करने वाले चलाने 0:09:42.622,0:09:47.953 LFSR के लिए बीस बाइट्स, ठीक है? तो हम इस से outputs के बीस बाइट्स जेनरेट करेंगे 0:09:47.953,0:09:53.284 पहली LFSR, संभालने-सत्रह संभव सेटिंग्स को दोनों में से हर एक के लिए। 0:09:53.284,0:09:58.615 अब, याद है हम सीएसएस प्रणाली के पूर्ण उत्पादन है। हम तो है हम क्या कर सकते हैं 0:09:58.615,0:10:03.814 इस उत्पादन है कि हम ले जा सकते हैं। और यह बीस के काटने से घटाना कि हम 0:10:03.814,0:10:08.928 पहली LFSR है, और यदि वास्तव में से पहले की प्रारंभिक राज्य के लिए हमारा अनुमान मिल गया 0:10:08.928,0:10:14.042 की पहली बीस-बाइट आउटपुट है क्या हम मिलना चाहिए LFSR सही है, है 0:10:14.042,0:10:19.222 दूसरी LFSR. है ना? कारण है कि क्या के उत्पादन में सीएसएस परिभाषा द्वारा 0:10:19.222,0:10:24.501 प्रणाली है। अब, यह एक 20-बाइट क्रम में खोज, यह बहुत आसान है कि बाहर जाता है 0:10:24.501,0:10:29.763 बताने के लिए कि क्या इस 20-बाइट अनुक्रम से एक 25-बिट LFSR या नहीं आया। यदि यह 0:10:29.763,0:10:33.561 नहीं था, तो हम जानते हैं कि हमारा अनुमान है कि 17-बिट LFSR के लिए था 0:10:33.561,0:10:37.416 ग़लत और फिर हम अगले अनुमान के लिए 17-बिट LFSR करने के लिए आगे बढ़ने और 0:10:37.416,0:10:41.904 अगले और इतने पर लगता है और आगे।[br]अंततः जब तक हम सही प्रारंभिक मारा 0:10:41.904,0:10:46.937 राज्य के लिए 17-बिट LFSR, और फिर हम वास्तव में मिल जाएगा है, हम देखेंगे कि 0:10:46.937,0:10:51.969 25-बिट LFSR के लिए उत्पादन 20 बाइट्स कि हम उम्मीदवार के रूप में मिलता है 0:10:51.969,0:10:56.936 वास्तव में एक संभव के लिए एक 25-बिट LFSR आउटपुट। और फिर, न केवल हम है जाएगा 0:10:56.936,0:11:02.164 सही प्रारंभिक राज्य सीखा 17-बिट LFSR के लिए, हम भी करना होगा 0:11:02.164,0:11:07.523 सही प्रारंभिक राज्य के 25-बिट LFSR के सीखा है। और फिर हम भविष्यवाणी कर सकते हैं 0:11:07.523,0:11:12.796 शेष सीएसएस की, और जाहिर है, कि, हम फिर से बाकी डीक्रिप्ट करें कर सकते हैं का उपयोग करके outputs 0:11:12.796,0:11:17.565 फिल्म। हम वास्तव में शेष plaintext पुनर्प्राप्त कर सकते हैं। ठीक. यह है 0:11:17.565,0:11:22.335 चीजें हैं जो हम से पहले के बारे में बात की थी। तो, मैं इस ने कहा कि एक छोटे जल्दी, लेकिन उम्मीद है कि, 0:11:22.335,0:11:27.331 यह स्पष्ट था। हम भी स्ट्रीम का इस प्रकार पर एक होमवर्क अभ्यास कर रहे हो जा रहे हैं 0:11:27.331,0:11:31.444 ciphers और आप की तरह कैसे इन हमले एल्गोरिदम के बिंदु मिल जाएगा 0:11:31.444,0:11:36.018 काम करते हैं। और मैं उल्लेख करना चाहिए कि वहाँ कई ओपन सोर्स प्रणालियों रहे हैं अब जब कि वास्तव में 0:11:36.018,0:11:41.453 सीएसएस-एन्क्रिप्टेड डेटा decrypt करने के लिए इस विधि का उपयोग करें। ठीक है, तो अब हम है कि दो देखा 0:11:41.453,0:11:45.888 कमजोर उदाहरण, बेहतर उदाहरण के लिए, और विशेष रूप से बेहतर पर चलो 0:11:45.888,0:11:49.370 pseudo-random जनरेटर जो परियोजना eStream कहा जाता है से आते हैं। यह है एक 0:11:49.370,0:11:55.556 कि 2008 में संपन्न हुआ परियोजना है, और वे मूल रूप से पाँच अलग अलग स्ट्रीम अर्हता प्राप्त 0:11:55.556,0:12:00.207 ciphers, लेकिन यहां मैं सिर्फ एक ही पेश करना चाहता हूँ। तो के लिए सभी मापदंडों का पहली बार 0:12:00.207,0:12:04.029 इन स्ट्रीम ciphers क्या हम करने के लिए इस्तेमाल कर रहे हैं से थोड़ा अलग हैं। तो इन 0:12:04.029,0:12:08.340 स्ट्रीम सामान्य रूप में वे एक बीज है ciphers.[br]लेकिन इसके साथ ही वे भी है, क्या है 0:12:08.340,0:12:12.821 नामक एक अस्थायी रूप से है और हम देखेंगे क्या के लिए एक अस्थायी रूप से प्रयोग किया जाता है बस एक मिनट में। तो 0:12:12.821,0:12:17.487 वे एक बीज और एक अस्थायी रूप से दो जानकारी ले लो।[br]हम देखेंगे क्या अस्थायी रूप से लिए में इस्तेमाल किया है 0:12:17.487,0:12:21.274 बस एक दूसरा। और बेशक वे एक बहुत बड़े उत्पादन, यहाँ है तो एन का उत्पादन 0:12:21.274,0:12:26.603 बहुत, बहुत, बहुत से बड़ा एस। जब मैं अस्थायी रूप से कहते हैं, अब, मैं क्या मतलब है एक मूल्य है कि 0:12:26.603,0:12:31.218 कभी नहीं के रूप में लंबे समय के रूप में कुंजी तय हो गई है दोहराने जा रहा। और मैं कि अधिक में समझाता हूँ 0:12:31.218,0:12:35.400 बस एक दूसरे में विस्तार। लेकिन जैसा कि एक अद्वितीय कभी मूल्य अभी के लिए, बस के बारे में सोच 0:12:35.400,0:12:40.527 के रूप में लंबे समय के रूप में एक ही चाबी है को दोहराता है।[br]और तो जाहिर है एक बार आप इस PRG है, 0:12:40.527,0:12:45.357 तुम एन्क्रिप्ट जाएगा, जैसा कि आप देख, तुम एक स्ट्रीम सिफर सिर्फ पहले के रूप में, अभी के अलावा 0:12:45.357,0:12:49.955 PRG लेता है के रूप में इनपुट दोनों कुंजी और अस्थायी रूप से। और अस्थायी रूप से की संपत्ति है 0:12:49.955,0:12:56.350 कि जोड़ी, k अल्पविराम r, प्रमुख अल्पविराम का उपनाम, कभी नहीं है, तो-कभी नहीं दोहराता है। यह है 0:12:56.350,0:13:03.096 कभी नहीं एक बार से अधिक उपयोग किया। तो लब्बोलुआब यह है कि आप महत्वपूर्ण, पुनः प्रयोग पुनः प्रयोग कर सकते हैं 0:13:03.096,0:13:09.710 कुंजी है, क्योंकि कश्मीर और आर केवल अस्थायी रूप से जोड़ी अद्वितीय है, क्योंकि बनाता है 0:13:09.710,0:13:16.135 एक बार इस्तेमाल किया है। मैं कहता हूँ वे अद्वितीय हैं। ठीक है, तो यह अस्थायी रूप से गया है की तरह एक प्यारा छल कि 0:13:16.135,0:13:21.541 हमें हर बार एक नया कुंजी को हिलाने की परेशानी बचाता है। ठीक है, तो विशेष रूप से 0:13:21.541,0:13:26.000 उदाहरण के eStream कि मैं तुम्हें दिखाने के लिए चाहता हूँ से साल्सा बीस कहा जाता है। यह है एक 0:13:26.000,0:13:30.292 स्ट्रीम सिफर दोनों implementations के सॉफ्टवेयर और हार्डवेयर के लिए डिज़ाइन की गई है 0:13:30.292,0:13:33.385 implementations. यह दिलचस्प की तरह है।[br]तुम्हें पता है कि कुछ स्ट्रीम ciphers कर रहे हैं 0:13:33.385,0:13:38.763 RC4 जैसे सॉफ्टवेयर के लिए डिज़ाइन किया गया।[br]सब कुछ वह करता है बनाने के लिए डिज़ाइन किया गया है 0:13:38.763,0:13:42.689 जबकि अन्य धारा ciphers के लिए तैयार कर रहे हैं तेजी से, चलाने के सॉफ्टवेयर कार्यान्वयन 0:13:42.689,0:13:48.143 हार्डवेयर, सीएसएस, विशेष रूप से हार्डवेयर बनाने के लिए डिज़ाइन किया गया है एक LFSR का उपयोग कर की तरह 0:13:48.143,0:13:50.963 implementations बहुत सस्ते। यह भी है, यह है कि इस बारे में अच्छी बात है 0:13:50.963,0:13:55.008 इतना है कि यह दोनों यह हार्डवेयर और अपने सॉफ्टवेयर में लागू करने के लिए आसान है डिज़ाइन किया गया 0:13:55.008,0:13:59.747 कार्यान्वयन भी बहुत तेज है। तो मुझे समझाने की कैसे साल्सा काम करता है। खैर, साल्सा 0:13:59.747,0:14:05.130 या तो 128 या 256 बिट कुंजी हो जाता है। मैं केवल साल्सा के 128-बिट संस्करण समझाता हूँ। 0:14:05.130,0:14:11.244 तो यह बीज है। और फिर यह भी एक अस्थायी रूप से, बस से पहले, जो के रूप में लगते हैं 0:14:11.244,0:14:15.425 64 बिट्स होना होता है। और फिर इसे एक बड़े आउटपुट उत्पन्न करेंगे। अब, यह कैसे होता है 0:14:15.425,0:14:21.060 वास्तव में काम करते हो? खैर, समारोह ही इस प्रकार परिभाषित किया गया है। असल में, को देखते हुए 0:14:21.060,0:14:26.378 कुंजी और अस्थायी रूप से, यह एक बहुत लंबा है, ठीक है, एक लंबे समय कूट-यादृच्छिक उत्पन्न करेगा 0:14:26.378,0:14:31.222 , आवश्यक के रूप में लंबे समय अनुक्रम। और यह कि मैं द्वारा निरूपित हूँ इस समारोह का उपयोग करके करता हूँ 0:14:31.222,0:14:35.653 एच. एच इस फ़ंक्शन तीन आदानों लेता है।[br]मूल रूप से कुंजी। ठीक है, बीज k, 0:14:35.653,0:14:40.498 nonce r, और उसके बाद कदम से कदम करने के लिए वेतन वृद्धि एक काउंटर। तो यह हो जाता है 0:14:40.498,0:14:45.263 शून्य से एक, दो, तीन, चार के रूप में लंबे समय के रूप में हम [सुनाई] किया जा करने के लिए। ठीक? तो बुनियादी तौर पर, 0:14:45.263,0:14:49.956 इस k आर पर इस h का मूल्यांकन द्वारा, लेकिन इस incrementing काउंटर का उपयोग करना, हम प्राप्त कर सकते हैं एक 0:14:49.956,0:14:54.882 अनुक्रम कि जैसे हम चाहते हैं लंबी है। तो मैं सभी को यह करना है का वर्णन कैसे यह फ़ंक्शन 0:14:54.882,0:14:59.460 एच काम करता है। अब, मुझे कि यहाँ आप के लिए करते हैं।[br]जिस तरह से यह काम करता है इस प्रकार है। खैर, हम 0:14:59.460,0:15:04.693 कुछ काफी बड़ी है जो 64 बाइट्स में अमेरिका के विस्तार के द्वारा बंद शुरू 0:15:04.693,0:15:10.156 लंबे समय है, और हम कि निम्नानुसार है। मूल रूप से हम एक निरंतर की शुरुआत में इतनी छड़ी 0:15:10.156,0:15:15.552 ताओ शून्य है, इन चार बाइट्स कर रहे हैं, यह तो एक चार बाइट स्थिरांक है युक्ति के लिए 0:15:15.552,0:15:20.611 साल्सा मूल रूप से आप ताओ शून्य के लिए मान देता। फिर हम कश्मीर डाल जिसमें है 0:15:20.611,0:15:25.467 सोलह बाइट्स। तो फिर हम एक और लगातार डाल दिया। फिर, यह चार बाइट्स है। और 0:15:25.467,0:15:30.795 निर्दिष्ट करता है जैसा कि मैंने कहा, कल्पना मूलतः क्या लगातार यह तय है जो। फिर हम डाल 0:15:30.795,0:15:37.435 अस्थायी रूप से जो आठ बाइट्स है गया। तो हम सूचकांक में डाल दिया। इस काउंटर शून्य है, 0:15:37.435,0:15:43.063 एक, दो, तीन, चार, जो एक और आठ बाइट्स है। तो फिर हम एक और लगातार डाल 0:15:43.063,0:15:49.056 जो एक और चार बाइट्स है ताऊ दो।[br]हम प्रमुख डाल तो फिर, यह एक और है 0:15:49.056,0:15:54.714 सोलह बाइट्स। और फिर अंत में हम तीसरे निरंतर, ताऊ तीन, जो है डाल 0:15:54.714,0:15:59.948 एक और चार बाइट्स। ठीक है तो मैं ने कहा, यदि आप इन तक राशि के रूप में, आप देखते हैं कि आप 64 मिल 0:15:59.948,0:16:05.249 बाइट्स। तो बुनियादी तौर पर हम कुंजी और अस्थायी रूप से और काउंटर में 64 विस्तार है 0:16:05.249,0:16:10.886 बाइट्स। मूल रूप से प्रमुख दोहराया जाता है दो बार मुझे लगता है। और फिर हम क्या हम पर लागू है एक 0:16:10.886,0:16:16.321 ताकि हम इस समारोह में, छोटे h लागू समारोह में, मैं इस कार्यात्मक थोड़ा एच. ठीक है, फोन करता हूँ। 0:16:16.321,0:16:21.659 और यह एक समारोह है कि एक के लिए एक है तो यह 64 बाइट्स के लिए 64 बाइट्स नक्शे है। यह है एक 0:16:21.659,0:16:26.005 पूरी तरह से invertible समारोह, ठीक है? इसलिए इस समारोह एच है, के रूप में मैं कहता हूँ, यह है एक 0:16:26.005,0:16:30.260 invertable समारोह। तो इनपुट दिया तुम उत्पादन प्राप्त कर सकते हैं और देखते हुए 0:16:30.260,0:16:34.906 आउटपुट तुम वापस इनपुट के लिए जा सकते हैं। और इसे बनाया है विशेष रूप से यह किया है, तो एक - आराम से 0:16:34.906,0:16:39.553 हार्डवेयर और बी-किसी x86 पर में लागू करने के लिए, यह बेहद क्योंकि लागू करना आसान है 0:16:39.553,0:16:44.199 आप की जरूरत है ऐसा करने के लिए सेट करें जो सभी आपरेशनों का समर्थन करता है इस SSE2 अनुदेश x 86 है 0:16:44.199,0:16:48.622 इस समारोह के लिए। यह बहुत, बहुत तेज है।[br]एक परिणाम के रूप में, साल्सा एक बहुत तेजी से धारा है 0:16:48.622,0:16:52.764 सायफर। और फिर यह मूल रूप से फिर से है। तो यह इस पर लागू होता है 0:16:52.764,0:16:57.744 फ़ंक्शन एच फिर से है और यह एक और 64 बाइट्स हो जाता है। और तो और आगे, मूल रूप से पर 0:16:57.744,0:17:05.318 यह इस दस बार करता है। पूरी बात यहाँ, तो कह दोहराता है दस बार, तो ठीक है 0:17:05.318,0:17:17.961 मूल रूप से ज दस बार लागू होते हैं। और तब से ही, यह वास्तव में नहीं काफी यादृच्छिक है। 0:17:17.961,0:17:22.144 यह है नहीं करने वाले देखो यादृच्छिक क्योंकि एच पूरी तरह से invertable है, जैसे हम ने कहा। तो दी 0:17:22.144,0:17:25.521 इस अंतिम उत्पादन, यह बहुत आसान है बस एच पलटना और फिर मूल के लिए वापस जाने के लिए है 0:17:25.521,0:17:31.831 आदानों और फिर परीक्षण है कि इनपुट सही संरचना है। तो तुम एक और क्या 0:17:31.831,0:17:36.979 बात है, जो मूल रूप से XOR करने के लिए जानकारी और अंतिम outputs है। वास्तव में, 0:17:36.979,0:17:42.405 क्षमा करें. यह एक XOR नहीं है। यह वास्तव में एक अतिरिक्त है। तो तुम एक अतिरिक्त शब्द क्या किया 0:17:42.405,0:17:47.762 शब्द। ताकि आप चार बाइट्स में एक शब्द शब्द से इसके अलावा वहाँ रहे हैं अगर 64 बाइट्स, एक 0:17:47.762,0:17:52.980 समय, और अंत में आप 64-बाइट आउटपुट मिल, और यह बात है। कि पूरे है 0:17:52.980,0:17:57.175 pseudo-random जनरेटर। कि इतना, कि पूरे समारोह, थोड़ा h है। और मैं के रूप में 0:17:57.175,0:18:01.758 समझाया, इस पूरे निर्माण यहाँ समारोह है बड़ी एच. और तब आप का मूल्यांकन 0:18:01.758,0:18:06.009 काउंटर incrementing द्वारा बड़ी एच मैं शून्य, एक, दो, तीन से बाद। और है कि 0:18:06.009,0:18:10.408 तुम एक pseudo-random दृश्य है कि लंबे समय के रूप के रूप में आप इसे होने की जरूरत है दे देंगे। और 0:18:10.408,0:18:15.325 असल में, वहाँ इस पर कोई signifigant हमले कर रहे हैं। यह सुरक्षा है कि 0:18:15.325,0:18:20.371 बहुत करीब दो 128 के लिए। हम देखेंगे क्या इसका मतलब है कि और अधिक ठीक पर बाद में। 0:18:20.371,0:18:25.417 यह एक बहुत तेजी से स्ट्रीम बीजलेख, दोनों हार्डवेयर और सॉफ्टवेयर में है। और, के रूप में दूर के रूप में 0:18:25.417,0:18:30.431 हम बता सकते हैं, यह एक स्ट्रीम सिफर के लिए आवश्यक के रूप में अप्रत्याशित हो सकता है लगता है। तो मैं 0:18:30.431,0:18:34.797 है कि eStream परियोजना वास्तव में पांच धारा ciphers की तरह कहना चाहिए 0:18:34.797,0:18:39.395 यह। क्योंकि मुझे लगता है कि यह सबसे अधिक सुरुचिपूर्ण है मैं केवल साल्सा का फैसला किया। लेकिन मैं तुम्हें दे सकते हैं 0:18:39.395,0:18:44.053 कुछ प्रदर्शन यहाँ संख्या। तो आप देख सकते हैं, ये प्रदर्शन नंबर पर हैं एक 0:18:44.053,0:18:48.768 2.2 gigahertz, तुम्हें पता है, x 86 मशीन लिखें।[br]और आप देख सकते हैं कि RC4 वास्तव में है 0:18:48.768,0:18:53.017 सबसे धीमी। क्योंकि अनिवार्य रूप से, अच्छी तरह से यह सचमुच का लाभ ले करता है 0:18:53.017,0:18:57.475 हार्डवेयर। यह केवल बाइट संचालन करता है।[br]और तो बर्बाद चक्र का एक बहुत वहाँ है कि 0:18:57.475,0:19:01.182 इस्तेमाल किया जा रहा नहीं कर रहे हैं। E-स्ट्रीम उम्मीदवारों, दोनों साल्सा और अन्य लेकिन 0:19:01.182,0:19:05.202 उम्मीदवार Sosemanuk बुलाया। मैं कहना है कि इन eStream फाइनल कर रहे हैं चाहिए। इन कर रहे हैं 0:19:05.202,0:19:09.588 वास्तव में धारा ciphers कि eStream परियोजना द्वारा अनुमोदित कर रहे हैं। आप देख सकते हैं कि 0:19:09.588,0:19:13.712 वे एक महत्वपूर्ण दर हासिल किया है।[br]इस 643 मेगाबाइट प्रति सेकंड इस पर है 0:19:13.712,0:19:18.150 वास्तुकला, एक फिल्म और इन के लिए पर्याप्त से अधिक वास्तव में काफी प्रभावशाली हैं 0:19:18.150,0:19:22.432 दरों। और तुम तो अब दो पुराने स्ट्रीम ciphers कि नहीं होना चाहिए के उदाहरण देखा है 0:19:22.432,0:19:26.661 , उन स्ट्रीम ciphers पर हमले सहित करते थे।[br]तुम्हें देखा है क्या आधुनिक स्ट्रीम ciphers 0:19:26.661,0:19:30.480 की तरह के साथ इस अस्थायी रूप से देखो। और आप के लिए इन प्रदर्शन संख्या देखना 0:19:30.480,0:19:34.546 तो तुम एक के इस्तेमाल कर सकते हैं अगर आप की जरूरत है एक स्ट्रीम सिफर आधुनिक स्ट्रीम ciphers 0:19:34.546,0:19:37.991 eStream फाइनल। विशेष रूप से आप साल्सा की तरह कुछ का उपयोग कर सकते।