பணப்பெட்டியை அனுப்புவது எப்படி?
நீங்கள் என்னிடம் ஒரு பெட்டியை அனுப்பினால் நம்மிருவரிடமும் ஒரே மாதிரியான சாவி - அதாவது என்னிடம் ஒரு டூப்ளிகேட் சாவி இருக்கவேண்டும். நீங்கள் எந்த சாவியை வைத்து பூட்டினீர்களோ அதன் டூப்ளிகேட் சாவியை வைத்துதான் நான் திறக்கவேண்டும் அல்லவா? நம்மிருவரின் சாவியும் symmetrical keys. சரி எப்படி இந்த சாவியை பகிர்ந்து நம்மிடையே கொள்வது? அதாவது உங்களுக்கு ஒன்று எனக்கு ஒன்று என்று?
ஒன்று, நான் உங்களிடம் வந்து சாவியைப் பெற்றுக்கொள்ளவேண்டும் அல்லது நீங்கள் சாவியை எனக்கு அனுப்பவேண்டும். நீங்கள் அனுப்பும் போது அதனை 3வது நபர் இன்னொரு duplicate செய்துவிட்டால்? இப்போ triplicate ஆகிவிட்டது. இந்த சாவித் திருட்டு நமக்குத் தெரியாது எனில் ஆபத்து. இப்போது நீங்கள் பணப்பெட்டியை எனக்கு அனுப்பினால் அந்த மூன்றாம் நபர் அதனை திருடிக்கொள்ள வாய்ப்பு உள்ளது. ஆகவே இந்த சாவிப் பகிர்வு (key distribution) ஒரு மிகப்பெரிய தலைவலி. மேலும் என்னைபோல உங்களுக்கு 1000 வாடிக்கையாளர்கள் இருந்தால்? எல்லாருக்கும் ஒரே மாதிரியான சாவிப் பிரதியை வைத்துக்கொள்வதும் ஆபத்து. எனக்கு நீங்கள் அனுப்பிய பணப்பெட்டியை உங்கள் வாடிக்கையாளர் யாராவது அவரது சாவியை வைத்து திறந்து என் பணத்தை எடுத்துவிட்டால், வெறும் பெட்டிதான் எனக்கு வரும். எனவே ஒவ்வொரு வாடிக்கையாளருக்கும் தனித்தனி சாவி வேண்டும். இப்போது 2 தலைவலிகள். 1. டூப்ளிகேட் சாவிகளை பாதுகாப்பாக அனுப்புவது. 2. நீங்கள் 1000 சாவிகளை பராமரிப்பது.
அதே நேரத்தில் எனக்கும் பல இடங்களில் இருந்து பணப்பெட்டிகள் வரவேண்டும் என்றால், அந்தந்த டூப்ளிகேட் சாவிகளை பராமரிப்பது எனக்கும் தலைவலி தான். வேறு வழியில்லை. Symmetric key உள்ள ஒரு systemல் சாவிகளை பாதுகாப்பாக அனுப்பவதும் அந்த சாவிகள் எல்லாவற்றையும் பராமரிப்பதும் தலைவலி தான்.
இதே தலைவலி & ஆபத்துகள் cryptography-யிலும் உண்டு. ஒரு ரகசிய செய்தியை encryption key என்ற சாவியை வைத்து பூட்டி இன்னொருவருக்கு அனுப்பினால் அவரும் அதே encryption key (decryption) என்ற சாவி வைத்து தான் திறந்து படிக்கமுடியும். ஆகவே உங்களுடைய அந்த encryption keyயை தபாலில் அனுப்பவேண்டும். அல்லது தொலைபேசியில் சொல்லவேண்டும். அப்போது யாராவது ஒட்டுக் கேட்கலாம். தபாலிலும் அதே பிரச்சனை. எனவே Key Distribution ஒரு தலைவலி தான். இந்த முறையில் encryption பண்ணுவதை symmetric encryption என்று கூறுவர். அதாவது அனுப்புனரும் பெருநரும் ஒரே encryption keyஐ வைத்திருக்கவேண்டும்.
சரி மீண்டும் பணப்பெட்டி பிரச்சனைக்கு வருவோம். சாவிப் பகிர்விற்கு ஒரு தீர்வு உள்ளது. நான் ஒரு அமுக்குப் பூட்டு (press pad lock) வாங்கி அதனை திறந்து சாவியை நான் வைத்துக் கொள்வேன். பூட்டை மட்டும் திறந்த நிலையில் உங்களுக்கு அனுப்பிவிடுவேன். நீங்கள் பெட்டியில் பணத்தை வைத்து என்னுடைய பூட்டை கொண்டு ஒரு அமுக்கு அமுக்கினால் பூட்டிவிடலாம். இப்போது நீங்கள் அந்த பணப்பெட்டியை எனக்கு அனுப்பலாம். என்னிடமுள்ள சாவியைக் கொண்டு திறந்துகொள்வேன். இதேபோல உங்களுடைய மற்ற வாடிக்கையாளர்களையும் பின்பற்றச் சொல்லலாம். இப்படியாக Key Distribution பிரச்சனையும் முடிந்தது. அதோடு சாவிகளையும் நீங்கள் பராமரிக்கத் தேவையில்லை. இவ்வாறு நீங்கள் பணம் விநியோகிக்கலாம்.
இந்த வழியை cryptography-யிலும் பயன்படுத்தலாம். நான் உங்களுக்கு public keyஐ அனுப்பிவிடுவேன். அதனை யாரும் பயன்படுத்தலாம். அதனை வைத்து அவர்கள் தகவலை encryption செய்வார்கள். அந்த சங்கேதமாக்கப்பட்ட தகவலை எனக்கு அனுப்புவார்கள். நான் என்னுடைய private keyஐ பயன்படுத்தி decrypt பண்ணுவேன்.
இந்த publicly keyஐ வைத்து encrypt செய்ததை அதே public key வைத்து decrypt பண்ண முடியாது. இப்படி இரு பக்கமும் வெவ்வேறு key இருப்பதால் இதற்குப் பெயர் asymmetric cryptography. இந்த asymmetric key ஒரு வித்தையும் இல்லை. சின்ன பெருக்கல் கணக்கு வழியா சொல்லித் தருகிறேன். 2 prime numberஐ எடுத்துக்கொள்வேன். அதனை பெருக்கினால் வரும் (23x47 = 1081) எண்தான் public key. நான் அதனை public-க்கா தெரிவிக்கலாம். ஆனா அந்த இரு prime number (23 & 47)ஐ சொல்லிவிடக்கூடாது. அந்த இரண்டும் என்னுடைய private key. நீங்கள் ஒரு encryption key தேர்வு செய்து அதனுடன் உங்கள் செய்தியை encrypt பண்ணி அனுப்புங்கள். நான் என்னுடைய private key வைத்து திறந்து கொள்வேன். கணித விவரம் வேண்டுவோர் படத்தை பார்த்துத் தெரிந்து கொள்ளலாம்.
யாராவது அந்த public key - க்கான பெருக்கல் காரணிகளை (23 & 47)ஐ கண்டுபிடிக்க முடிந்தால் நம்முடைய செய்திகளை உடைத்துவிடுவார்கள்.
encrypt பண்ணி அனுப்புங்கள். நான் என்னுடைய private key வைத்து திறந்து கொள்வேன். கணித விவரம் வேண்டுவோர் படத்தை பார்த்துத் தெரிந்து கொள்ளலாம். யாராவது அந்த public key - க்கான பெருக்கல் காரணிகளை (23 & 47)ஐ கண்டுபிடிக்க முடிந்தால் நம்முடைய செய்திகளை உடைத்துவிடுவார்கள்.
இந்த பெருக்கல் காரணகளை கண்டுபிடிப்பது அவ்வளவு கடினமா? உங்கள் தகவலுக்காக, நம்முடைய கணிணிகளுக்கு பெருக்கல் கணக்கு தான் தெரியும். வகுத்தல் கணக்கு வராது. பெருக்கல் வாய்ப்பாடு மூலம் ஒவ்வொரு எண்ணாக போட்டு தான் விடையை சொல்லும். ஆனா 1081 போன்ற 4 இலக்க எண்ணை எளிதாக வகுத்து காரணிகளை கண்டுபிடித்துவிடும் ஆனால் பெரிய்ய எண்களை? ம்ஹூம். ரொம்ப நேரம் எடுக்கும். நம் வங்கிகள் க்ரெடிக் கார்டுகளில் asymmetric cryptographyயான RSA 1024ஐ தான் பயன்படுத்துகிறன. அதாவது 1024 bits அல்லது 309 இலக்க எண்.
இந்த இலக்கம் கொண்ட public keyஐ ஆற்றல் வாய்ந்த கணிணிகள் அதன் இரு காரணிகளை கண்டுபிடிக்க 10 ஆண்டுகளாகுமாம். உங்களால் சீக்கிரம் கண்டுபிடிக்க முடிந்தால் $100,000 பரிசு உண்டு. RSA2048 ஐ உடைக்க 300 ட்ரில்லியன் ஆண்டுகளாகும். (ஆனால் குவாண்டம் கணிணி சில 4000 qubitகளைக் கொண்டு சில மணிநேரங்களில் கண்டுபிடித்துவிடும்) ஆக அப்படிப்பட்ட குவாண்டம் கணிணிகள் வரும் வரை நம் வங்கிப் பரிமாற்றங்கள் பாதுகாப்பானது தான்.
ஒரு கொசுறு செய்தி: Blockchainல் வரும் cryptocurrency பணம் என்பது என்ன தெரியுமா? இந்த மிக நீண்ட private key தான் உங்கள் பணம். அந்த private keyஐ மறந்தாலோ / தொலைந்தாலோ, ஒன்னும் பண்ணமுடியாது. க்ரிப்டோ-பணத்தை மீட்க முடியாது.
ஆக பண்டமாக ஆரம்பித்த பணப் பரிமாற்றங்கள், தங்கமாக பரிணமித்து வெள்ளியாக மாறி கடைசியாக காகித உருவை அடைந்த நம் பணம் கடைசியில் வெறும் bits & bytesஆக உள்ள தகவல் தானா? ஒன்றுமே இல்லையா? Wait a second! தகவலும் ஒரு பொருள் தான் (Information is physical)




கருத்துகள்
கருத்துரையிடுக