Hacking হচ্ছে এটা বিজ্ঞ্যান [ অন্তত আমার মতে :/ ] আপনার যেমন basic জ্ঞান না থাকলে উচ্চতর গনিত বা calculus একদম এ বুঝতে পারবেন না বা করতেই পারবেন না সেরকম hacking এ ও আপনি বিশেষ কিছু করতে পারবেন না যদি না আপনার এক্কেবারে basic hacking grammar জানা না থাকে ! আমি এই টিউন টা তে চেষ্টা করব একদম বাসিক hacking grammar আপনাদের সাথে শেয়ার করার জন্য।
আজকে আমি CRYPTOGRAPHY, ENCRYPTION ও DECRYPTION নিয়ে লিখব । অনেকেই হয়ত এতমদ্ধে এ বেপারে আমার থেকে ভালো জানেন তবে যারা জানেন না তাদের জন্য বলি আমি মোটামুটি নিশ্ছিত আপনি যদি একটুঁ কষ্ট করে এবং মনোযোগ সহকারে এই টিউন টা পরেন তবে আনি এই ৩ টা বিষয়ে মোটামুটি ধরনের একজন বিশষজ্ঞ হয়ে যাবেন :)
Cryptography : এসম্পর্কে wikipedia বলে
Cryptography (or cryptology; from Greek κρυπτός, “hidden, secret”; and γράφειν, graphein, “writing”, or -λογία, -logia, “study”, respectively) is the practice and study of techniques for secure communication in the presence of third parties (called adversaries).
অর্থাৎ সংক্ষেপে তথ্য গোপন বা লুকানোর পদ্ধতি কে cryptography বলা হয় । এটা আসলে এটা বিশাল বিজ্ঞান । এ ব্যাপারে graduation certificate ও দেয়া হয় ।
Cipher: যে algorithm ব্যাবহার করে তথ্য বা ডাটা লুকান হয় বা লুকায়িত ডাটা কে পুনরদ্ধার করা হইয় তাকে cipher বলে ।
Encryption: কোন algorithm ব্যাবহার করে এটা ডাটা কে লুকানোর পদ্ধতি কে encryption বলে । উদাহরণ হিসেবে বলা যায় Caeser Cipher . এটা পৃথিবীর প্রথম cipher. একে অনেকেই Shift Cipher বা ROT-13 বা Rotational Cipher বলে থাকেন । এটার কা্যপ্রণালী হচ্ছে english alphabet এর অক্ষরগুলো বিন্যাস করে তারপর ডাটা কে encrypt করা হয়।
এই ছবি তে দেখতে পাচ্ছেন অক্ষর বা alphabet গুলো কে ৩ ঘর এগুনো হয়েছে । অর্থাৎ M কে P , N কে Q এই রূপে উপস্থাপন করা হয়েছে । এই পদ্ধতি অনুসরণ করে জুলিয়াস সিজার এর encrypted নাম টা খেয়াল করছেন ? এটাই encryption এর উদ্দেশ্য ।
Decryption: encrypted তথ্য কে যে পদ্ধতি তে encrypt করা হয়েছে তার ধাপগুল উল্টো ভাবে অনুসরণ করে মূল ডাটা বা plain text কে উদ্ধার করার পদ্ধতি কে Decryption বলে । decrypt করতে অবশ্যই এটা correct key ( encrypt করার ধাপ ও পদ্ধতি ) লাগবে । correct key ছাড়া ডাটা উদ্ধার করার সম্ভাবনা কে statistician রা বলে থাকেন এক ট্রিলিয়ন বারে একবার ! যেটা মোটামুটি অসম্ভবের কাছাকাছি :/
এগুলো ছিল মূল ধারনা গুলো । আরও কিছু প্রয়োজনীয় ডাটা ও জেনে নেই :)
Cryptographic Hash Functions: ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন হচ্ছে একটি নির্ণায়ক পদ্ধতি যার মধ্যমে একটি ডাটা/plain text হতে অবাধ ব্লক/ arbitrary block of data রূপে রুপান্তরিত হয় । মনে রাখতে হবে এটা কিন্তু encryption না কিন্তু encryption করার পদ্ধতি ।
Hexadecimal: hexadecimal হচ্ছে একটা Cryptographic Hash Functions । যেখানে মাত্র ১৬ টা ক্যারেক্টার ব্যাবহার করা হয় ডাটা encrypt/decrypt করার সময় । এই ১৬ টা ক্যারেক্টার হচ্ছে 0-9 ও A-F । এটা একটা 128 bit / 16byte এর hash value . একে Base-16 ও বলা হয়ে থাকে ।সব থেকে জনপ্রিয় hexadecimal hash value হচ্ছে MD5 ।
Base 32 :: Base 32 হচ্ছে ৩২ ক্যারেক্টার এর hash value। এতে A-Z ও 2-7 ক্যারেক্টার গুলো ব্যাবহার করা হয় । একটা উদাহরণ হচ্ছে d41d8cd98f00b204e9800998ecf8427e
Base 64 : Base 64 আরও একটা Hash value । এতে A-Z , 0-9 এবং কিছু বিশেষ সিম্বল ববহার করা হয়। Base 64 সবসময় “=” দারা শেষ হয় , উদাহরণ ঃ 1B2M2Y8AsgTpgAmY7PhCfg==
Collisions : যখন ২ টা আলাদা আলাদা hash value এর একি রকম encryption হবে তখন তা server এ বিভ্রান্তির সৃষ্টি করে । এই বিভ্রান্তি কে collisions বলা হয় ।এটা আসলে hacker দের জন্য আশীর্বাদ । তারা এটাকে ভালবেসে “God mode birthday attack ” বলে থাকে । collisions হলে server hang থেকে crash ও করতে পারে । উদাহরণ ঃ
মনে করুন ABDUL শব্দটির encryption হচ্ছে ঃ 9b306ab04ef5e25f9fb89c998a6aedab
আবার ধরুন FREAK শব্দটির encryption হচ্ছে ঃ 9b306ab04ef5e25f9fb89c998a6aedab
ভালো করে খেয়াল করে দেখবেন দুইটি encryption এ হুবহু একই রকম । এটাকে collisions বলা হয়। সাধারনত অনেক বড় বড় server এ এই ধরনের সমস্যা দেখা যায় ।
SALT: Salt হচ্ছে hacker দের দঃস্বপ্ন । বিশেষত AI upgraded server গুলোতে SALT দেখা যায় । যেকোনো ডাটা কে আর সুরক্ষিত করার উদ্দেশে একটা encrypted লাইন এর শেষে আর কয়ে্কটা ক্যারেক্টার যোগ করে দেওয়া কে SALT/ SALTING বলে । SALTING করা যে কোন ডাটা Decrypt করা একেবারেই অশম্ভব :( যেমন ধরুন “1sf5651etg64sfg” হচ্ছে একটা encrypted data.এখন এর শেষ এ যদি য়ার ২-৩ টা ক্যারেক্টার যেমন ud7 যোগ করে দেই তাহলে ওটা decrypt করার সাদ্ধ দুনিয়ার কারো হবে না । কোন Super Computer ও পারবে না !
এটা ডাটা decrypt করতে হলে তার কী দরকার । যদি কী এবং encrypted ডাটা দেওয়া থাকে তবে তা decrypt করা একদম এ সহজ। কী সাধারনত যে sequence এ encrypt করা হয় তার উল্লেখ। যেমন ধরুন আমাদের একটা encrypted ডাটা দেওয়া আছে । ডাটা টি নিম্নরুপ ঃ
3AcTBJCzggwY3LCyzIhJBJhtzewSA+5dyuQhaKcDzI3agWCRz+YC3OZMCdyG এবং এর কী হচ্ছে BASE-64 –> FERON-74 –> GILA 7
অর্থাৎ ডাটা টি যাই হক না কেন তা প্রথমে BASE-64 এ encrypt করা হয়েছে । পরের ধাপে BASE-64 থেকে প্রাপ্ত encrypted ডাটা কে FERON-74 এ আবার encrypt করা হয়েছে । সেটাকে পরে GILA 7 এ encrypt করা হয়েছে এবং সর্বশেষ encrypted ডাটা টাই আমাদের প্রদত্ত ডাটা টি। এখন এটাকে decrypt করতে হলে আমাদের কে encryption এর ধাপ গুলো ঠিক উল্টো ভাবে ব্যাবহার করতে হবে । অর্থাৎ প্রদত্ত ডাটা কে প্রথমে GILA 7 এ decrypt করতে হবে । আরা ধাপে ধাপে কাজ টি সারি । ডাটা encrypt/decrypt করার জন্য অনেক ওয়েবসাইট পাওয়া যায় তবে আমি http://www.crypo.com/ সাইট টাই ব্যাবহার করে শান্তি বেশী পাই :D আসুন কাজ শুরু করে দেই ।
১) প্রদত্ত ডাটা অর্থাৎ 3AcTBJCzggwY3LCyzIhJBJhtzewSA+5dyuQhaKcDzI3agWCRz+YC3OZMCdyG প্রথমে আমরা GILA 7এ decrypt করব । decrypt করলে যে ডাটা তা পাই তা হচ্ছে uRC0CTM6qvsPRnD0NKSFBTl3Azy8RZRgNLsbPlMvPc74
২) এবার এটাকে FERON-74 এ decrypt করে পাই YW1pJTIwZWtqb24lMjBiYW5nbGFkZWhp
৩) সর্বশেষ ধাপ । প্রাপ্ত decrypted ডাটা কে এখন BASE-64 এ decrypt করলেই আরা আসল ডাটা টা পেয়ে যাব। কারন এটাই কী এর প্রথম/ terminal hash value. কথা না বাড়িয়ে আসুন decrypt করে দেখি আসল ডাটা টা কি :P
৪) decrypt করার পর আমরা পাই ami ekjon bangladehi !
মজা তাই না ? ^_^
এগুলই ছিল cryptography এর উপর একেবারে দরকারি basic ধারনা গুলো । এখন আমি নিচে ২ টা encrypted ডাটা দিব । correct key /encryption sequence ও দিয়ে দিব । আপনারা চেষ্টা করে দেখুন তো ডাটা গুলো decrypt করতে পারেন কিনা ? পারলে comment এ উত্তর লিখুন ।
[encrypted data 1 ] s+/YrnabNF/0q699ALypuvMf6RsnebxWuTlVBYwjAuDprL8veX9DQcs+qZ7jr6/b
Correct key : MEGAN-35 –> GILA7 –>FERON-74
[encrypted data 2 ] k2nPkvWydInxRM0/jZj1nMmqmvOPlMmxn+fxnxjhlKjGm29dn1S1lvXUeIWyjuKXo2C7exiyo/i7oLjRj2OAjLiwofOzlx1Yk2nPktGdk1j6ju07RKS6fuK8ode5
Correct Key : BASE-64 –> TRIPO – 5 –> HAZZ-15 –> MEGAN35
আশা করি ভালো লেগে থাকবে ! ভালো থাকবেন সবাই । ধন্যবাদ :)
ধন্যবাদ Bangla SEO
অনেক
কিছু
জানলাম
:)
kicho bolar nai serokom……
thanks 4 posting such a important lesson