লিট বাংলা ডট টেক, প্রযুক্তির হাতেখড়ি হোক বাংলাতেই।

হ্যাকিং / সাইবার নিরাপত্তা বিষয়ক বাংলা প্রযুক্তির ব্লগ

ক্রিপ্টোগ্রাফি / তথ্য গুপ্তিকরন বিদ্যা! সাংকেতিক যোগাযোগের এক অজানা অধ্যায়।

Hacking হচ্ছে একটা শিল্প বা আর্ট । Anonymous দের সাথে আমিও বিশ্বাস করি "All information should be free." আমাদের যেমন Higher math/calculus এর বেসিক না থাকে তবে যেরকম বুঝতে/করতে পারব না ঠিক তেমনি Hacking এর basic hacking grammar জানা না থাকলে বিশেষ কিছু করতে পারব না ।
ক্রিপ্টোগ্রাফি কম্পিউটার বিজ্ঞানের নিরাপত্তা এলাকার একটি শাখা, যাতে তথ্য গোপন করার বিভিন্ন উপায় সম্পর্কে গবেষণা করা হয়।
তথ্যগুপ্তিবিদ্যা হচ্ছে একটি তৃতীয় পক্ষের উপস্থিতিতে নিরাপদ যোগাযোগের পদ্ধতিসমূহ সংক্রান্ত চর্চা ও আলোচনা।
গণিত, কম্পিউটার বিজ্ঞান এবং তড়িৎ প্রকৌশলের বিভিন্ন ক্ষেত্রে আধুনিক তথ্যগুপ্তিবিদ্যার উপস্থিতি লক্ষনীয়। এটিএম কার্ড, কম্পিউটার পাসওয়ার্ড, বৈদ্যুতিন বাণিজ্য বা ই-কমার্স- এর ক্ষেত্রে তথ্যগুপ্তিবিদ্যার ব্যবহারিক প্রয়োগ রয়েছে।
ক্রিপ্টোগ্রাফির উদাহরণঃ
উত্তরঃ ধরুন আপনি একটা ম্যাসেজ যেমন “I LOVE YOU”
আপনার পছন্দের কাউকে পাঠাতে চাচ্ছেন, তো ম্যাসেজটিকে আপনি কৌশলে উলটাপালটা করে “L OLNH BRX” পাঠালেন। অথবা রিভার্স করে "XЯᙠ HИ⅃O ⅃" এটা পাঠালেন যা কেউ ই বুঝতে পারবে না।
এইভাবে তার কাছে পাঠালেন। কারন সোজা ম্যাসেজটি অন্য কেউ দেখে ফেললে হয়ত সর্বনাশ হয়ে যেতে পারে। এখন, সেই ম্যাসেজটি সবাই দেখল কিন্তু কেউই কিছুই বুঝতে পারল না কারন ম্যাসেজটি হ-য-ব-র-ল বা হিজিবিজি করে পাঠানো হল। কিন্তু যার কাছে পাঠাইলেন সে ঠিকই বুঝল কারন সেই ম্যাসেজটি কিভাবে উল্টাপাল্টা করা হয়েছে। মাঝে হয়তো তার পরিচিত কেউ ই চিঠিটি নিয়ে গেলো, কিন্তু সে বুঝলো না।  কতই মজার তাইনা!!
নিজেই টেক্সটকে রিভার্স / মিরর করে নিন এই সাইট থেকে, http://txtn.us/mirror-words
সংজ্ঞাগুলো জেনে নেওয়া যাক!
প্লেইন টেক্সটঃ যে ডাটা এমনিতেই পড়া যায়, সেটাই প্লেইন টেক্সট। যেমন, “I LOVE YOU.”
এনক্রিপশনঃ প্লেইন টেক্সটটাকে দুর্বোধ্য একটা রুপ দেওয়ার প্রক্রিয়াটা হল এনক্রিপশন।
সাইফার টেক্সটঃ এনক্রিপশনের ফলে যে দুর্বোধ্য টেক্সটটা পাওয়া যায়।
ডিক্রিপ্পশনঃ সাইফার টেক্সটকে প্লেইন টেক্সট-এ ফিরিয়ে আনার প্রক্রিয়াকে বলে ডিক্রিপশন।
ক্রিপ্টোগ্রাফির কার্য প্রক্রিয়াঃ
গুরুত্বপূর্ন ইনফর্মেশন (ডাটার সমষ্টি হল ইনফর্মেশন) সংরক্ষন করে রাখা আর বিভিন্ন ভাবে (যেমন, ইন্টারনেট) এক জায়গা থেকে আরেক জায়গায় পাঠানো, সব ক্ষেত্রেই ক্রিপ্টোগ্রাফি ব্যবহার করা হয়, যাতে আন-অথোরাইজড কেউ সেটা বুঝতে না পারে।
অপরদিকে ক্রিপ্ট্যানালাইসিস হল সিক্যুরড কম্যুনিকেশন অ্যানালাইজ করে ব্রেক করে ফেলার বিজ্ঞান! এটা বেশির ভাগ ক্ষেত্রেই বেআইনী।
আর এই দুই বিজ্ঞানের সমষ্টি হল ক্রিপ্টোলজি।
ক্রিপ্টোগ্রাফির মূল অস্ত্র হল একটি ক্রিপ্টোগ্রাফিক এলগোরিদম বা সাইফার, যা দ্বারা ডাটা এনক্রিপ্ট করা হয়, বা এনক্রিপ্টেড ডাটা ডিক্রিপ্ট করা হয়। এটা মূলত একটি ম্যাথমেটিকাল ফাংশন। এই এলগোরিদম কাজ করে একটি কী(Key)-এর সাথে। এই কী(Key) হতে আরে একটি শব্দ, সংখ্যা বা শব্দগুচ্ছ। একই প্লেইন টেক্সট বিভিন্ন Key-এর সাহায্যে বিভিন্ন সাইফার টেক্সটে রূপান্তরিত হবে।
এনক্রিপটেড ডাটার নিরাপত্তা নির্ভর করে দুইটি জিনিসের উপরঃ
(১) ক্রিপ্টোগ্রাফিক এলগরিদমটার শক্তি
(২) কী(Key)-এর নিরাপত্তা
প্রথাগত ভাবে একই কী-এর মাধ্যমেই এনক্রিপশন এবং ডিক্রিপশন-দু’টোই করা হয়।
ক্রিপ্টোগ্রাফি নিয়ে আগ্রহীদের জন্য কিছু মুভির নামঃ


“The Imitation Game”
“The Vinci Code”
এই দুইটা মুভি দেখে নিতে পারেন। আগ্রহ বেড়ে যাবে এবং বড়ো বড়ো যুদ্ধে ক্রিপ্টোগ্রাফির কার্যাবলি গুলো নিজ চোখেই দেখে নিতে পারবেন।





সংক্ষেপে তথ্য লুকানোর পদ্ধতিকে cryptography বলা হয় । এটা এক বিশাল বিজ্ঞান যার উপর কিনা graduation certificate দেওয়া হয় । আমার টপিক cryptography সো আমি প্রথমেই cryptography. encryption & decryption নিয়ে একটু কথা বলে নেই । কাছে থাকুন সে পর্যন্ত :P


Cipher: যে algorithm ব্যাবহার করে ইনফর্মেশন লুকানো বা লুকায়িত ডাটা কে পুরনদ্ধার করা হয় তাকে cipher বলে ।


Encryption:  Algorithm ব্যাবহার করে ডাটা লুকানোর পদ্ধতি । Ex - Caesar Cipher. এটা পৃথিবীর প্রথম

 cipher , একে অনেকই shift Cipher বা ROT-13/ Rotational Cipher বলে থাকেন । 
এটা দিয়ে English alphabet এর অক্ষরগুলো ascending করে তারপর ডাটাকে encrypt করা হয় ।

Decryption: Encrypted data কে যে পদ্ধতিতে 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 । 

যেখানে মাত্র ১৬ টা character ব্যাবহার করা হয় ডাটা  encrypt/decrypt করার সময় । এই ১৬ টা ক্যারেক্টার
 হচ্ছে 0-9 & A-F । এটা একটা 128 bit / 16 byte value . একে base-16 ও বলা হয়ে থাকে । 
সব থেকে জনপ্রিয় hexadecimal hash value হচ্ছে MD5 ।

Base-32: Base 32 হচ্ছে ক্যারেক্টার এর hash value । এতে A-Z ও 2-7 ক্যারেক্টার গুলো ব্যাবহার করা হয় ।


 একটা example হচ্ছে ঃ d41d8cd98f00b204e9800998ecf8427e 


Base-64: base 64 আর একটা hash value । এতে A-Z ও 0-9 এবং কিছু বিশেষ সিম্বল ব্যাবহার করা হয় । 

Base 64 সবসময় "=" দ্বারা শেষ হয় । Example : 1B2M2Y8AsgTpgAmY7PhCfg== 

Collisions: যখন ২ টা আলাদা আলাদা hash value এর একরকম encryption হবে তখন টা server 

এ বিভ্রান্তি সৃষ্টি করে । এই বিভ্রান্তি কে collisions বলা হয় । এটা আসলে হ্যাকারদের জন্য আশীর্বাদ । তারা এটাকে 
ভালবেসে "God mode birthday attack " বলে থাকে । collisions হলে server hang থেকে crush ও হতে পারে । Ex- মনে করুন ABDUL শব্দটির encryption হচ্ছে ঃ 9b306ab04ef5e25f9fb89c998a6aedab আবার ধরুন FREAK  শব্দটির encryption হচ্ছে: 9b306ab04ef5e25f9fb89c998a6aedab 

ভালো করে খেয়াল  করে দেখবেন দুটি encryption এ হবহু  একই রকম । এটাকে collisions  বলা হয় ।



SALT: salt হচ্ছে হ্যাকারদের দুঃস্বপ্ন । বিশেষত AI upgraded server গুলোতে SALT দেখা যায় । 

যেকোনো ডাটাকে সুরক্ষিত করার উদ্দেশে একটা encrypted লাইন এর শেষে কয়েকটা ক্যারেক্টার যোগ করে দেওয়া কে 
SALT/SALTING বলে । SALTING করা যেকোনো ডাটা decrypt করা একেবারে অসম্ভব ! 
যেমন ধরুন “1sf5651etg64sfg” হচ্ছে একটা encrypted data. এখন এর শেষে যদি যার ২-৩ টা ক্যারেক্টার 
যেমন ud7 যোগ করে দেই তাহলে ওটা decrypt করা অসম্বব । কোন সুপার কম্পিউটারও পারবে না ।



এইরকম ডাটা decrypt করতে হলে তার key দরকার । যদি key and encrypted data দেওয়া থাকে তবে টা 

decrypt করা একদম ইজি । key সাধারণত যে sequence এ encryptকরা হয় তার উল্লেখ । যেমন ধরুন আমাদের 
একটা encrpted data দেওয়া আছে ঃ 

3AcTBJCzggwY3LCyzIhJBJhtzewSA+5dyuQhaKcDzI3agWCRz+YC3OZMCdyG এবং এর কী হবে

 BASE-64 –>FERON-74 –> GILA 7

অর্থাৎ ডাটা টি যাই হোক না কেন তা প্রথমে BASE-64 এ encrypt করা হয়েছে । পরের ধাপে BASE-64 থেকে প্রাপ্ত

 encrypted data কে FERON -74 এ আবার encrypt করা হয়ছে। সেটাকে পরে GILA 7 এ encrypt 
করা হইছে এবং সর্বশেষ encrypted data টাই আমাদের প্রদত্ত ডাটা টি ।এখন এটাকে decrypt করতে হলে আমাদের কে encryption এর ধাপগুলো ঠিক উল্টোভাবে use করতে হবে । প্রথমে GILA 7 এ decrypt
 করতে হবে ।ডাটা encrypt/decrypt করার জন্য অনেক সাইট আছে তবে আমি
 http://crypo.bz.ms/encryptors সাইট তা use করি । চলুন কাজ শুরু করে দেই... :P

১) প্রদত্ত data:3AcTBJCzggwY3LCyzIhJBJhtzewSA+5dyuQhaKcDzI3agWCRz+YC3OZMCdyG

 প্রথমে GILA 7 এ decrypt করবো ।

২) এবার এটাকে FERON-74 এ decrypt করে পাই YW1pJTIwZWtqb24lMjBiYW5nbGFkZWhp


৩) সর্বশেষ ধাপ । প্রাপ্ত decrypted data কে এখন BASE-64 এ decrypt করলেই আমরা আসল ডাটাটা পেয়ে যাব ।

 কারন এটাই key এর প্রথম /terminal hash value. 

4) decrypt করার পরে আমরা পাই ami ekjon bangladehi !


এগুলোই ছিল cryptography এর উপর basic ধারনা । 


ENCRYPTED DATA 2 ] K2NPKVWYDINXRM0/JZJ1NMMQMVOPLMMXN+FXNXJHLKJGM29DN1S1LVXUEIWYJUKXO2C7EXIYO/I7OLJRJ2OAJLIWOFOZLX1YK2NPKTGDK1J6JU07RKS6FUK8ODE5


CORRECT KEY: BASE-64 –> TRIPO – 5 –> HAZZ-15 –> MEGAN35




ডার্ক ওয়েব নিয়ে পড়ুন আরো -  ডার্ক ওয়েব
হ্যাকিং নিয়ে পড়ুন আরো - হ্যাকিং