ম্যানেজমেন্ট পরামর্শ সাইফার সবচেয়ে জটিল পেন্সিল এবং কাগজ সাইফারগুলির কখনও কল্পনা অন্যতম। "ভিক্টর" এর নামকরণ করা সোভিয়েত গুপ্তচর রেইনো হ্যাহেনেন 1950-এর দশকে ব্যবহার করেছিলেন, এর মূল নীতিটি হ'ল সুরক্ষা; একটি অনেক কিংকর্তব্যবিমূঢ়তা করুন।
আপনার কাজটি হ'ল এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা কোনও বার্তা নেবে এবং ভিসি সিফার ব্যবহার করে এটিকে এনকোড করবে। আমি এখানে একটি ভিআইসি সাইফার ডিকোডার চ্যালেঞ্জও পোস্ট করেছি । নিম্নলিখিত নির্দেশাবলীগুলির কোনও যদি অস্পষ্ট হয় তবে মন্তব্যে সেগুলি সম্পর্কে জিজ্ঞাসা করতে দ্বিধা করবেন না। নির্দেশাবলী এই সাইট থেকে অভিযোজিত হয় ।
ভিসি সাইফারকে এনকোডিং করা হচ্ছে
প্রস্তুতি
আপনার পাঁচটি ইনপুট লাগবে:
- প্লেইন টেক্সট বার্তা
- একটি সংক্ষিপ্ত কীওয়ার্ড বা বাক্যাংশ যা আপনার ভাষার সর্বাধিক সাধারণ অক্ষর রয়েছে
- একটি মূল বাক্যাংশ, যেমন একটি গানের উদ্ধৃতি বা একটি লাইন (কমপক্ষে 20 টি অক্ষর)
- একটি তারিখ (বা অন্য সংখ্যা যা ছয় অঙ্ক বা তার বেশি)
- একটি ব্যক্তিগত এজেন্ট নম্বর
অনুশীলনে, এই শেষ চারটি প্রেরকের এবং প্রাপকের আগেই সম্মত হওয়া উচিত, প্রেরকের এজেন্ট নম্বর বা প্রাপকের এনকোডিংয়ে ব্যবহৃত হয় কিনা তা সহ।
আমার উদাহরণ বার্তাটি হবে: We are discovered. Take what you can. Burn everything else. Move to Safehouse Foxtrot 3.
আমরা ইংরাজীতে এনকোডিং করব (যদিও আপনি যে ভাষা এবং বর্ণমালা পছন্দ করেন তা ব্যবহার করতে পারেন) এবং ইংরেজি বর্ণমালার সর্বাধিক সাধারণ অক্ষর A, E, I, N, O, R, S, T
। আমি কীওয়ার্ডটি ব্যবহার করব SENATORI
।
আমার মূল বাক্যাংশটি রিচার্ড ফেনম্যানের একটি উক্তি: "প্রথম নীতিটি হ'ল আপনাকে নিজেকে বোকা বানাতে হবে না - এবং আপনি বোকা হওয়ার পক্ষে সবচেয়ে সহজ ব্যক্তি" "
তারিখ হিসাবে, আমি 31 জুলাই, 2016 (ফর্ম্যাটে 3172016
) ব্যবহার করব , যা এই দিনটি ছিল যখন আমি এই বিবরণটি লিখেছিলাম।
আমি নিজের জন্য ব্যক্তিগত নম্বরটি বেছে নিয়েছি 9
।
পদক্ষেপের সংক্ষিপ্তসার
- নিম্নলিখিত পদক্ষেপে ব্যবহারের জন্য মধ্যবর্তী কীগুলি আবিষ্কার করুন।
- স্ট্র্যাডলিং চেকবোর্ডটি তৈরি করুন এবং প্রয়োগ করুন।
- প্রথম স্থানান্তর টেবিলটি তৈরি করুন এবং প্রয়োগ করুন।
- দ্বিতীয় (ব্যাহত) স্থানান্তর টেবিলটি তৈরি এবং প্রয়োগ করুন।
- বার্তা সূচক গোষ্ঠীটি প্রবেশ করে বার্তাটি চূড়ান্ত করুন।
Submechanisms
বিষয়টির মাংসে beforeোকার আগে আরও দুটি বিষয় ব্যাখ্যা করতে হবে: চেইন সংযোজন এবং অনুক্রমিককরণের প্রক্রিয়া।
চেইন সংযোজন, যা একটি পিছিয়ে ফিবোনাচি জেনারেটর হিসাবেও পরিচিত, একটি প্রাথমিক অঙ্কের ক্রম নিয়ে, প্রথম দুটি অঙ্ক বহন না করে যুক্ত করে (তাদের সাথে পরে যুক্ত করুন mod 10
) এবং ফলাফলটি শেষে যুক্ত করে কাজ করে। উদাহরণ স্বরূপ:
79081
7 + 9 = 6
790816
9 + 0 = 9
7908169
0 + 8 = 8
79081698
8 + 1 = 9
790816989
1 + 6 = 7
7908169897
... and so on
সিক্যুয়েনালাইজিং হ'ল মূলত অক্ষর বা অঙ্কগুলির ক্রম গ্রহণ করে এবং বর্ণানুক্রমিক / সংখ্যাসূচক ক্রম দ্বারা সেগুলি লেবেল করা হয়। সদৃশগুলি বাম থেকে ডানে লেবেলযুক্ত। উদাহরণ স্বরূপ:
E X A M P L E
0 # A
1 0 2 # Es
1 0 3 2 # L
1 0 4 3 2 # M
1 0 4 5 3 2 # P
1 6 0 4 5 3 2 # X
3 3 0 5 8 4 2 0 4 7 5 4 8 1
0 1 # 0s
0 1 2 # 1
0 3 1 2 # 2
4 5 0 3 1 2 # 3s
4 5 0 6 3 1 7 8 2 # 4s
4 5 0 9 6 3 1 7 10 8 2 # 5s
4 5 0 9 6 3 1 7 11 10 8 2 # 7
4 5 0 9 12 6 3 1 7 11 10 8 13 2 # 8s
আমি এখানে শূন্য-সূচক ব্যবহার করি তবে আপনি পছন্দ করেন তবে সূচক।
1. মধ্যবর্তী কী
মূল বাক্যাংশের প্রথম 20 টি বর্ণকে 10 টির দুটি গ্রুপে বিভক্ত করুন এবং প্রতিটি স্বতন্ত্রভাবে ক্রমযুক্ত করুন, যা আমরা কল করব S1
এবং করব S2
।
THEFIRSTPR
S1: 8201357946
INCIPLEIST
S2: 2603751489
এলোমেলো ৫-সংখ্যার বার্তা শনাক্তকারী চয়ন করুন, M
(এটি যদি আপনি চান তবে ইনপুটগুলির মধ্যে একটি হতে পারে):
M = 47921
ধার নেওয়া (বিয়োগ mod 10
) ছাড়াই বিয়োগ, মূল তারিখের প্রথম পাঁচটি অঙ্ক 3172016
থেকে M
:
M 47921
date - 31720
= 16201
আপনার দশ অঙ্ক না হওয়া পর্যন্ত চেইন ফলাফল যুক্ত করুন:
1620178218
S1
বহন করা বা mod 10
প্রাপ্ত না করে এই অঙ্কগুলি যুক্ত করুন G
:
1620178218
S1 + 8201357946
G = 9821425154
উপরে S2
, 0123456789 অনুক্রমটি লিখুন। 0123456789 অনুক্রমের প্রতিটি অঙ্ক সন্ধান করুন G
এবং এটির নীচে অঙ্কের সাথে এটি প্রতিস্থাপন করুন S2
। ফলাফল হয় T
।
0123456789
S2 2603751489
G 9821425154
T 9806705657
T
60 সংখ্যায় প্রসারিত করতে চেইন সংযোজন ব্যবহার করুন ।
9806705657
becomes
980670565778637511245490262369939288595822106344304316978734
এই সর্বশেষ 50 টি সংখ্যা, প্রতিটি দশ অঙ্কের পাঁচ সারিতে, U
ব্লকটি তৈরি করে।
T 9806705657
U 7863751124
5490262369
9392885958
2210634430
4316978734
U
ব্লকের শেষ দুটি অ-সমতুল্য অঙ্ক দুটি পৃথক স্থানের প্রস্থের জন্য পৃথকভাবে এজেন্টের ব্যক্তিগত সংখ্যাতে যুক্ত করা হয়, p
এবংq
।
9 + 3 = 12 (পি, প্রথম স্থানান্তর প্রস্থ) 9 + 4 = 13 (কিউ, দ্বিতীয় স্থানান্তর প্রস্থ)
Sequentialize T
এবং এই ক্রম ব্যবহার বন্ধ কলাম কপি করতে U
, উপর থেকে নীচে ব্লক, ডিজিটের একটি নতুন সারি মধ্যে V
।
T 9806705657
seqT 9804612537
U 7863751124
5490262369
9392885958
2210634430
4316978734
V 69911 56837 12548 26533 30206 13947 72869 49804 84323 75924
p
প্রথম স্থানান্তরের জন্য কীটি পেতে প্রথম সংখ্যাটি এবং দ্বিতীয়টির কীটির জন্য K1
নিম্নলিখিত q
সংখ্যাগুলি যথাযথ করুন K2
।
First 12 6 9 9 1 1 5 6 8 3 7 1 2
K1 6 10 11 0 1 5 7 9 4 8 2 3
Next 13 5 4 8 2 6 5 3 3 3 0 2 0 6
K2 8 7 12 2 10 9 4 5 6 0 3 1 11
অবশেষে, স্ট্র্যাডলিং চেকবোর্ডের জন্য কলাম শিরোনামগুলি U
পেতে ব্লকের চূড়ান্ত সারিটি অনুক্রমিক করুন C
:
U5 4316978734
C 3105968724
2. স্ট্র্যাডলিং চেকবোর্ড
প্রথমে, আমি আমার উদাহরণ চেকবোর্ডটি দেব তারপর এটি তৈরির নীতিগুলি সেভাবে ব্যাখ্যা করব:
3 1 0 5 9 6 8 7 2 4
S E N A T O R I
2 B D G J L P U W Y .
4 C F H K M Q V X Z #
অক্ষরের প্রথম লাইনটি আমাদের সংক্ষিপ্ত কীওয়ার্ড SENATORI
। আপনার কীওয়ার্ডটি নকল ছাড়াই কোনও স্ট্রিং হতে পারে তবে এটি যেহেতু এটি আপনার চেকবোর্ডের শীর্ষ সারিটি সংজ্ঞায়িত করে, তাই বিজ্ঞতার সাথে বেছে নিন। মূলশব্দটির উপরে C
এবং অন্য সারিগুলি আপনার বর্ণমালাগুলির বাকী অংশ যা আপনি চয়ন করুন। আমার ক্ষেত্রে, আমি বাকী ল্যাটিন বর্ণমালা, একটি বিরামচিহ্ন .
এবং সংখ্যার সীমাবদ্ধকরণের জন্য একটি চিহ্ন দিয়ে চেকবোর্ডটি পূর্ণ করেছি #
। মূলত, চেকারবোর্ডটি একটি অভিনব সাবস্টিটিউশন সাইফার। উদাহরণস্বরূপ, "E" এর পরিবর্তে 1
"W" প্রতিস্থাপন করা হবে subst27
।
একবার আমরা এই চেকবোর্ডের সাথে আমাদের প্লেইন টেক্সট বার্তাটি এনকোড করেছি, তবে প্রথমে, আমাদের বার্তাটি এলোমেলো স্থানে বিভক্ত করে এবং সমস্ত বড় হাতের অক্ষর তৈরি করে আমাদের সূচনা কম স্পষ্ট করা দরকার। অন্যান্য আসল সূচনা বোঝাতে, আমরা দুটি পূর্ণ স্টপ ব্যবহার করি..
We are discovered. Take what you can. Burn everything else. Move to Safehouse Foxtrot 3.
হয়ে
HING ELSE. MOVE TO SAFEHOUSE FOXTROT#3#.. WE ARE
DISCOVERED. TAKE WHAT YOU CAN. BURN EVERYT
আমরা চেকবোর্ড দিয়ে এনকোড করে আমাদের দিয়েছি:
407020 1293124 496481 96 354114062831 416479869443442424 271 581
2173436481812124 95451 274059 22628 435024 232880 14818229
যদি বার্তার দৈর্ঘ্য 5 দ্বারা বিভাজ্য না হয়, আমরা বার্তাটি প্যাড করতে কিছু নাল অক্ষর যুক্ত করব। আমাদের বার্তাটি 109 ডিজিট দীর্ঘ, তাই আমি একটি নাল যুক্ত করব: "4"।
40702 01293 12449 64819 63541 14062 83141 64798 69443 44242 42715
81217 34364 81812 12495 45127 40592 26284 35024 23288 01481 82294
নোট: যেহেতু আমার উদাহরণ বার্তা সংখ্যার ধারণ করে না, আমি এখানে বলবো যে আপনার মনোনীত পারে, বলে, যেমন #3#
, যা এনকোড করা আছে 44344
এখানে।
3. প্রথম স্থানান্তর
K1
কীটির নীচে একই দৈর্ঘ্যের সারিগুলিতে, পূর্ববর্তী পদক্ষেপ থেকে এনকোড করা বার্তা অনুসরণ করে (মধ্যবর্তী কী বিভাগ থেকে) লিখে (ট্রান্সমিশন কীগুলি বিভাগ থেকে) স্থানান্তর টেবিলটি তৈরি করুন :
K1 6 10 11 0 1 5 7 9 4 8 2 3
4 0 7 0 2 0 1 2 9 3 1 2
4 4 9 6 4 8 1 9 6 3 5 4
1 1 4 0 6 2 8 3 1 4 1 6
4 7 9 8 6 9 4 4 3 4 4 2
4 2 4 2 7 1 5 8 1 2 1 7
3 4 3 6 4 8 1 8 1 2 1 2
4 9 5 4 5 1 2 7 4 0 5 9
2 2 6 2 8 4 3 5 0 2 4 2
3 2 8 8 0 1 4 8 1 8 2 2
9 4
সংখ্যাযুক্ত কলামগুলি তাদের সংখ্যার ক্রম অনুসারে গ্রহণ করা:
060826428 246674580 151411542 246272922 961311401 082918141
4414434239 118451234 334422028 293488758 0417249224 794943568
৪. দ্বিতীয় স্থানান্তর
প্রথম স্থানান্তর তুলনামূলকভাবে সহজ ছিল। এটি অবশ্য একটি ব্যাহত স্থানান্তর। বিঘ্নিত প্যাটার্নটি টেবিলের প্রস্থ এবং কী দ্বারা নির্ধারিত হয়। আমাদের উদাহরণস্বরূপ, আমাদের ১১০ টি সংখ্যা এবং ১৩ টি কলাম রয়েছে, যার অর্থ আমাদের কাছে আটটি পূর্ণ সারি এবং left টি বাম ওভার থাকবে। আমরা প্রথম সারিতে ভরাট শুরু করি, তবে 0 কলামে থামি, এবং নীচের মতো চালিয়ে যাচ্ছি:
K2 8 7 12 2 10 9 4 5 6 0 3 1 11
0 6 0 8 2 6 4 2 8 stop at 0
2 4 6 6 7 4 5 8 0 1 continue in a triangle pattern
5 1 4 1 1 5 4 2 2 4 6
2 7 2 9 2 2 9 6 1 3 1 1
4 0 1 0 8 2 9 1 8 1 4 1 4 until the end
4 1 4 4 3 4 2 3 9 1 1 restart and stop at 1
8 4 5 1 2 3 4 3 3 4 4 2
2 0 2 8 2 9 3 4 8 8 7 5 8
0 4 1 restart and stop at 2
তারপরে আমরা বাকী অঙ্কগুলি সহ শেষ কয়েকটি স্থান পূরণ করব।
K2 8 7 12 2 10 9 4 5 6 0 3 1 11
0 6 0 8 2 6 4 2 8 7 2 4 9
2 4 6 6 7 4 5 8 0 1 2 2 4
5 1 4 1 1 5 4 2 2 4 6 7 9
2 7 2 9 2 2 9 6 1 3 1 1 4
4 0 1 0 8 2 9 1 8 1 4 1 4
4 1 4 4 3 4 2 3 9 1 1 9 4
8 4 5 1 2 3 4 3 3 4 4 2 3
2 0 2 8 2 9 3 4 8 8 7 5 8
0 4 1 5 6 8
এখন, আমরা প্রথম স্থানান্তরের জন্য ঠিক একইভাবে কলামগুলি পড়েছিলাম।
71431148 42711925 861904185 22614147 45499243 28261334 80218938
641701404 025244820 645224398 271283226 94944438 064214521
এবং সবকিছুকে 5-সংখ্যার গোষ্ঠীতে বিভক্ত করুন:
71431 14842 71192 58619 04185 22614 14745 49924 32826 13348 02189
38641 70140 40252 44820 64522 43982 71283 22694 94443 80642 14521
৫. বার্তা চূড়ান্ত করুন
চূড়ান্ত পদক্ষেপটি হ'ল আমাদের এলোমেলো বার্তা শনাক্তকারী, 47921
বার্তায় intoোকানো। মূল তারিখের চূড়ান্ত 6
অঙ্কটি গোষ্ঠীটির শেষ থেকে কত দূরত্বের ইঙ্গিত দেয়।
71431 14842 71192 58619 04185 22614 14745 49924 32826 13348 02189 38641
70140 40252 44820 64522 43982 47921 71283 22694 94443 80642 14521
এই চ্যালেঞ্জ জন্য নোট
- আপনাকে সর্বনিম্ন পাঁচটি ইনপুট দেওয়া হয়: বার্তা, বর্ণের কীওয়ার্ড, মূল বাক্যাংশ, তারিখ এবং একটি ব্যক্তিগত নম্বর। আপনি দুটি অতিরিক্ত ইনপুট অন্তর্ভুক্ত করতে পারেন: এলোমেলো বার্তা শনাক্তকারী এবং বার্তা প্যাড করার জন্য নালগুলি বা আপনার ফাংশনটি নিজে থেকে কিছু এলোমেলো সংখ্যা তৈরি করতে পারে।
- অঙ্ক এবং অক্ষরের সঠিক সংখ্যার (5-সংখ্যার বার্তা শনাক্তকারী, মূল বাক্যাংশের জন্য কমপক্ষে 20 ডিজিট ইত্যাদি) সমেত আপনি সমস্ত ইনপুটগুলি বৈধ বলে ধরে নিতে পারেন। আপনি ধরে নিতে পারেন যে আপনার স্ট্রিংগুলিতে (বার্তা এবং কীওয়ার্ডগুলি) ইতিমধ্যে সমস্ত বিরামচিহ্ন এবং স্থানগুলি মুছে ফেলা হয়েছে যা আপনি আপনার সংস্করণে অনুমতি দিচ্ছেন তা বাদ দিয়ে এবং সেই সংখ্যা ইতিমধ্যে সংখ্যার চিহ্ন দ্বারা চিহ্নিত করা হয়েছে।
- প্রথম কীওয়ার্ডটিতে এর সদৃশ অক্ষর থাকা উচিত নয় এবং আপনার কোডে আপনি ধরে নিতে পারেন যে এটির সদৃশ অক্ষর কখনও নেই।
- আপনি যে ভাষাটি এনকোড করতে ব্যবহার করেন তা বিবেচ্য নয়, যতক্ষণ না ভাষাটি পূর্ববর্তী হয় ততক্ষণ বর্ণমালা পূর্ববর্তী হয় এবং আপনি নিজের উত্তরে কোন ভাষাটি ব্যবহার করেন তা নির্দিষ্ট করে।
- আপনার স্ট্র্যাডলিং চেকবোর্ডের জন্য আপনি যে কোনও বর্ণমালা নিযুক্ত করেন, আপনি চেকারবোর্ডটি প্যাড করতে প্রতীক যুক্ত বা সরিয়ে ফেলতে পারেন। আপনি সেই চিহ্নগুলি কী ব্যবহার করেন তা নির্দিষ্ট করুন (উদাহরণস্বরূপ, বিরামচিহ্ন, একটি পৃথক "বার্তা শুরু" প্রতীক, সাধারণ শব্দের জন্য চিহ্ন)। আপনি সংখ্যার চিহ্নটি সম্পূর্ণরূপে অগ্রাহ্য করতে পারেন এবং সংখ্যার বানান করতে পারেন বা প্রতিটি অঙ্কটি চেকবোর্ডে অন্তর্ভুক্ত করে স্লটটি ব্যবহার করে যেখানে নম্বর সাইনটি অন্য কোনও কিছুর জন্য ছিল। আপনার উত্তরে আপনি কোন চেকবোর্ড ব্যবহার করেছেন তা নির্দিষ্ট করুন।
- আউটপুটটি হয় স্থান-বিচ্ছিন্ন পাঁচ-অঙ্কের গোষ্ঠীর একটি স্ট্রিং, পাঁচ-সংখ্যার পূর্ণসংখ্যার একটি তালিকা বা অনুরূপ কিছু হওয়া উচিত।
- আমি জিরো-ইনডেক্সিং ব্যবহার করেছি
0123456789
এবং আমার উদাহরণে। আপনি নিজের উত্তরটিতে 1-ইনডেক্সিং এবং1234567890
, বা অন্য কোনও সিস্টেম ব্যবহার করতে পারেন , যতক্ষণ আপনি কী ব্যবহার করেছেন তা নির্দিষ্ট করে।
এখানে একটি হল Ideone উদাহরণ স্বরূপ বাস্তবায়ন ।
এটি একটি দীর্ঘ পোস্ট এবং আমি এটি বেশিরভাগ হাত দিয়ে লিখেছি, সুতরাং যদি এই পোস্টে কোনও বিভ্রান্তিকর অংশ থাকে বা আমার গণনা এবং স্থানান্তরের কোনও ত্রুটি রয়েছে তবে দয়া করে আমাকে জানান। শুভকামনা এবং ভাল গল্ফিং!
without borrowing
এবং কী বোঝাতে পারেন without carrying
? আপনি কি অ্যাড এবং বিয়োগ মোড 10
অর্থাত্ (6+7) mod 10 = 3
এবং (6-8) mod 10 = 8
?
adding the first two digits without adding
তুমি বোঝাতে চাও?