در این مطلب، ویدئو رمزنگاری: هیل رمز پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:20:33
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,060 –> 00:00:02,669
سلام به همه و خوش آمدید، بنابراین در
2
00:00:02,669 –> 00:00:04,620
این ویدیو می خواهیم رمز تپه را
3
00:00:04,620 –> 00:00:07,080
رمزگذاری کنیم ممکن است کمی چالش برانگیز باشد
4
00:00:07,080 –> 00:00:08,730
زیرا رمز هیل کمی
5
00:00:08,730 –> 00:00:11,519
پیچیده است اما ما تمام تلاش خود را می کنیم و
6
00:00:11,519 –> 00:00:16,020
امیدوارم موفق شویم، بنابراین اول از
7
00:00:16,020 –> 00:00:18,210
همه ما می خواهیم use کتابخانه numpad
8
00:00:18,210 –> 00:00:20,520
است، بنابراین باید numpy را به عنوان NP وارد کنیم
9
00:00:20,520 –> 00:00:23,039
و سپس باید از
10
00:00:23,039 –> 00:00:25,350
الگوریتم اقلیدسی توسعه یافته استفاده کنیم و یکی از راههایی که میتوانیم
11
00:00:25,350 –> 00:00:28,019
انجام دهیم این است که میتوانیم از
12
00:00:28,019 –> 00:00:31,949
واردات سیدی بهعنوان مثال CD و نحوه دریافت آن فقط توسط
13
00:00:31,949 –> 00:00:36,059
افراد نصب شود. به عنوان مثال سی دی و سپس ما
14
00:00:36,059 –> 00:00:40,110
باید یک الفبا داشته باشیم و سپس وقتی همه آنها
15
00:00:40,110 –> 00:00:42,420
می خواهند این است که ما به یک
16
00:00:42,420 –> 00:00:45,329
فرهنگ لغت نیاز داریم تا بتوانیم یک حرف
17
00:00:45,329 –> 00:00:48,000
از الفبای خود را به a به یک عدد یا یک
18
00:00:48,000 –> 00:00:50,930
نمایه نگاشت کنیم و سپس می خواهیم بتوانیم
19
00:00:50,930 –> 00:00:56,370
آن ایندکس را با یک حرف عوض می کنیم تا ما یک
20
00:00:56,370 –> 00:01:00,449
حرف به فرهنگ لغت نمایه می خواهیم و یکی از
21
00:01:00,449 –> 00:01:07,320
راه هایی که می توانیم این کار را انجام دهیم این است که
22
00:01:07,320 –> 00:01:09,350
این کار این است که تابع
23
00:01:09,350 –> 00:01:12,689
zip اولین عنصر در حروف الفبا را به
24
00:01:12,689 –> 00:01:15,330
اولین عنصر محدوده لنز نگاشت می کند.
25
00:01:15,330 –> 00:01:17,729
حروف الفبا بنابراین در این مورد
26
00:01:17,729 –> 00:01:21,450
خواهد بود نقشه برداری خواهد شد به 0 B به
27
00:01:21,450 –> 00:01:24,630
1 و غیره نگاشت می شود و سپس ما فقط از آن یک فرهنگ
28
00:01:24,630 –> 00:01:28,650
لغت می سازیم و سپس می خواهیم
29
00:01:28,650 –> 00:01:32,909
فرهنگ لغت دیگری داشته باشیم که نقشه نمایه ای از
30
00:01:32,909 –> 00:01:35,579
یک حرف است و این کار را اساساً با
31
00:01:35,579 –> 00:01:38,460
انجام همان کار انجام می دهیم اما آن را برعکس انجام می دهیم.
32
00:01:38,460 –> 00:01:42,810
و سپس کاری که میخواهیم انجام دهیم،
33
00:01:42,810 –> 00:01:45,240
در واقع در اینجا کمی تقلب
34
00:01:45,240 –> 00:01:52,259
میکنم، قبلاً این کار را انجام دادهام، بنابراین
35
00:01:52,259 –> 00:01:54,899
این کد را کپی میکنم و
36
00:01:54,899 –> 00:01:57,509
در عوض آن را مرور میکنم، اما این
37
00:01:57,509 –> 00:02:01,320
کمی از آنچه است موضوع پیچیده در
38
00:02:01,320 –> 00:02:04,700
خز دامنه این است که من میخواستم
39
00:02:04,700 –> 00:02:07,469
معکوس یک ماتریس را در یک مدول خاص پیدا کنم،
40
00:02:07,469 –> 00:02:11,008
بنابراین بیایید آن را مرور کنیم، اولین
41
00:02:11,008 –> 00:02:12,840
قدم این است که میخواهیم یک
42
00:02:12,840 –> 00:02:14,010
تعیینکننده پیدا کنیم،
43
00:02:14,010 –> 00:02:17,590
بنابراین کاری که انجام میدهیم این است که فقط
44
00:02:17,590 –> 00:02:20,349
از PI استفاده مجدد از آنها استفاده کنیم. جبر خطی نقطهای
45
00:02:20,349 –> 00:02:22,409
و سپس تعیینکننده یک
46
00:02:22,409 –> 00:02:25,060
ماتریس خاص را پیدا میکنیم که این ماتریس را وارد میکنیم
47
00:02:25,060 –> 00:02:28,150
و سپس میخواهیم آن را گرد کنیم زیرا
48
00:02:28,150 –> 00:02:30,489
برخی از آنها به دلیل اینکه ماتریس رمز سلامتی
49
00:02:30,489 –> 00:02:33,609
که استفاده میکنیم عدد صحیح خواهد بود اما
50
00:02:33,609 –> 00:02:35,769
به دلیل خطاهای گرد عددی
51
00:02:35,769 –> 00:02:37,150
ممکن است چیزی دریافت کنیم که یک
52
00:02:37,150 –> 00:02:39,489
عدد صحیح نیست پس آن را گرد می کنیم و مطمئن
53
00:02:39,489 –> 00:02:45,400
می شویم که عدد صحیح است و سپس کاری که می خواهیم
54
00:02:45,400 –> 00:02:49,540
انجام دهیم این است که می خواهیم
55
00:02:49,540 –> 00:02:57,280
معکوس دترمینان را در یک ماژول خاص به
56
00:02:57,280 –> 00:03:01,060
درستی پیدا کنیم تا بتوانیم به
57
00:03:01,060 –> 00:03:04,889
خوبی بدانیم که این تعیین کننده در
58
00:03:04,889 –> 00:03:10,150
مدول خاص چیست و از آن استفاده می کنیم. تابع GCD
59
00:03:10,150 –> 00:03:13,359
برای جایی که ما
60
00:03:13,359 –> 00:03:17,769
تعیین کننده و مدول را ارسال می کنیم و سپس
61
00:03:17,769 –> 00:03:22,030
آن مدول مدول را نیز می گیریم ممکن
62
00:03:22,030 –> 00:03:23,739
است انتخاب نامناسبی برای نام متغیر باشد اما
63
00:03:23,739 –> 00:03:26,620
به هر حال بعد از اینکه متوجه شدیم کاری که می
64
00:03:26,620 –> 00:03:29,489
خواهم انجام دهم یافتن مدول ماتریس است.
65
00:03:29,489 –> 00:03:32,919
معکوس و چیزی که با آن شروع می
66
00:03:32,919 –> 00:03:37,680
کنیم این است که ماتریس را numpy می گیریم و آن را معکوس می کنیم و
67
00:03:37,680 –> 00:03:39,549
یک چیزی که در ویدیوی قبلی نشان دادم این
68
00:03:39,549 –> 00:03:44,879
است که معکوس یک ماتریس تعداد معکوس آن ماتریس است
69
00:03:44,879 –> 00:03:48,280
70
00:03:48,280 –> 00:03:53,620
بنابراین بیشتر
71
00:03:53,620 –> 00:03:57,400
معکوس تعیین کننده است. بار آن
72
00:03:57,400 –> 00:03:59,049
ماتریس پس از 1 بر روی دترمینان
73
00:03:59,049 –> 00:04:01,540
و سپس ضرب الحاقی از آن
74
00:04:01,540 –> 00:04:04,509
ماتریس، بنابراین اگر پس از آن ماتریس را ضرب
75
00:04:04,509 –> 00:04:06,669
کنیم، آنگاه چیزی که در اینجا
76
00:04:06,669 –> 00:04:12,549
به
77
00:04:12,549 –> 00:04:17,529
دست می آوریم فقط همان الحاق است، آن را گرد می کنیم و سپس مدول را اعمال می کنیم.
78
00:04:17,529 –> 00:04:20,709
عنصر عاقلانه برای هر یک از موارد موجود در آنها
79
00:04:20,709 –> 00:04:24,340
در ماتریس است که الحاق خواهد بود
80
00:04:24,340 –> 00:04:25,550
81
00:04:25,550 –> 00:04:30,199
و سپس ما می خواهیم زمان هایی که
82
00:04:30,199 –> 00:04:33,800
آنها تعیین کننده در آن
83
00:04:33,800 –> 00:04:35,569
ماژول های خاص هستند که در مرحله دو محاسبه کرده
84
00:04:35,569 –> 00:04:38,599
ایم و سپس با آن کار تمام می شود. part
85
00:04:38,599 –> 00:04:42,229
و ما تابعی داریم که یک
86
00:04:42,229 –> 00:04:47,330
ماژول مدول ماتریس را کاملاً معکوس
87
00:04:47,330 –> 00:04:49,819
برمی گرداند و سپس بیایید یک کد اسکلت سریع
88
00:04:49,819 –> 00:04:51,710
از آنچه می خواهم در رمز جهنمی انجام دهم انجام دهیم،
89
00:04:51,710 –> 00:04:56,050
بنابراین می خواهیم
90
00:04:56,050 –> 00:05:00,349
پیامی را با یک کلید مخفی خاص
91
00:05:00,349 –> 00:05:05,300
K رمزگذاری کنیم. یک ماتریس است و می خواهیم در
92
00:05:05,300 –> 00:05:06,919
این تابع انجام دهیم این است که می خواهیم ابتدا
93
00:05:06,919 –> 00:05:09,190
پیام را به دو عدد
94
00:05:09,190 –> 00:05:15,530
بسازیم، همچنین نمی خواهیم آن را به
95
00:05:15,530 –> 00:05:20,060
اندازه ماتریس K تقسیم کنیم و این به این دلیل است که
96
00:05:20,060 –> 00:05:22,190
ما بتوانیم ماتریس را انجام دهیم.
97
00:05:22,190 –> 00:05:25,699
ضرب را میخواهم از طریق
98
00:05:25,699 –> 00:05:30,020
هر پیام جزئی تکرار کنم
99
00:05:30,020 –> 00:05:34,699
که وقتی پیام خود را تقسیم میکنیم
100
00:05:34,699 –> 00:05:39,099
و با استفاده از K ضربدر P و
101
00:05:39,099 –> 00:05:45,349
مدول 26 رمزگذاری میکنیم، ایجاد میشود و سپس میخواهیم آن
102
00:05:45,349 –> 00:05:53,930
را به متن بازگردانیم بله، بنابراین بیایید از آنجا شروع کنیم
103
00:05:53,930 –> 00:05:56,750
یا در واقع میخواهیم
104
00:05:56,750 –> 00:05:59,979
رمزگشایی داشته باشید که یک c طول می کشد iphertext و
105
00:05:59,979 –> 00:06:04,930
این معکوس K معکوس را می گیرد و
106
00:06:04,930 –> 00:06:07,669
ما می خواهیم تقریباً همان کار را انجام دهیم
107
00:06:07,669 –> 00:06:11,020
اما برعکس، بنابراین می خواهم
108
00:06:11,020 –> 00:06:15,620
متن رمزی را در دو عدد بسازم و می خواهیم
109
00:06:15,620 –> 00:06:20,090
آن را به اندازه ماتریس معکوس K تقسیم کنیم
110
00:06:20,090 –> 00:06:23,750
که یکسان خواهد بود زیرا این
111
00:06:23,750 –> 00:06:28,930
یک ماتریس n در n است، بنابراین میتوانیم
112
00:06:28,930 –> 00:06:32,810
ضرب ماتریس و سپس آنچه را
113
00:06:32,810 –> 00:06:36,600
در هر متن رمزی جزئی تکرار کنیم
114
00:06:36,600 –> 00:06:41,580
و با استفاده از معکوس K ضربدر C
115
00:06:41,580 –> 00:06:46,950
و سپس مدول 26
116
00:06:46,950 –> 00:06:55,710
رمزگشایی کنیم و سپس میخواهیم اعداد را به متن رمزگشایی نگاشت کنیم و
117
00:06:55,710 –> 00:06:58,650
سپس میخواهیم یک تابع اصلی که
118
00:06:58,650 –> 00:07:01,850
فقط این رمزگذاری شده و رمزگشایی شده را اجرا می
119
00:07:01,850 –> 00:07:04,950
کند خوب است، بنابراین اول از همه چیزی که می خواهیم این است که
120
00:07:04,950 –> 00:07:09,420
می خواهیم یک رشته خالی داشته باشیم اما آیا ما
121
00:07:09,420 –> 00:07:11,490
در جایی که متن رمزگذاری شده را ذخیره می کنیم
122
00:07:11,490 –> 00:07:16,440
و سپس می خواهیم
123
00:07:16,440 –> 00:07:18,240
راهی برای ذخیره اعداد داشته باشیم، بیایید
124
00:07:18,240 –> 00:07:23,730
پیام را به صورت اعداد و نحوه انجام این کار به این صورت است
125
00:07:23,730 –> 00:07:25,380
که میتوانیم فقط یک
126
00:07:25,380 –> 00:07:30,360
پیام چهار حرفی را مرور کنیم و سپس
127
00:07:30,360 –> 00:07:32,880
میتوانیم آن را به لیست
128
00:07:32,880 –> 00:07:41,240
شمارههای پیامرسانی اضافه کنیم تا اعداد پیامها نقطه اضافه شوند
129
00:07:41,240 –> 00:07:46,800
و سپس حروف به فهرست آن.
130
00:07:46,800 –> 00:07:51,150
یک حرف خاص کاملاً درست است، سپس میخواهیم
131
00:07:51,150 –> 00:07:53,430
آن را به اندازه ماتریس
132
00:07:53,430 –> 00:07:56,730
K تقسیم کنیم، بنابراین میخواهیم اعداد پیامرسان را
133
00:07:56,730 –> 00:07:59,880
به اندازه ماتریس K تقسیم
134
00:07:59,880 –> 00:08:03,380
135
00:08:03,380 –> 00:08:05,970
کنیم.
136
00:08:05,970 –> 00:08:08,520
آخرین ویدیو، بنابراین ما یک پیام را به صورت
137
00:08:08,520 –> 00:08:11,520
اعداد می خواهیم و می خواهیم آن را از i به i تقسیم کنیم
138
00:08:11,520 –> 00:08:18,090
به اضافه عدد صحیح k نقطه شکل 0، شما
139
00:08:18,090 –> 00:08:21,570
می توانید یکی را در اینجا نیز استفاده کنید زیرا در n
140
00:08:21,570 –> 00:08:23,850
در n است تا آنها یکسان باشند
141
00:08:23,850 –> 00:08:28,320
و ما می خواهیم برای انجام این کار برای i در محدوده 0
142
00:08:28,320 –> 00:08:31,219
تا طول اعداد پیام ما
143
00:08:31,219 –> 00:08:36,870
با یک مرحله از عدد صحیح یا
144
00:08:36,870 –> 00:08:38,570
شکل، خوب است،
145
00:08:38,570 –> 00:08:42,390
بنابراین اگر K 2 باشد، از 0
146
00:08:42,390 –> 00:08:49,140
تا 2 و سپس از 2 تا 4 4 تا 6 و غیره شروع می کنیم.
147
00:08:49,140 –> 00:08:54,280
سپس میخواهیم 4p را در
148
00:08:54,280 –> 00:09:01,930
نخود تقسیم کنیم، میخواهیم اول از همه
149
00:09:01,930 –> 00:09:08,050
میخواهیم آن را بهعنوان یک آرایه بسازیم و همچنین
150
00:09:08,050 –> 00:09:12,310
باید این جابهجایی را در نظر بگیریم، زیرا
151
00:09:12,310 –> 00:09:14,260
میخواهیم آن را به عنوان بردار ستونی بتوانیم
152
00:09:14,260 –> 00:09:18,870
K ضربدر P را انجام دهیم. یک بردار ردیف و
153
00:09:18,870 –> 00:09:21,220
سپس یک چیزی که باید در نظر داشته باشید این است
154
00:09:21,220 –> 00:09:23,410
که اگر برای مثال پیامی به
155
00:09:23,410 –> 00:09:26,170
طول 5 داشته باشیم، آن را به دو قسمت تقسیم می کنیم و
156
00:09:26,170 –> 00:09:29,140
دو و آخری یکی می شود، اما
157
00:09:29,140 –> 00:09:32,140
ما باید طول آن دو باشد تا
158
00:09:32,140 –> 00:09:40,090
بتوانیم ضرب ماتریس را انجام دهیم،
159
00:09:40,090 –> 00:09:43,690
بنابراین معنایش این است که اگر این ثابت
160
00:09:43,690 –> 00:09:49,270
نباشد، همان را نداریم،
161
00:09:49,270 –> 00:09:50,920
نمی توانیم ضرب ماتریس را انجام دهید
162
00:09:50,920 –> 00:09:55,440
زیرا P اندازه کوچکتری دارد و
163
00:09:55,440 –> 00:09:58,030
کاری که باید انجام دهیم این است که باید
164
00:09:58,030 –> 00:10:01,650
چیزی را به انتهای P
165
00:10:01,650 –> 00:10:05,620
اضافه کنیم و زمانی که می توانیم به عنوان مثا