విషయాల అంశం:
- పరిచయం
- ముందస్తు జ్ఞానం
- అఫైన్ సైఫర్ ఈక్వేషన్
- పైథాన్ని ఉపయోగించి అఫైన్ సైఫర్ ఎన్క్రిప్షన్
- భావన యొక్క రుజువు
- ముగింపు
- తరచుగా అడిగే ప్రశ్నలు (FAQలు)
అఫైన్ సాంకేతికలిపి ఒక నిర్దిష్ట రకమైన ప్రత్యామ్నాయ సాంకేతికలిపిని సూచిస్తుంది, ఇది మోనోఅల్ఫాబెటిక్ సాంకేతికలిపిల వర్గంలోకి వస్తుంది. అత్యంత ప్రసిద్ధ సీజర్ సాంకేతికలిపి వలె కాకుండా, ప్రతి అక్షరాన్ని సాధారణ టెక్స్ట్లో స్థిరమైన మూడు సంఖ్యల స్థానాల ద్వారా మారుస్తుంది, అఫైన్ సాంకేతికలిపి రెండు కీలను (a మరియు b) ఉపయోగిస్తుంది. కీలను ఎంచుకోవడం ప్రత్యేక శ్రద్ధ అవసరం.
ముందస్తు జ్ఞానం
నేటి అంశాన్ని లోతుగా అర్థం చేసుకోవడానికి, మీరు ఈ క్రింది అంశాలను అర్థం చేసుకోవాలి:
- గ్రేటెస్ట్ కామన్ డివైజర్ (GCD) & కో-ప్రైమ్ నంబర్
- మాడ్యులర్ అంకగణితం
ఆ భావనలు 'అఫైన్ సైఫర్ మ్యాథమెటికల్ అప్రోచ్' అనే మునుపటి కథనంలో వివరంగా వివరించబడ్డాయి.
అఫైన్ సైఫర్ ఈక్వేషన్
అఫైన్ సైఫర్ ఎన్క్రిప్షన్ కోసం ఫార్ములాతో ప్రారంభిద్దాం:
E(x) = (a.x + b) mod m | |
---|---|
మాజీ) | x ఆల్ఫాబెటికల్ ఇండెక్స్ యొక్క ఎన్క్రిప్షన్ను సూచిస్తుంది |
a | 'ప్రత్యేక' మొదటి కీ యొక్క సూచిక విలువ |
x | సాదా అక్షరం యొక్క సూచిక విలువ |
బి | రెండవ కీ యొక్క సూచిక విలువ (అదనపు షిఫ్ట్ విలువ) |
mod m | వర్ణమాల యొక్క మొత్తం మాడ్యులో కార్యకలాపాలు 26 |
ఆల్ట్-ఇమేజ్ & క్యాప్షన్ : అఫైన్ సైఫర్ ఈక్వేషన్
ఉదాహరణకు, మేము 7 మరియు 13 కీలతో “BIMANDO” సాదా వచనాన్ని గుప్తీకరించాలనుకుంటున్నాము. కింది పట్టిక సూచికను ఉపయోగించి, మేము ముందుగా సాదా వచనాన్ని దాని సంబంధిత సంఖ్యగా మారుస్తాము:
ఆల్ట్-ఇమేజ్ & క్యాప్షన్ : ఇండెక్స్ నంబరింగ్
“BIMANDO” సాదా వచనం “1 8 12 0 13 3 14”కి సూచిక సంఖ్యగా మార్చబడింది.
ప్రత్యామ్నాయ చిత్రం & శీర్షిక : సాదాపాఠాన్ని ఇండెక్స్ నంబరింగ్ విలువగా మార్చండి
అప్పుడు, మేము సమీకరణ గణనను వర్తింపజేస్తాము మరియు ఫలితం క్రింది విధంగా చూపబడుతుంది:
ప్రత్యామ్నాయ చిత్రం & శీర్షిక : అఫైన్ సైఫరింగ్
కాబట్టి, “BIMANDO” సాదాపాఠం Affine సైఫర్ని ఉపయోగించి 7 మరియు 13 కీలతో గుప్తీకరించబడింది, దీని ఫలితంగా “URTNAIH” వస్తుంది.
పైథాన్ని ఉపయోగించి అఫైన్ సైఫర్ ఎన్క్రిప్షన్
ఇప్పుడు, మేము పేరాగ్రాఫ్ల సమూహాన్ని కలిగి ఉన్న రహస్య సందేశాన్ని పంపాలనుకుంటున్నాము. మాన్యువల్ ప్రాసెస్తో అఫైన్ సైఫర్ ఎన్క్రిప్షన్ చేయడం చాలా శ్రమ మరియు సమయం తీసుకుంటుంది మరియు మిస్ గణనకు ఎక్కువ అవకాశం ఉంది, సరియైనదా? కాబట్టి, అఫైన్ సైఫర్ ఎన్క్రిప్షన్ ప్రాసెస్ను ఆటోమేట్ చేసే ప్రోగ్రామ్ అవసరం. పైథాన్ ప్రోగ్రామ్ను రూపొందించడానికి క్రింది దశల వారీ ప్రక్రియ:
1. అవసరమైన లైబ్రరీలను దిగుమతి చేయండి
మా ప్రోగ్రామ్ వరుసగా కమాండ్-లైన్ ఆర్గ్యుమెంట్ పార్సింగ్, స్ట్రింగ్ ఆపరేషన్లు మరియు ఆపరేటింగ్ సిస్టమ్-సంబంధిత ఫంక్షనాలిటీ కోసం అవసరమైన argparse, string మరియు os వంటి మాడ్యూల్లను దిగుమతి చేయడం ద్వారా ప్రారంభమవుతుంది.
దిగుమతి స్ట్రింగ్
దిగుమతి మీరు
2. ఆల్ఫాబెట్ మ్యాపింగ్ను నిర్వచించడం
అప్పుడు, మేము వర్ణమాలని చిన్న ఆంగ్ల అక్షరాల స్ట్రింగ్గా నిర్వచించాము. ఇది తరువాత గుప్తీకరణ ప్రక్రియలో అక్షరాలను మ్యాపింగ్ చేయడానికి ఉపయోగించబడుతుంది.
3. అఫైన్ సైఫర్ ఎన్క్రిప్షన్ ఫంక్షన్
ఇది మా ప్రోగ్రామ్ యొక్క ప్రధాన విధి. ఇది ఇన్పుట్ టెక్స్ట్ మరియు “a” మరియు “b” అనే రెండు కీలను తీసుకుంటుంది మరియు టెక్స్ట్ యొక్క నిర్మాణాన్ని భద్రపరిచే టెక్స్ట్కు అఫైన్ సైఫర్ ఎన్క్రిప్షన్ను వర్తింపజేస్తుంది.
ఎన్క్రిప్టెడ్_టెక్స్ట్ = ''
కోసం చార్ లో వచనం:
ఉంటే చార్. తక్కువ ( ) లో వర్ణమాల:
ఉంటే చార్. ఇసప్పర్ ( ) :
ఎన్క్రిప్టెడ్_టెక్స్ట్ + = chr ( ( ( a * ( పదం ( చార్. తక్కువ ( ) ) - 97 ) + బి ) % 26 ) + 65 )
లేకపోతే :
ఎన్క్రిప్టెడ్_టెక్స్ట్ + = chr ( ( ( a * ( పదం ( చార్ ) - 97 ) + బి ) % 26 ) + 97 )
లేకపోతే :
4. షరతులతో కూడిన ప్రధాన తనిఖీ
ఈ బ్లాక్ కోడ్లో, ఇది ప్రధాన ప్రోగ్రామ్గా అమలు చేయబడుతుందో లేదో తనిఖీ చేయండి. ఇది స్క్రిప్ట్ మరియు దాని ఆర్గ్యుమెంట్ల వివరణలతో ఆర్గ్యుమెంట్ పార్సర్ను సెటప్ చేస్తుంది. అవసరమైన ఆర్గ్యుమెంట్ అనేది టెక్స్ట్ ఫైల్ ఇన్పుట్ యొక్క మార్గం మాత్రమే. మేము అవుట్పుట్ పాత్ను పేర్కొననప్పుడు, ఇన్పుట్ ఫైల్ పేరుకు “_encrypted” జోడించబడి డిఫాల్ట్గా సెట్ చేయాలని మేము కోరుకుంటున్నాము. “కీలు” వాదన కోసం, మేము దానిని “a,b”కి ఫార్మాట్ చేయాలనుకుంటున్నాము. కానీ మేము దానిని సెట్ చేస్తే, డిఫాల్ట్ 5 మరియు 8.
పార్సర్ = argparse. ఆర్గ్యుమెంట్ పార్సర్ ( వివరణ = 'టెక్స్ట్ ఫైల్ నుండి అఫైన్ సైఫర్ ఎన్క్రిప్షన్' )
పార్సర్ . add_argument ( 'input_file' , సహాయం = 'ఇన్పుట్ టెక్స్ట్ ఫైల్కి మార్గం' )
పార్సర్ . add_argument ( '-k' , '--కీలు' , రకం = str , డిఫాల్ట్ = '5.8' , సహాయం = ''a,b' ఆకృతిలో అఫైన్ సైఫర్ కోసం కీలు' )
ఆర్గ్స్ = పార్సర్ . పార్స్_ఆర్గ్స్ ( )
a , బి = పటం ( int , ఆర్గ్స్. కీలు . విడిపోయింది ( ',' ) )
తో తెరవండి ( ఆర్గ్స్. ఇన్పుట్_ఫైల్ , 'r' ) వంటి ఫైల్ :
వచనం = ఫైల్ . చదవండి ( )
# ఇన్పుట్ ఫైల్ పాత్ నుండి ఫైల్ పేరును సంగ్రహించండి
ఇన్పుట్_ఫైల్ పేరు , పొడిగింపు = మీరు . మార్గం . స్ప్లిటెక్స్ట్ ( ఆర్గ్స్. ఇన్పుట్_ఫైల్ )
default_output_file = ఇన్పుట్_ఫైల్ పేరు + '_ఎన్క్రిప్టెడ్' + పొడిగింపు
# అఫైన్ సాంకేతికలిపిని ఉపయోగించి వచనాన్ని గుప్తీకరించండి
ఎన్క్రిప్టెడ్_టెక్స్ట్ = affine_cipher_encryption ( వచనం , a , బి )
# గుప్తీకరించిన వచనాన్ని కొత్త ఫైల్కి వ్రాయండి
తో తెరవండి ( default_output_file , 'లో' ) వంటి ఫైల్ :
ఫైల్ . వ్రాయడానికి ( ఎన్క్రిప్టెడ్_టెక్స్ట్ )
చివరగా, ఎన్క్రిప్షన్ ఫంక్షన్ పూర్తయిన తర్వాత, మా ప్రోగ్రామ్ ఇన్పుట్ ఫైల్ వలె అదే ఫైల్ పొడిగింపుతో అవుట్పుట్ను సేవ్ చేస్తుంది.
ఇప్పుడు, దానిని “affine_cipher.py”కి సేవ్ చేయండి. ఇప్పుడు, కింది ఆదేశాన్ని టైప్ చేయడం ద్వారా ప్రోగ్రామ్ను అమలు చేయండి:
పైథాన్ affine_cipher. py -hమీకు లోపం కనిపించకపోతే, అవుట్పుట్ క్రింది చిత్రం వలె కనిపిస్తుంది:
ప్రత్యామ్నాయ చిత్రం & శీర్షిక : అఫైన్ సైఫర్ పైథాన్ ప్రోగ్రామ్
భావన యొక్క రుజువు
మేము ఈ క్రింది “message.txt” పేరుతో రహస్య సందేశాన్ని కలిగి ఉన్నాము మరియు మేము దానిని మా సభ్యులకు ప్రసారం చేయాలనుకుంటున్నాము:
ప్రత్యామ్నాయ చిత్రం & శీర్షిక : సాధారణ అక్షరాల
కాబట్టి, 3 మరియు 7 కీలతో Affine సాంకేతికలిపిని ఉపయోగించి ఈ సందేశాన్ని గుప్తీకరించాలనుకునే ముందు మేము సృష్టించిన ప్రోగ్రామ్ను ఉపయోగిస్తాము. ఆదేశం క్రింది విధంగా ఉంది:
పైథాన్ affine_cipher. py సందేశం. పదము -కె 3 , 7
ప్రత్యామ్నాయ చిత్రం & శీర్షిక : అఫైన్ సైఫర్ పైథాన్ ప్రోగ్రామ్
ఒక రెప్పపాటు వేగంతో, గుప్తీకరించిన సందేశం విజయవంతంగా సృష్టించబడుతుంది మరియు “message_encrypted.txt”కి సేవ్ చేయబడుతుంది. సందేశం ఎలా ఉందో చూద్దాం:
ప్రత్యామ్నాయ చిత్రం & శీర్షిక : అఫైన్ సైఫర్టెక్స్ట్
మీరు గమనిస్తే, సందేశం గిలకొట్టింది. సాంకేతికలిపి పద్ధతి మరియు దాని కీలు తెలిసిన మా సభ్యులు మాత్రమే సందేశాన్ని డీక్రిప్ట్ చేయగలరు.
మీరే ప్రయత్నించండి
మా GitHub పేజీలో ఈ ప్రోగ్రామ్ సోర్స్ కోడ్ని డౌన్లోడ్ చేయండి https://github.com/bimando/Affine-Cipher .
ముగింపు
ముగింపులో, అఫైన్ సైఫర్ ఎన్క్రిప్షన్ పద్ధతి, మోనోఅల్ఫాబెటిక్ ప్రత్యామ్నాయ సాంకేతికలిపి యొక్క ఒక రూపం, రెండు కీల వినియోగం ద్వారా మెరుగైన భద్రతను అందిస్తుంది, కీ ఎంపిక సమయంలో జాగ్రత్తగా పరిశీలించాలని డిమాండ్ చేస్తుంది. గ్రేటెస్ట్ కామన్ డివైజర్ (GCD), సహ-ప్రధాన సంఖ్యలు మరియు మాడ్యులర్ అర్థమెటిక్ వంటి భావనలను అర్థం చేసుకోవడం అఫైన్ సాంకేతికలిపి యొక్క చిక్కులను గ్రహించడం కోసం చాలా అవసరం.
అఫైన్ సైఫర్ సమీకరణం, E(x) = (a.x + b) mod m, ఎన్క్రిప్షన్ కోసం ప్రాథమిక సాధనంగా పనిచేస్తుంది, ఇక్కడ “a” మరియు “b” కీలను సూచిస్తాయి మరియు “x” సాదా అక్షరం యొక్క సూచికను సూచిస్తుంది. అఫైన్ సైఫర్ ఎన్క్రిప్షన్ ప్రాసెస్ కోసం ఆటోమేటెడ్ పైథాన్ ప్రోగ్రామ్ యొక్క అమలు పెద్ద-స్థాయి ఎన్క్రిప్షన్ పనులను సమర్థవంతంగా క్రమబద్ధీకరించడానికి ప్రదర్శించబడింది. ప్రోగ్రామ్ లైబ్రరీల దిగుమతి, ఆల్ఫాబెట్ మ్యాపింగ్, ఎన్క్రిప్షన్ ఫంక్షన్ మరియు ఇన్పుట్ మరియు అవుట్పుట్ పాత్ల కోసం కమాండ్-లైన్ ఆర్గ్యుమెంట్ పార్సింగ్తో సహా కీలకమైన కార్యాచరణలను కలిగి ఉంటుంది. ముఖ్యంగా, అతుకులు లేని ఎన్క్రిప్షన్ ప్రక్రియను సులభతరం చేయడానికి స్క్రిప్ట్ కీలు మరియు అవుట్పుట్ ఫైల్ పేర్ల కోసం డిఫాల్ట్ సెట్టింగ్లను ప్రారంభిస్తుంది.
తరచుగా అడిగే ప్రశ్నలు (FAQలు)
Q1: అఫైన్ సాంకేతికలిపి అంటే ఏమిటి మరియు ఇది సీజర్ సాంకేతికలిపి నుండి ఎలా భిన్నంగా ఉంటుంది?
A1: అఫైన్ సైఫర్ అనేది ఒక రకమైన మోనోఅల్ఫాబెటిక్ ప్రత్యామ్నాయ సాంకేతికలిపి, ఇది ఎన్క్రిప్షన్ కోసం “a” మరియు “b” అనే రెండు కీలను ఉపయోగిస్తుంది. దీనికి విరుద్ధంగా, సీజర్ సాంకేతికలిపి సాధారణ టెక్స్ట్లోని ప్రతి అక్షరానికి మూడు స్థానాల స్థిర మార్పును ఉపయోగిస్తుంది.
Q2. అఫైన్ సాంకేతికలిపిని అర్థం చేసుకోవడానికి ముందస్తు అవసరాలు ఏమిటి?
A2: అఫైన్ సాంకేతికలిపిని పూర్తిగా అర్థం చేసుకోవడానికి, గ్రేటెస్ట్ కామన్ డివైజర్ (GCD), సహ-ప్రధాన సంఖ్యలు మరియు మాడ్యులర్ అంకగణితం వంటి కాన్సెప్ట్లపై పట్టు సాధించడం చాలా ముఖ్యం.
Q3: పైథాన్లోని అఫైన్ సాంకేతికలిపిని ఉపయోగించి నేను సందేశాన్ని ఎలా గుప్తీకరించగలను?
A3: అఫైన్ సైఫర్ ఎన్క్రిప్షన్ ప్రాసెస్ను ఆటోమేట్ చేయడానికి, మీరు వ్యాసంలో వివరించిన పైథాన్ ప్రోగ్రామ్ను ఉపయోగించవచ్చు. ప్రోగ్రామ్ పెద్ద-స్థాయి టెక్స్ట్ ఇన్పుట్లను సమర్థవంతంగా ఎన్క్రిప్ట్ చేస్తుంది, ఎన్క్రిప్షన్ విధానాన్ని సులభతరం చేస్తుంది. లైబ్రరీలను దిగుమతి చేసుకోవడం, వర్ణమాల మ్యాపింగ్ను నిర్వచించడం, ఎన్క్రిప్షన్ ఫంక్షన్ను సృష్టించడం మరియు ఇన్పుట్ మరియు అవుట్పుట్ పాత్ల కోసం కమాండ్-లైన్ ఆర్గ్యుమెంట్లను అన్వయించడంపై కథనం దశల వారీ సూచనలను అందిస్తుంది.