ഗൂഢശാസ്ത്ര ഹാഷ് ഫങ്ഷൻ

അനിയന്ത്രിതമായി ഡാറ്റാ ബ്ലോക്കുകൾ സ്വീകരിച്ച് ഹാഷ് വില എന്ന ഒരു പ്രത്യേക നീളമുള്ള ബിറ്റുകളുടെ ശ്രേണി ഉല്പാദിപ്പിക്കാൻ കഴിവുള്ള നിർണ്ണിതമായ ക്രിയാനുസാരമാണ് (deterministic procedure) **ഗൂഢശാസ്ത്ര ഹാഷ് ഫങ്ഷൻ** (**cryptographic hash function**), ഇവയ്ക്ക് നൽകുന്ന ഡാറ്റയിൽ അറിഞ്ഞോ അറിയാതെയോ  മാറ്റം ഉണ്ടാകുമ്പോൾ ഹാഷ് വിലയിലും മാറ്റം ഉണ്ടാകുന്നു. ഇവിടെ  എൻകോഡ് ചെയ്യാനായി നൽകുന്ന ഡാറ്റയെ "സന്ദേശം" ("message") എന്നും ഫലമായി ലഭിക്കുന്ന ഹാഷ് വിലയെ **സന്ദേശ സംഗ്രഹം** അഥവാ **മെസ്സേജ് ഡയജസ്റ്റ്** അല്ലെങ്കിൽ ലളിതമായി **ഡയജസ്റ്റ്** എന്നും പറയുന്നു.

ഒരു ആദർശ ഗൂഢശാസ്ത്ര ഹാഷ് ഫങ്ഷന് ഉണ്ടായിരിക്കേണ്ട നാല് പ്രധാന ഗുണങ്ങൾ ഇവയാണ്:
*നൽകിയിരിക്കുന്ന ഏത് സന്ദേശത്തിന്റെയും ഹാഷ് വില കണ്ടുപിടിക്കുന്നത് എളുപ്പമായിരിക്കും,
*ഒരു ഹാഷ് വിലയിൽ നിന്ന് അതിന്റെ സന്ദേശത്തെ കണ്ടുപിടിക്കുന്നത് അസാധ്യമായിരിക്കും,
*ഹാഷ് വിലയിൽ മാറ്റം വരാതെ സന്ദേശത്തിൽ മാറ്റം വരുത്തുന്നത് അസാധ്യമായിരിക്കും,
*ഒരേ ഹാഷ് വില ലഭിക്കുന്ന രണ്ട് വ്യത്യസ്ത സന്ദേശങ്ങൾ കണ്ടുപിടിക്കുക അസാധ്യമായിരിക്കും.

വിവരസാങ്കേതിക വിദ്യയിലെ വിവരസുരക്ഷയുമായി ബന്ധപ്പെട്ട് വിവിധ ഉപയോഗങ്ങൾ ഗൂഢശാസ്ത്ര ഹാഷ് ഫങ്ഷനുകൾക്കുണ്ട്, ഡിജിറ്റൽ ഒപ്പുകൾ, ആധികാരിക സന്ദേശ കോഡുകൾ (message authentication code, MAC) തുടങ്ങി മറ്റു ആധികാരികതയെ ഉപയോഗപ്പെടുത്തുന്ന മേഖലകളിൽ ഇവ ഉപയോഗിക്കപ്പെടുന്നു. ഫയലുകൾ വേർതിരിച്ച് മനസ്സിലാക്കുന്നതിനുവേണ്ടിയുള്ള ഫിംഗർപ്രിന്റുകൾ; ഡാറ്റയിൽ വന്നുപോയേക്കാവുന്ന പിഴവുകൾ കണ്ടെത്തുന്നതിനുള്ള ചെക്ക്സമ്മുകൾ (checksums) തുടങ്ങിയവ തയ്യാറാക്കുന്നതിനുള്ള സാധാരണ ഹാഷ് ഫങ്ഷനുകളായും ഇവ ഉപയോഗപ്പെടുത്താവുന്നതാണ്. വിവരസുരക്ഷയുമായി ബന്ധപ്പെട്ട വിവിധ ഉപയോഗങ്ങൾക്കനുസരിച്ച് ഗൂഢശാസ്ത്ര ഹാഷ് വിലകളെ ഡിജിറ്റൽ വിരലടയാളങ്ങൾ, ചെക്ക്സമ്മുകൾ, അല്ലെങ്കിൽ ലളിതമായി ഹാഷ് വിലകൾ തുടങ്ങിയ പേരുകളിൽ വിളിക്കപ്പെടുന്നു.
## ഗുണങ്ങൾ
ഭൂരിഭാഗം ഗൂഢശാസ്ത്ര ഹാഷ് ഫങ്ഷനുകളും ഏത് വലിപ്പത്തിലുള്ള ഡാറ്റാ ശ്രേണിയും സ്വീകരിക്കുവാൻ ഒരു നിശ്ചിത വലിപ്പത്തിലുള്ള ഹാഷ് വില ഉല്പാദിപ്പിക്കുവാനും തക്കരീതിയിൽ രൂപകൽപ്പന ചെയ്യപ്പെട്ടവയാണ്. 

എല്ലാ തരത്തിൽപ്പെട്ട ഗൂഢശാസ്ത്ര ആക്രമണങ്ങളെയും പ്രതിരോധിക്കാൻ കഴിവുള്ളതായിരിക്കണം ഗൂഢശാസ്ത്ര ഹാഷ് ഫങ്ഷനുകൾ. ഇതിനു വേണ്ടി ഇനി  പറയുന്ന ഗുണങ്ങൾ  അവയ്ക്ക് അവശ്യം വേണ്ടവയാണ്:
* *മുൻരൂപ പ്രതിരോധം* (*Preimage resistance*): ഇവിടെ h എന്ന ഹാഷ് ഫങ്ങഷനിൽ m എന്ന ഏത് സന്ദേശത്തിന്റെയും ഹാഷ് വിലയിൽ നിന്ന് h = hash(m) എന്ന സന്ദേശം കണ്ടെത്തുക ക്ലേശകരമായിരിക്കണം. ഇത് ഏകദിശാ ഫലനം (one way function) എന്ന സങ്കല്പവുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു. ഈ ഗുണത്തിന്റെ അഭാവമുള്ള ഫങ്ഷനുകൾ മുൻരൂപ ആക്രമണങ്ങൾക്ക് (preimage attacks) വിധേയമാകാൻ സധ്യതയുണ്ട്.
* *രണ്ടാം മുൻരൂപ* പ്രതിരോധം (*Second preimage resistance*): m1  എന്ന  ഒരു സന്ദേശം ഉണ്ടെങ്കിൽ hash(m1) = hash(m2) എന്നത് സാധ്യമാകുന്ന m2 എന്ന മറ്റൊരു സന്ദേശം കണ്ടെത്തുന്നത് ക്ലേശകരമായിരിക്കണം. ഈ ഗുണത്തെ ദുർബല ഘട്ടന പ്രതിരോധം (weak collision resistance) എന്നും പറയാറുണ്ട്. ഈ ഗുണത്തിന്റെ അഭാവമുള്ള ഫങ്ഷനുകൾ രണ്ടാം മുൻരൂപ ആക്രമണങ്ങൾക്ക് (second preimage attacks) വിധേയമാകാനുള്ള സാധ്യതയുണ്ട്.
* *ഘട്ടന പ്രതിരോധം* (*Collision resistance*): hash(m1) = hash(m2) എന്നത് സാധ്യമാകുന്ന m1, m2 എന്ന രണ്ട് വ്യത്യസ്ത  സന്ദേശങ്ങൾ കണ്ടെത്തുന്നത് ക്ലേശകരമായിരിക്കണം. അത്തരം ജോഡികളെ ഗൂഢശാസ്ത്ര ഹാഷ് ഘട്ടനം (cryptographic hash collision) എന്നു വിളിക്കുന്നു. ഈ ഗുണത്തെ ശക്ത ഘട്ടന പ്രതിരോധം (strong collision resistance)  എന്നും പറയാറുണ്ട്. ഈ ഗുണം സ്വന്തമാകുവാൻ രണ്ടാം മുൻരൂപ പ്രതിരോധം ഗുണത്തിന് വേണ്ട ഹാഷ് വിലയുടെ ഇരട്ടി വലിപ്പമുള്ള ഹാഷ് വില ഉല്പാദിപ്പിക്കേണ്ടി വരും, അല്ലെങ്കിൽ ഘട്ടനങ്ങളെ ജന്മദിനാക്രമണം വഴി കണ്ടെത്താൻ സാധ്യതയുണ്ട്.

ഈ ഗുണങ്ങൾ വഴി ലക്ഷ്യമാക്കുന്നത് ഒരു എതിരാളിക്ക് ഡയ്ജസ്റ്റിൽ മാറ്റം വരാതെ സന്ദേശം മാറ്റിവയ്ക്കാനോ മാറ്റം വരുത്താനോ സാധിക്കരുത് എന്നാണ്. അതുവഴി രണ്ട് സന്ദേശങ്ങളുടെ ഡയജസ്റ്റുകൾ ഒന്നാണെങ്കിൽ ആ സന്ദേശങ്ങളും ഒന്നാണെന്ന് ഉറപ്പാക്കാൻ സാധിക്കണം.

## അവലംബം