পাবলিক-কী ক্রিপ্টোগ্রাফিতে, একটি সর্বজনীন কী ফিঙ্গারপ্রিন্ট একটি দীর্ঘতর পাবলিক কী সনাক্ত করতে ব্যবহৃত বাইটের সংক্ষিপ্ত ক্রম ence
বিশেষত এসএসএইচে তাদের যাচাই করার জন্য ব্যবহার করা যেতে পারে যে কোনও সার্ভার আসলে যে সার্ভারের সাথে আমি যোগাযোগের প্রত্যাশা করছিলাম এবং আমি মাঝারি-মধ্যবর্তী আক্রমণ দ্বারা লক্ষ্যবস্তু নই।
এগুলি সাধারণত হেক্সাডেসিমাল ডিজিটগুলির একটি স্ট্রিং হিসাবে উপস্থাপিত হয়, সুতরাং এটি আশা করা ফিংগারপ্রিন্টের সাথে এটির তুলনা করা বরং বিরক্তিকর এবং ক্লান্তিকর হতে পারে:
37:e4:6a:2d:48:38:1a:0a:f3:72:6d:d9:17:6b:bd:5e
এটিকে কিছুটা সহজ করার জন্য, ওপেনএসএইচ আঙুলের ছাপগুলিকে ASCII শিল্প হিসাবে কল্পনা করার জন্য একটি পদ্ধতি চালু করেছে, যা নীচের মত দেখাবে:
+-----------------+
| |
| |
| . |
| . o |
|o . o . S + |
|.+ + = . B . |
|o + + o B o E |
| o . + . o |
| .o |
+-----------------+
এটির সাহায্যে আমি ASCII আর্টের রুক্ষ আকৃতিটি মনে করার চেষ্টা করতে পারি এবং সার্ভারের আঙুলের ছাপটি পরিবর্তিত হয়ে চিত্রটি আলাদা দেখায় তখন (তাত্ত্বিকভাবে) এটি সনাক্ত করতে পারি।
কিভাবে এটা কাজ করে
ডার্ক লস, টোবিয়াস লিমার, আলেকজান্ডার ভন জার্নার থেকে নেওয়া । ২০০৯. মাতাল বিশপ: ওপেনএসএসএইচ ফিঙ্গারপ্রিন্ট ভিজুয়ালাইজেশন অ্যালগরিদম বিশ্লেষণ ।
গ্রিডটির প্রশস্ততা 17 টি অক্ষর এবং উচ্চতা 9 টি অক্ষর রয়েছে। "বিশপ" সারি 4 / কলাম 8 (কেন্দ্র) থেকে শুরু হয়। বিশপের প্রারম্ভিক অবস্থানের জন্য প্রতিটি অবস্থানকে [x, y], অর্থাৎ [8,4] হিসাবে চিহ্নিত করা যেতে পারে।
1111111
01234567890123456
+-----------------+
0| |
1| |
2| |
3| |
4| S |
5| |
6| |
7| |
8| |
+-----------------+
বিশপ চারদিকে ঘোরাতে আঙুলের ছাপ ব্যবহার করে। এটি এটিকে বাম দিক থেকে বাম থেকে ডানে এবং কমপক্ষে উল্লেখযোগ্য বিট থেকে সবচেয়ে গুরুত্বপূর্ণ বিট পর্যন্ত পড়বে:
Fingerprint 37 : e4 : 6a : ... : 5e
Bits 00 11 01 11 : 11 10 01 00 : 01 10 10 10 : ... : 01 01 11 10
| | | | | | | | | | | | | | | |
Step 4 3 2 1 8 7 6 5 12 11 10 9 64 63 62 61
বিশপ নিম্নলিখিত পরিকল্পনা দ্বারা সরানো হবে:
Bits Direction
-----------------
00 Up/Left
01 Up/Right
10 Down/Left
11 Down/Right
বিশেষ ক্ষেত্রে:
- বিশপ যদি কোনও কোণে থাকে এবং আবার কোণে চলে যায় তবে সে কিছুতেই সরবে না। অর্থ: বিশপ উপস্থিত
[0,0]
এবং তার পরবর্তী পদক্ষেপ হবে00
। তিনি থাকেন[0,0]
- বিশপ যদি কোনও কোণে বা কোনও দেয়ালে থাকে এবং কোনও এক দেয়ালের মধ্যে চলে যায় তবে তিনি অনুভূমিকভাবে বা উল্লম্বভাবে কেবল চলে যান। অর্থ: বিশপ উপস্থিত
[0,5]
এবং তার পরবর্তী পদক্ষেপ হবে01
। তিনি না করে ছেড়ে যেতে পারেন তাই তিনি শুধু আপ চলে আসে[0,4]
।
বিশপ এই ক্ষেত্রটি কতবার পরিদর্শন করেছেন তার প্রতিটি অবস্থানের একটি মূল্য রয়েছে:
Value | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10| 11| 12| 13| 14| 15| 16|
Character | | . | o | + | = | * | B | O | X | @ | % | & | # | / | ^ | S | E |
15 (এস) এবং 16 (ই) মানগুলি বিশেষ যে তারা যথাক্রমে বিশপের শুরু এবং শেষের অবস্থান চিহ্নিত করে এবং সম্মানজনক অবস্থানের আসল মানটিকে ওভাররাইট করে।
লক্ষ্য
একটি প্রোগ্রাম তৈরি করুন, যা একটি আলফানিউমারিক ফিঙ্গারপ্রিন্ট ইনপুট হিসাবে নেয় এবং উদাহরণ হিসাবে দেখানো হয়েছে এর ASCII শিল্প উপস্থাপনা উত্পাদন করে।
উদাহরণ
Input:
16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
Output:
+-----------------+
| . |
| + . |
| . B . |
| o * + |
| X * S |
| + O o . . |
| . E . o |
| . . o |
| . . |
+-----------------+
Input:
b6:dd:b7:1f:bc:25:31:d3:12:f4:92:1c:0b:93:5f:4b
Output:
+-----------------+
| o.o |
| .= E.|
| .B.o|
| .= |
| S = .|
| . o . .= |
| . . . oo.|
| . o+|
| .o.|
+-----------------+
Input:
05:1e:1e:c1:ac:b9:d1:1c:6a:60:ce:0f:77:6c:78:47
Output:
+-----------------+
| o=. |
| o o++E |
| + . Ooo. |
| + O B.. |
| = *S. |
| o |
| |
| |
| |
+-----------------+
বিধি
- এটি কোড-গল্ফ । অল্প বাইটের কোডটি জয়ী।
- আপনি কোনও বিদ্যমান লাইব্রেরি ব্যবহার করতে পারবেন না যা চিত্রটি তৈরি করে।
- আপনি যে কোনও ভাষা ব্যবহার করুন!
- আপনার জমা দেওয়ার একটি সম্পূর্ণ প্রোগ্রাম হতে হবে
33:33:33:...:33
, cc:cc:cc:...:cc
এটির জন্য উদাহরণ হতে পারে। ফিঙ্গারপ্রিন্টটি সাধারণত একটি এমডি 5 হ্যাশ হয়, সুতরাং আপনি এরকম ফল পাওয়ার পক্ষে খুব বেশি সম্ভাবনা। এইগুলি কীভাবে মোকাবেলা করতে হবে তার জন্য আমি কোনও নির্ভরযোগ্য উত্স খুঁজে পাইনি, সুতরাং আপাতত আমি বলেছি: ধরুন কোনও সেল 14 বারের বেশি দেখা হবে না।