Symmetric cryptosystems
Symmetric cryptosystems (din symmetric encryption, symmetric ciphers) ay isang paraan ng pag-encrypt kung saan pareho ang cryptographic na susi. Bago ang pag-imbento ng circuit a simetriko na pag-encrypt ang tanging paraan na umiral ay simetriko encryption. Ang algorithm key ay dapat na itago ng parehong partido. Ang algorithm key ay pinili ng mga partido bago magsimula ang pagpapalitan ng mga mensahe.
Sa kasalukuyan, ang mga simetriko cipher ay:
1. I-block ang mga cipher - proseso ng impormasyon sa mga bloke ng isang tiyak na haba (karaniwan ay 64, 128 bits), paglalapat ng isang susi sa bloke sa sa inireseta na paraan, kadalasan sa pamamagitan ng ilang mga cycle ng shuffling at substitution, na tinatawag na rounds. Ang resulta ng paulit-ulit na pag-ikot ay isang avalanche effect - isang pagtaas ng pagkawala ng bit correspondence sa pagitan ng mga bloke ng bukas at naka-encrypt na data.
2. Mga stream cipher - kung saan ang pag-encrypt ay isinasagawa sa bawat bit o byte ng orihinal (plain) na teksto gamit ang gamma. Ang isang stream cipher ay madaling malikha batay sa isang block cipher (halimbawa, GOST 28147-89 sa gamma mode), na inilunsad sa isang espesyal na mode.
Cryptographic system na may pampublikong susi
Ang pampublikong key cryptographic system (o Asymmetric encryption, Asymmetric cipher) ay isang sistema ng pag-encrypt ng impormasyon kung saan ang susi kung saan naka-encrypt ang mensahe at ang naka-encrypt na mensahe mismo ay ipinapadala sa isang bukas (iyon ay, hindi protektado, napapansin) na channel. Upang buuin ang pampublikong key at basahin ang naka-encrypt na mensahe, ginagamit ng tatanggap lihim na susi. Ang mga pampublikong key cryptographic system ay kasalukuyang malawakang ginagamit sa iba't-ibang mga protocol ng network, lalo na sa SSL protocol at mga protocol batay dito antas ng aplikasyon HTTPS, SSH, atbp.
kanin. 7.
1. Ang tatanggap ay bumubuo ng isang susi. Ang susi ay nahahati sa isang bukas at saradong bahagi. Sa kasong ito, ang pampublikong susi ay hindi dapat ipadala sa pamamagitan ng bukas na channel. O ang pagiging tunay nito ay dapat na ginagarantiyahan ng ilang nagpapatunay na awtoridad.
2. Ini-encrypt ng nagpadala ang mensahe gamit ang pampublikong key.
3. Ide-decrypt ng tatanggap ang mensahe gamit ang pribadong key.
Kakulangan ng pamamaraan: Kahit na ang mensahe ay ligtas na naka-encrypt, ang tatanggap at ang nagpadala ay nalantad sa mismong katotohanan ng pagpapadala ng isang naka-encrypt na mensahe.
Ang pangkalahatang ideya ng isang pampublikong key cryptographic system ay ang paggamit, kapag nag-encrypt ng isang mensahe, tulad ng isang function mula sa pampublikong key at ang mensahe (cipher function), na kung saan ay algorithmically napakahirap i-reverse, iyon ay, upang kalkulahin ang argumento nito mula sa halaga ng function, kahit na alam ang halaga ng susi.
Mga Tampok ng System
Advantage A simetriko cipher Ang bentahe ng simetriko cipher ay hindi na kailangang magpadala ng isang lihim na susi. Ang partidong nagnanais na makatanggap ng mga ciphertext, alinsunod sa ginamit na algorithm, ay bumubuo ng isang pares na "public key - private key". Ang mga pangunahing halaga ay nauugnay, ngunit ang pagkalkula ng isang halaga mula sa isa pa ay dapat na imposible mula sa isang praktikal na punto ng view. Ang pampublikong susi ay na-publish sa bukas na mga direktoryo at ginagamit upang i-encrypt ang impormasyon ng katapat. Ang pribadong key ay pinananatiling lihim at ginagamit upang i-decrypt ang mensaheng ipinadala sa may-ari ng key pair. Ang mga asymmetric cipher ay pinasimunuan noong 1976 nina Whitfield Diffie at Martin Hellman, New Directions in Modern Cryptography. Iminungkahi nila ang isang shared secret key exchange system batay sa discrete logarithm problem. Sa pangkalahatan, ang batayan ng mga kilalang asymmetric cryptosystem ay isa sa mga kumplikadong problema sa matematika, na nagpapahintulot sa pagbuo ng mga one-way na function at trap function. Halimbawa, ginagamit ng Rivest-Shamir-Adelman cryptosystem ang factorization problem malalaking numero, at ang Merkle-Hellman at Hoare-Rivest cryptosystems ay umaasa sa tinatawag na knapsack problem.
Mga kapintasan- ang mga asymmetric na cryptosystem ay nangangailangan ng mas malaking mapagkukunan ng computing. Bilang karagdagan, kinakailangan upang matiyak ang pagiging tunay (authenticity) ng mga pampublikong susi mismo, kung saan ang mga sertipiko ay karaniwang ginagamit.
Ang hybrid (o pinagsamang) cryptosystem ay isang sistema ng pag-encrypt na mayroong lahat ng mga pakinabang ng isang pampublikong key cryptosystem, ngunit wala ang pangunahing disbentaha nito - mababang bilis ng pag-encrypt.
Prinsipyo: Sinasamantala ng mga cryptographic system ang dalawang pangunahing cryptosystem: simetriko at a simetriko kriptograpiya. Ang mga programa tulad ng PGP at GnuPG ay binuo sa prinsipyong ito.
Pangunahing kawalan Ang asymmetric cryptography ay nailalarawan sa mababang bilis dahil sa kumplikadong mga kalkulasyon na kinakailangan ng mga algorithm nito, habang ang simetriko na cryptography ay tradisyonal na nagpapakita ng napakatalino na pagganap. Gayunpaman, ang mga simetriko na cryptosystem ay may isa makabuluhang sagabal-- ipinapalagay ng paggamit nito ang pagkakaroon ng isang secure na channel para sa pagpapadala ng mga key. Upang malampasan ang disbentaha na ito, gumamit sila ng mga walang simetriko na cryptosystem na gumagamit ng isang pares ng mga susi: pampubliko at pribado.
Pag-encrypt: Karamihan sa mga sistema ng pag-encrypt ay gumagana tulad ng sumusunod. Para sa isang simetriko algorithm (3DES, IDEA, AES o anumang iba pa), isang random na key ang nabuo. Ang ganitong susi ay karaniwang may sukat mula 128 hanggang 512 bits (depende sa algorithm). Ang isang simetriko algorithm ay pagkatapos ay ginagamit upang i-encrypt ang mensahe. Sa kaso ng mga block cipher, kinakailangang gumamit ng encryption mode (halimbawa, CBC), na magpapahintulot sa mensahe na ma-encrypt na may haba na mas malaki kaysa sa haba ng block. Tulad ng para sa random na key mismo, ito ay dapat na naka-encrypt gamit ang pampublikong susi ng tatanggap ng mensahe, at ito ay sa yugtong ito na ang isang pampublikong key cryptosystem (RSA o Diffie-Hellman Algorithm) ay inilapat. Dahil ang random key ay maikli, ang pag-encrypt ay nangangailangan ng kaunting oras. Ang pag-encrypt ng isang set ng mga mensahe gamit ang isang asymmetric algorithm ay isang computationally mas kumplikadong gawain, kaya mas mainam na gumamit ng simetriko na pag-encrypt. Pagkatapos ay sapat na upang magpadala ng isang mensahe na naka-encrypt na may simetriko algorithm, pati na rin ang kaukulang key sa naka-encrypt na form. Ang tatanggap ay unang nagde-decrypt ng susi gamit ang kanyang pribadong key, at pagkatapos ay ginagamit ang resultang key upang matanggap ang buong mensahe.
Ang isang digital signature ay nagbibigay ng:
* Pagkilala sa pinagmulan ng dokumento. Depende sa mga detalye ng kahulugan ng dokumento, maaaring pirmahan ang mga field gaya ng "may-akda", "mga pagbabagong ginawa", "time stamp", atbp.
* Proteksyon laban sa mga pagbabago sa dokumento. Anumang hindi sinasadya o sinadyang pagbabago sa dokumento (o pirma) ay magbabago sa cipher, samakatuwid, ang lagda ay magiging hindi wasto.
Posible ang mga sumusunod na banta sa digital signature:
*Maaaring subukan ng isang umaatake na gumawa ng pirma para sa isang dokumento na kanyang pinili.
*Maaaring subukan ng isang umaatake na itugma ang isang dokumento sa isang ibinigay na lagda upang ang lagda ay tumugma dito.
Kapag gumagamit ng isang malakas na pag-andar ng cipher, mahirap sa computation na gumawa ng isang pekeng dokumento na may parehong cipher bilang ang tunay. Gayunpaman, ang mga banta na ito ay maaaring matanto dahil sa mga kahinaan sa mga partikular na algorithm ng pag-cache, mga lagda, o mga error sa kanilang mga pagpapatupad. Gayunpaman, posible rin ang mga sumusunod na banta sa mga digital signature system:
*Ang isang umaatake na nagnakaw ng pribadong susi ay maaaring pumirma ng anumang dokumento sa ngalan ng may-ari ng susi.
*Maaaring linlangin ng isang umaatake ang may-ari na pumirma sa isang dokumento, halimbawa gamit ang isang blind signature protocol.
*Maaaring palitan ng isang umaatake ang pampublikong susi ng may-ari ng kanyang sarili, na nagpapanggap sa kanya.
Tinutugunan ng bahaging ito ang mga sumusunod na isyu:
- Mga uri ng cipher
- Mga cipher ng pagpapalit
- Mga permutation cipher
- Mga paraan ng pag-encrypt
- Symmetric at asymmetric algorithm
- Symmetric cryptography
- Asymmetric cryptography
- I-block at i-stream ang mga cipher
- Mga vector ng pagsisimula
- Mga paraan ng pag-encrypt ng hybrid
Gumagamit ang mga substitution cipher ng key na tumutukoy kung paano dapat gawin ang pagpapalit. SA cipher ni Caesar ang bawat karakter ay pinalitan ng karakter na tatlong posisyon sa ibaba nito sa alpabeto. Ang algorithm ay ang alpabeto, at ang susi ay ang pagtuturo na "shift ng tatlong character."
Ang pagpapalit ay ginagamit ng mga modernong simetriko algorithm, ngunit mahirap ihambing sa isang simpleng paraan tulad ng Caesar cipher. Gayunpaman, ang Caesar cipher ay isang simple at malinaw na halimbawa ng konsepto kung paano gumagana ang isang substitution cipher.
Sa isang permutation cipher, ang mga halaga ay pinipiga o inilalagay sa ibang pagkakasunud-sunod. Tinutukoy ng key ang posisyon kung saan dapat ilipat ang halaga, tulad ng ipinapakita sa Figure 6-6.
Larawan 6-6. Permutation cipher
Ito pinakasimpleng halimbawa permutation cipher, ipinapakita lamang nito kung paano ginaganap ang permutation. Kung kumplikado mga function ng matematika, ang muling pagsasaayos ay maaaring maging mahirap i-crack. Ang mga modernong simetriko algorithm ay sabay-sabay na gumagamit ng mahabang pagkakasunud-sunod ng mga kumplikadong pagpapalit at mga permutasyon ng mga simbolo ng naka-encrypt na mensahe. Ang algorithm ay naglalaman ng posible mga pamamaraan para sa mga proseso ng pagpapalit at permutasyon (kinakatawan sa mga mathematical formula). Ang susi ay ang mga tagubilin para sa algorithm, na eksaktong tinutukoy kung paano dapat nagaganap ang pagproseso at sa anong pagkakasunod-sunod. Upang maunawaan ang kaugnayan sa pagitan ng algorithm at ng susi, tingnan ang Figure 6-7. Sa matalinghagang pagsasalita, ang algorithm ay lumilikha ng iba't ibang mga kahon, na ang bawat isa ay may sariling (naiiba sa iba) na hanay ng mga mathematical formula na nagpapahiwatig ng mga hakbang sa pagpapalit at permutasyon na dapat gawin sa mga bit na nahuhulog sa kahon na ito. Upang i-encrypt ang isang mensahe, ang halaga ng bawat bit ay dapat dumaan sa iba't ibang mga kahon. Gayunpaman, kung ang bawat isa sa aming mga mensahe ay dumaan sa parehong hanay ng mga mailbox sa parehong pagkakasunud-sunod, madaling ma-reverse engineer ng isang attacker ang prosesong ito, i-crack ang cipher at makuha ang plaintext ng aming mensahe.
Larawan 6-7. Relasyon sa pagitan ng key at algorithm
Upang hadlangan ang isang umaatake, ginagamit ang isang susi, na isang hanay ng mga halaga na nagpapahiwatig kung aling mga kahon ang dapat gamitin, sa anong pagkakasunud-sunod at kung anong mga halaga. Kaya, kung ang mensaheng A ay naka-encrypt gamit ang key 1, ang susi ay nangangailangan ng mensahe na dumaan sa mga kahon 1, 6, 4 at 5. Kapag kailangan naming i-encrypt ang mensahe B, ginagamit namin ang key 2, na nangangailangan ng mensahe na dumaan sa mga kahon 8 , 3, 2 at 9. Ang susi ay nagdaragdag ng pagiging random at pagiging lihim sa proseso ng pag-encrypt.
Ang mga simpleng substitution at permutation cipher ay mahina sa mga pag-atake na gumaganap pagsusuri ng dalas (pagsusuri ng dalas). Sa bawat wika, mas madalas na ginagamit ang ilang salita at pattern kaysa sa iba. Halimbawa, sa tekstong Ingles ang letrang "e" ay kadalasang ginagamit nang mas madalas. Kapag nagsasagawa ng frequency analysis ng isang mensahe, hinahanap ng attacker ang pinakamadalas na paulit-ulit na pattern ng 8 bits (na bumubuo sa character). Kung nasa maikling mensahe nahanap niya, halimbawa, 12 walong-bit na mga pattern, maaari niyang tapusin na ito ay malamang na ang titik "e" - ang pinaka-karaniwang ginagamit na titik sa wika. Ngayon ay maaaring palitan ng umaatake ang mga bit na ito ng letrang "e". Ito ay magbibigay sa kanya ng isang hakbang sa isang proseso na magpapahintulot sa kanya na i-reverse engineer at ibalik ang orihinal na mensahe.
Gumagamit ang mga modernong simetriko algorithm ng mga pamamaraan ng pagpapalit at permutasyon sa proseso ng pag-encrypt, ngunit gumagamit sila ng (dapat gumamit) ng matematika na masyadong kumplikado upang payagan ang gayong simpleng pag-atake sa pagsusuri ng dalas na maging matagumpay.
Mga pangunahing pag-andar ng henerasyon. Upang makabuo ng mga kumplikadong key, karaniwang unang ginawa ang isang master key, kung saan nabuo ang mga simetriko na key. Halimbawa, kung ang isang application ay may pananagutan sa pagbuo ng isang session key para sa bawat entity na nag-a-access dito, hindi ito dapat basta bastang mamigay ng mga kopya ng parehong key. Ang iba't ibang entity ay nangangailangan ng iba't ibang symmetric key sa bawat koneksyon upang mabawasan ang haba ng oras na ginagamit ang mga ito. Kahit na harangin ng isang attacker ang trapiko at basagin ang susi, makikita lang niya ang ipinadalang impormasyon sa loob ng kaukulang session. Ang bagong session ay gagamit ng ibang key. Kung ang dalawa o higit pang mga key ay nabuo mula sa isang master key, ang mga ito ay tinatawag mga subkey (subkey).Ang mga key generation function (KDF – key derivation function) ay ginagamit upang bumuo ng mga key na binubuo ng mga random na value. Ang iba't ibang mga halaga ay maaaring gamitin nang nakapag-iisa o magkasama bilang random na key na materyal. Nilikha ang mga algorithm na gumagamit ng mga partikular na hash, password, at/o mga asin na ipinapasa sa mga mathematical function na tinukoy ng algorithm nang maraming beses. Sa mas maraming beses na dumaraan ang pangunahing materyal na ito mga tinukoy na function, mas mataas ang antas ng kumpiyansa at seguridad na maibibigay ng cryptosystem sa kabuuan.
TANDAAN. Tandaan na ang algorithm ay nananatiling static. Ang randomness ng mga proseso ng cryptography ay sinisiguro pangunahin ng pangunahing materyal.
Bagama't maraming bahagi ang proseso ng pag-encrypt, mayroong dalawang pangunahing bahagi: mga algorithm at mga susi. Gaya ng nasabi kanina, ang mga algorithm na ginamit sa mga sistema ng kompyuter, ay kumplikado mga pormula sa matematika pagdidikta ng mga tuntunin sa pagbabago plaintext sa ciphertext. Ang susi ay isang string ng mga random na bit na ginagamit ng algorithm upang magdagdag ng randomness sa proseso ng pag-encrypt. Para makipag-usap ang dalawang entity gamit ang encryption, dapat silang gumamit ng parehong algorithm at, sa ilang mga kaso, ang parehong key. Sa ilang mga teknolohiya sa pag-encrypt, ang tatanggap at nagpadala ay gumagamit ng parehong susi, habang sa iba pang mga teknolohiya ay dapat silang gumamit ng iba't ibang mga susi ngunit may kaugnayan upang i-encrypt at i-decrypt ang impormasyon. Ipinapaliwanag ng mga sumusunod na seksyon ang mga pagkakaiba sa pagitan ng dalawang uri ng mga paraan ng pag-encrypt na ito.
Ang mga cryptographic algorithm ay nahahati sa simetriko algorithm na gumagamit ng mga simetriko na key (tinatawag ding mga secret key), at asymmetric algorithm , na gumagamit ng mga asymmetric key (tinatawag ding mga pampublikong key at pribadong key).
Sa isang cryptosystem na gumagamit ng simetriko cryptography, ang nagpadala at tatanggap ay gumagamit ng dalawang kopya ng parehong key upang i-encrypt at i-decrypt ang impormasyon, tulad ng ipinapakita sa Figure 6-8. Kaya, ang susi ay may dalawahang pag-andar at ginagamit sa parehong proseso ng pag-encrypt at pag-decryption. Symmetric keys ay tinatawag din mga lihim na susi, dahil Ang ganitong uri ng pag-encrypt ay nangangailangan ng bawat user na panatilihing sikreto ang susi at protektahan ito nang naaangkop. Kung makuha ng attacker ang key na ito, magagamit niya ito para i-decrypt ang anumang mensaheng naka-encrypt dito na naharang.
Larawan 6-8. Kapag gumagamit ng simetriko algorithm, ang nagpadala at tatanggap ay gumagamit ng parehong key upang i-encrypt at i-decrypt ang data
Ang bawat pares ng mga user ay nangangailangan ng dalawang kopya ng parehong key upang ligtas na makipagpalitan ng data gamit ang simetriko cryptography. Halimbawa, kung kailangang magpalitan ng data sina Dan at Irina, kailangan nilang dalawa na kumuha ng kopya ng parehong key. Kung gusto din ni Dan na makipag-ugnayan kina Norm at Dave gamit ang simetriko cryptography, kailangan niyang magkaroon ng tatlong magkahiwalay na key - isa para sa bawat kaibigan. Hindi ito isang malaking problema hanggang sa kailanganin ni Dan na makipag-ugnayan sa daan-daang iba pang mga tao sa loob ng ilang buwan at panatilihin ang isang kasaysayan ng kanyang mga pag-uusap. Pagkatapos ng lahat, mangangailangan ito ng paggamit ng naaangkop na susi para sa pagsusulatan sa bawat partikular na tatanggap. Sa kasong ito, maaari itong maging isang nakakatakot na gawain. Kung kailangan ng sampung tao na makipag-usap nang ligtas sa isa't isa gamit ang simetriko cryptography, kakailanganin nila ng 45 na susi. Kung kailangan ng isang daang tao na makipag-ugnayan, kakailanganin nila ang 4950 key. Ang formula para sa pagkalkula ng kinakailangang bilang ng mga simetriko na key ay ang mga sumusunod:
Bilang ng mga susi = N(N – 1)/2, kung saan ang N ay ang bilang ng mga subscriber
Kapag gumagamit ng simetriko algorithm, ang nagpadala at tatanggap ay gumagamit ng parehong susi para sa mga proseso ng pag-encrypt at pag-decrypt ng impormasyon. Ang seguridad ng naturang mga algorithm ay ganap na nakasalalay sa kung gaano kahusay na pinoprotektahan ng mga user ang mga susi. Sa kasong ito, ang seguridad ay ganap na nakasalalay sa kawani, na dapat panatilihing lihim ang kanilang mga susi. Kung ang isang susi ay nakompromiso, ang lahat ng mga mensaheng naka-encrypt gamit ang key na iyon ay maaaring i-decrypt at basahin ng isang umaatake. Sa katunayan, ito ay nagiging mas kumplikado dahil ang mga susi ay kailangang ligtas na maipamahagi at ma-update kung kinakailangan. Kung kailangang makipag-ugnayan si Den kay Norm sa unang pagkakataon, dapat magpasya si Den kung paano ligtas na ibigay kay Norm ang susi. Kung gagawin niya ito nang walang katiyakan, halimbawa sa pamamagitan lamang ng pagpapadala ng susi sa pamamagitan ng email, ang susi na ito ay madaling maharang at magamit ng isang umaatake. Kaya dapat ibigay ni Dan ang susi sa Norm sa isang hindi karaniwang paraan. Halimbawa, maaaring isulat ni Dan ang susi sa isang flash drive at ilagay ito sa mesa ni Norm o ipadala ito sa Norm sa pamamagitan ng pinagkakatiwalaang courier. Ang proseso ng pamamahagi ng mga simetriko na susi ay maaaring maging isang napakakomplikado at masalimuot na gawain.
Dahil ang parehong mga user ay gumagamit ng parehong key upang i-encrypt at i-decrypt ang mga mensahe, ang simetriko na cryptosystem ay maaaring magbigay ng pagiging kumpidensyal ngunit hindi pagpapatunay o hindi pagtanggi. Ang ganitong cryptographic algorithm ay hindi magpapahintulot sa iyo na patunayan kung sino talaga ang nagpadala ng mensahe, dahil parehong gumagamit ang gumagamit ng parehong susi.
Ngunit kung ang mga simetriko na cryptosystem ay may napakaraming pagkukulang at problema, bakit ginagamit ang mga ito sa halos lahat ng dako? Dahil sila ay nagbibigay ng napaka mataas na bilis pagpoproseso ng data at napakahirap i-hack. Ang mga simetriko na algorithm ay mas mabilis kaysa sa mga asymmetric. Maaari silang mag-encrypt at mag-decrypt ng malalaking halaga ng data nang medyo mabilis. Bilang karagdagan, ang data na naka-encrypt na may simetriko algorithm gamit ang isang mahabang key ay napakahirap i-crack.
Ang sumusunod na listahan ay naglalarawan ng mga lakas at mga kahinaan mga cryptosystem na may simetriko na mga susi:
Mga kalakasan:
- Mas mabilis asymmetric system
- Mahirap i-hack kapag gumagamit ng mahabang key
- Nangangailangan ng secure na mekanismo ng paglipat ng susi
- Ang bawat pares ng mga user ay nangangailangan ng isang natatanging susi; Habang dumarami ang bilang ng mga user, ang pagtaas ng bilang ng mga susi ay maaaring gawing isang hindi makatotohanang gawain ang pamamahala sa kanila
- Nagbibigay ng pagiging kumpidensyal ngunit hindi nagbibigay ng pagpapatunay o hindi pagtanggi
- RC4, RC5 at RC6
- Seguridad sa mga Open System, Node 208, "Symmetric Key Cryptography," ni Paul Markovitz, NIST Special Publication 800-7 (Hulyo 1994)
Sa mga public key system, isang pares ng mga susi ang nalilikha, ang isa ay pribado at ang isa ay pampubliko. Pampublikong susi(public key) ay maaaring malaman ng lahat, at pribadong susi(pribadong susi) ay dapat lamang malaman ng may-ari nito. Kadalasan, ang mga pampublikong susi ay iniimbak sa mga direktoryo at database ng mga email address na pampublikong magagamit ng sinumang gustong gumamit ng mga key na iyon upang i-encrypt at i-decrypt ang data kapag nakikipag-ugnayan sa mga indibidwal. Ang Figure 6-9 ay naglalarawan ng paggamit ng magkakaibang mga asymmetric key.
Ang mga pampubliko at pribadong key ng isang asymmetric cryptosystem ay nauugnay sa matematika, ngunit kung ang isang tao ay may pampublikong susi ng ibang tao, imposibleng malaman ang kanilang kaukulang pribadong key. Kaya, kung ang isang umaatake ay nakakuha ng kopya ng pampublikong susi ni Bob, hindi ito nangangahulugan na sa pamamagitan ng ilang mathematical magic ay makukuha niya ang kaukulang pribadong key ni Bob. Gayunpaman, kung may kumuha ng pribadong susi ni Bob, magkakaroon ng problema malaking problema. Samakatuwid, walang sinuman maliban sa may-ari ang dapat magkaroon ng access sa pribadong key.
Larawan 6-9. Asymmetric cryptosystem
Kung na-encrypt ni Bob ang data gamit ang kanyang pribadong key, kakailanganin ng tatanggap ang pampublikong susi ni Bob upang i-decrypt ito. Hindi lamang maaaring i-decrypt ng tatanggap ang mensahe ni Bob, ngunit tumugon din kay Bob gamit ang isang naka-encrypt na mensahe. Upang gawin ito, kailangan niyang i-encrypt ang kanyang sagot gamit ang pampublikong susi ni Bob, pagkatapos ay maaaring i-decrypt ni Bob ang sagot na ito gamit ang kanyang pribadong key. Kapag gumagamit ng isang asymmetric algorithm, imposibleng i-encrypt at i-decrypt ang isang mensahe na may parehong key na ito, kahit na nauugnay sa matematika, ay hindi pareho (hindi katulad ng simetriko algorithm). Maaaring i-encrypt ni Bob ang data gamit ang kanyang pribadong key, pagkatapos ay mai-decrypt ito ng tatanggap gamit ang pampublikong key ni Bob. Sa pamamagitan ng pag-decryption ng mensahe gamit ang pampublikong key ni Bob, matitiyak ng tatanggap na galing talaga kay Bob ang mensahe, dahil ma-decrypt lang ang mensahe gamit ang pampublikong key ni Bob kung ito ay na-encrypt gamit ang kaukulang pribadong key ni Bob. Nagbibigay ito ng mga kakayahan sa pagpapatunay dahil Si Bob ay (marahil) ang tanging may pribadong key na ito. Kung gusto ng tatanggap na makatiyak na ang tanging makakabasa ng kanyang tugon ay si Bob, dapat niyang i-encrypt ang kanyang mensahe kay Bob gamit ang pampublikong susi ni Bob. Pagkatapos, si Bob lang ang makakapag-decrypt ng mensaheng ito, dahil siya lang ang may pribadong key na kailangan para gawin iyon.
Bukod pa rito, maaaring piliin ng tatanggap na i-encrypt ang data gamit ang kanilang pribadong key kaysa sa pampublikong key ni Bob. Ano kaya ang ibibigay nito sa kanya? Pagpapatunay. Malalaman ni Bob na sa kanya nanggaling ang mensahe at hindi maaaring nanggaling sa iba. Kung ine-encrypt niya ang data gamit ang pampublikong susi ni Bob, hindi ito magbibigay ng pagpapatunay dahil kahit sino ay maaaring makakuha ng pampublikong susi ni Bob. Kung gagamitin niya ang kanyang pribadong key para i-encrypt ang data, makatitiyak si Bob na sa kanya nanggaling ang mensahe. Ang mga simetriko na key ay hindi nagbibigay ng pagpapatunay dahil ang parehong partido ay gumagamit ng parehong susi, na hindi magagarantiya na ang mensahe ay mula sa isang partikular na tao.
Kung ang nagpadala ay higit na nag-aalala tungkol sa pagiging kompidensiyal ipinadalang impormasyon, dapat niyang i-encrypt ang kanyang mensahe gamit ang pampublikong susi ng tatanggap. Ito ay tinatawag secure na format ng mensahe (secure na format ng mensahe), dahil tanging ang taong may kaukulang pribadong key ang makakapag-decrypt sa mensaheng ito.
Kung mas mahalaga ang pagpapatotoo sa nagpadala, dapat niyang i-encrypt ang ipinadalang data gamit ang kanyang pribadong key. Papayagan nito ang tatanggap na makatiyak na ang taong nag-encrypt ng data ay ang may kaukulang pribadong key. Kung ine-encrypt ng nagpadala ang data gamit ang pampublikong susi ng tatanggap, hindi ito nagbibigay ng pagpapatunay dahil ang pampublikong susi ay magagamit sa lahat.
Ang pag-encrypt ng data gamit ang pribadong key ng nagpadala ay tinatawag bukas na format mga mensahe (bukas na format ng mensahe), dahil kahit sino ay maaaring i-decrypt ang data na ito gamit ang pampublikong susi ng nagpadala. Hindi sinisigurado ang pagiging kompidensiyal.
Parehong pribado at pampublikong mga susi ay maaaring gamitin upang i-encrypt at i-decrypt ang data. Huwag isipin na ang pampublikong susi ay kailangan lamang para sa pag-encrypt, at ang pribadong susi ay kailangan lamang para sa pag-decryption. Dapat itong maunawaan na kung ang data ay naka-encrypt gamit ang isang pribadong key, hindi ito maaaring i-decrypt kasama nito. Maaaring i-decrypt ang data na naka-encrypt gamit ang pribadong key gamit ang kaukulang pampublikong key nito. At vice versa.
Ang asymmetric algorithm ay mas mabagal kaysa sa simetriko algorithm dahil Ang mga simetriko na algorithm ay gumaganap ng medyo simpleng mga function ng matematika sa mga bit sa mga proseso ng pag-encrypt at pag-decryption. Pinapalitan nila at binabalasa (ginagalaw) ang mga piraso sa paligid, na hindi masyadong kumplikado at hindi gumagamit ng maraming CPU. Ang dahilan kung bakit sila ay lumalaban sa pag-hack ay dahil ginagawa nila ang mga function na ito nang maraming beses. Kaya, sa simetriko algorithm, ang isang set ng mga bit ay dumadaan sa mas mahabang serye ng mga pagpapalit at permutasyon.
Ang mga asymmetric algorithm ay mas mabagal kaysa sa simetriko algorithm dahil gumagamit sila ng mas kumplikadong matematika upang maisagawa ang kanilang mga function, na nangangailangan ng mas maraming oras ng CPU. Gayunpaman, ang mga asymmetric na algorithm ay maaaring magbigay ng authentication at non-repudiation depende sa algorithm na ginamit. Bukod pa rito, nagbibigay-daan ang mga asymmetric system para sa isang mas simple at mas mapapamahalaang proseso ng pamamahagi ng key kaysa sa mga simetriko system at walang mga isyu sa scalability na mayroon ang mga simetriko system. Ang dahilan ng mga pagkakaibang ito ay dahil sa mga sistemang walang simetriko, maaari mong ipadala ang iyong pampublikong susi sa lahat ng taong gusto mong makaugnayan, sa halip na gumamit ng hiwalay na pribadong key para sa bawat isa sa kanila. Susunod, sa seksyong Hybrid Encryption Methods ng Domain na ito, titingnan natin kung paano magagamit ang dalawang system na ito nang magkasama upang makamit ang pinakamahusay na mga resulta.
TANDAAN. Ang pampublikong key cryptography ay asymmetric cryptography. Ang mga terminong ito ay ginagamit nang palitan.
Ang mga sumusunod ay ang mga kalakasan at kahinaan ng mga asymmetric key algorithm:
Mga lakas
- Mas mahusay na proseso ng pamamahagi ng key kaysa sa mga simetriko na sistema
- Mas mahusay na scalability kaysa sa simetriko system
- Maaaring magbigay ng authentication at non-repudiation
- Gumagana nang mas mabagal kaysa sa simetriko system
- Magsagawa ng mga kumplikadong pagbabago sa matematika
- Elliptic curve cryptosystem (ECC)
- Diffie-Hellman algorithm
- El Gamal
- Digital Signature Algorithm (DSA – Digital Signature Algorithm)
- Knapsack
Ang talahanayan 6-1 ay nagbibigay ng isang maikling buod ng mga pangunahing pagkakaiba sa pagitan ng simetriko at walang simetrya na mga sistema.
Talahanayan 6-1. Mga pagkakaiba sa pagitan ng simetriko at asymmetrical na mga sistema
TANDAAN. Ang mga digital na lagda ay tatalakayin mamaya sa seksyong Mga Digital na Lagda.Mga kaugnay na link:
- Seguridad sa Open Systems, Node 210, "Asymmetric Key Cryptography," ni Paul Markovitz, NIST Special Publication 800-7 (Hulyo 1994)
- Mga Madalas Itanong Tungkol sa Cryptography Ngayon, Bersyon 4.1, Seksyon 2.1.4.5, “Ano ang Output Feedback Mode?” ng RSA Laboratories
Kung ginagamit mo upang i-encrypt at i-decrypt ang data block cipher , ang mensahe ay nahahati sa mga bloke ng mga piraso. Ang mga bloke na ito ay ipinapasa sa mga pag-andar ng matematika para sa pagproseso, isang bloke sa isang pagkakataon. Isipin na kailangan mong i-encrypt ang isang mensahe sa iyong ina gamit ang isang block cipher na gumagana sa 64-bit na mga bloke. Ang iyong mensahe ay 640 bits ang haba, kaya ito ay nahahati sa 10 hiwalay na 64-bit na mga bloke. Ang bawat bloke ay sunud-sunod na ipinadala sa input ng mathematical function. Ang prosesong ito ay nagpapatuloy hanggang sa ang bawat bloke ay ma-convert sa ciphertext. Pagkatapos nito, magpadala ka ng naka-encrypt na mensahe sa iyong ina. Gumagamit ito ng parehong block cipher at parehong key. Ang 10 ciphertext block na ito ay inilalagay sa algorithm sa reverse order hanggang sa makuha ang orihinal na plaintext.
Upang matiyak ang lakas ng isang cipher, dapat itong gumamit ng sapat na dalawang pangunahing pamamaraan: pagkalito at pagsasabog. Paghahalo ay karaniwang ginagawa gamit ang pagpapalit, samantalang pagsasabog - gamit ang muling pagsasaayos. Para maging tunay na malakas ang isang cipher, dapat nitong gamitin ang parehong mga paraang ito upang gawing halos imposible ang reverse engineering. Ang antas ng paghahalo at pagpapakalat ay ipinahiwatig ng randomness ng key value at ang pagiging kumplikado ng mga mathematical function na ginamit.
Sa mga algorithm, ang scattering ay maaaring mangyari pareho sa antas ng mga indibidwal na bit sa mga bloke at sa antas ng mga bloke mismo. Ang paghahalo ay tapos na gamit kumplikadong mga pag-andar mga pagpapalit upang hindi maunawaan ng isang umaatake kung paano pinalitan ang mga orihinal na halaga at makuha ang orihinal na plaintext. Isipin na mayroon akong 500 kahoy na bloke, bawat isa ay may titik. Pinapila ko sila para gumawa ng mensahe (plain text) sa kanila. Pagkatapos ay pinapalitan ko ang 300 sa mga bloke na ito ng mga bloke mula sa isa pang set (shuffle sa pamamagitan ng pagpapalit). Pagkatapos ay inayos ko muli ang lahat ng mga bloke na ito (dispersal sa pamamagitan ng pag-shuffling) at iniwan ang pile na ito. Upang maibalik mo ang aking orihinal na pangungusap, kailangan mong palitan ang mga bloke ng mga tama at ayusin ang mga ito sa tamang pagkakasunod-sunod. Good luck!
Ginagawa ang pag-shuffling upang lumikha ng ugnayan sa pagitan ng susi at ng resultang ciphertext. Ang ugnayang ito ay dapat na kumplikado hangga't maaari upang imposibleng buksan ang susi batay sa pagsusuri ng ciphertext. Ang bawat halaga sa ciphertext ay dapat na nakadepende sa ilang bahagi ng susi, ngunit sa isang tagamasid ang kaugnayang ito sa pagitan ng mga pangunahing halaga at mga halaga ng ciphertext ay dapat na ganap na lumitaw na random.
Ang scattering, sa kabilang banda, ay nangangahulugan na ang isang bit ng plaintext ay nakakaapekto sa maramihang mga piraso ng ciphertext. Ang pagpapalit ng value sa plaintext ay dapat magresulta sa pagpapalit ng maraming value sa ciphertext, hindi lang isa. Sa katunayan, sa isang tunay na malakas na block cipher, kapag ang isang bit sa plaintext ay binago, humigit-kumulang 50% ng mga bit sa ciphertext ang dapat magbago. Yung. Kung babaguhin mo ng kaunti sa plaintext, halos kalahati ng ciphertext ang magbabago.
Ginagamit ng mga block cipher ang parehong shuffling at scattering sa kanilang mga paraan ng pagpapatakbo. Ang Figure 6-10 ay nagpapakita ng isang konseptong halimbawa ng isang simpleng block cipher. Ito ay binibigyan ng apat na bloke ng apat na bit bawat isa para sa pagproseso. Ang block algorithm na isinasaalang-alang ay may dalawang antas ng apat na bit na kapalit na mga kahon, na tinatawag na S-boxes. Ang bawat S-box ay naglalaman ng mga lookup table na ginagamit ng algorithm bilang mga tagubilin para sa pag-encrypt ng mga bit.
Larawan 6-10. Ang mensahe ay nahahati sa mga bloke ng mga piraso kung saan ginaganap ang pagpapalit at scattering function
Tinutukoy ng susi (tingnan ang Figure 6-10) kung aling mga S-box ang dapat gamitin sa proseso ng pag-shuffling ng orihinal na mensahe mula sa nababasang plaintext patungo sa hindi nababasang ciphertext. Ang bawat S-box ay naglalaman ng iba't ibang pamamaraan mga pagpapalit at permutasyon na maaaring gawin sa bawat bloke. Ito ay isang napakasimpleng halimbawa. Sa katotohanan, karamihan sa mga block cipher ay gumagana sa mga bloke ng 32, 64, o 128 bit at maaaring gumamit ng marami pang S-box.
Gaya ng nasabi kanina, ang mga block cipher ay nagsasagawa ng mga mathematical function sa mga bloke ng mga bit. Hindi tulad nila, stream ciphers (stream cipher) huwag hatiin ang mensahe sa mga bloke. Pinoproseso nila ang mensahe bilang isang stream ng mga bits at gumaganap ng mga mathematical function sa bawat bit nang hiwalay.
Kapag gumagamit ng stream cipher, kino-convert ng proseso ng pag-encrypt ang bawat bit ng plaintext sa isang bit ng ciphertext. Gumagamit ang mga stream cipher ng keystream generator na gumagawa ng stream ng mga bit na pinagsama-samang gamit mga operasyon ng XOR na may mga plaintext bit upang makakuha ng ciphertext. Ito ay ipinapakita sa Figure 6-11.
Larawan 6-11. Sa isang stream cipher, ang mga bit na nabuo ng keystream generator ay XORed kasama ng mga plaintext bit ng mensahe
TANDAAN. Ang prosesong ito ay halos kapareho sa paggamit ng isang beses na pad na inilarawan sa itaas. Ang mga indibidwal na bit sa one-time pad ay ginagamit upang i-encrypt ang mga indibidwal na bit ng mensahe gamit ang XOR operation, at sa stream algorithm, ang mga indibidwal na bit ay nilikha ng isang key stream generator na ginagamit din upang i-encrypt ang mga bit ng mensahe gamit ang operasyon ng XOR.
Kung ang isang cryptosystem ay nakasalalay lamang sa isang simetriko stream algorithm, ang isang attacker ay makakakuha ng isang kopya ng plaintext at ang resultang ciphertext, XOR ang mga ito nang magkasama, at magtatapos sa isang ginamit na keystream na magagamit niya sa ibang pagkakataon upang i-decrypt ang iba pang mga mensahe. kaya lang matatalinong tao nagpasya na ipasok ang susi sa stream na ito.
Sa mga block cipher, tinutukoy ng susi kung aling mga function ang inilalapat sa plaintext at sa anong pagkakasunud-sunod. Tinitiyak ng susi ang randomness ng proseso ng pag-encrypt. Gaya ng nasabi kanina, karamihan sa mga algorithm ng pag-encrypt ay open source, kaya alam ng mga tao kung paano gumagana ang mga ito. Ang tanging sikreto ay ang susi. Sa stream ciphers, nakakamit din ang randomness sa pamamagitan ng key, na ginagawang random ang stream ng mga bit kung saan pinagsama ang plaintext bilang random hangga't maaari. Ang konseptong ito ay inilalarawan sa Figure 6-12. Gaya ng nakikita mo sa figure na ito, ang nagpadala at ang tatanggap ay dapat magkaroon ng parehong susi upang makabuo ng parehong key stream upang magawang tama ang pag-encrypt at pag-decrypt ng impormasyon.
Larawan 6-12. Ang nagpadala at tatanggap ay dapat magkaroon ng parehong key upang bumuo ng parehong key stream
Initialization vectors (IV – Initialization vectors) ay mga random na halaga, na ginagamit ng algorithm upang matiyak na ang proseso ng pag-encrypt ay walang pattern. Ibinahagi ang mga ito sa mga susi at hindi kailangang i-encrypt kapag ipinadala sa tatanggap. Kung walang ginagamit na initialization vector, dalawang magkaparehong plaintext na naka-encrypt na may parehong key ang magreresulta sa parehong ciphertext. Ang ganitong template ay makabuluhang magpapasimple sa gawain ng umaatake na sirain ang paraan ng pag-encrypt at ibunyag ang susi. Kung ang iyong mensahe ay may paulit-ulit na bahagi (isang parirala o isang salita), kailangan mong tiyakin na kapag na-encrypt mo ang bawat paulit-ulit na bahagi ng plaintext ng mensahe, ibang ciphertext ang nalilikha, i.e. walang template na gagawin. Ito ay upang matiyak ang higit na randomness sa proseso ng pag-encrypt na ang initialization vector ay ginagamit kasama ng susi.
Ang malakas at mahusay na stream cipher ay may mga sumusunod na katangian:
- Mahabang panahon ng hindi umuulit na mga pattern sa mga pangunahing halaga ng stream. Ang mga bit na nabuo ng key stream ay dapat na random.
- Istatistikong hindi mahulaan na key stream. Ang mga bit na ginawa sa output ng keystream generator ay hindi dapat mahuhulaan.
- Ang key stream ay walang linear na relasyon sa key. Kung nakuha ng isang tao ang mga pangunahing halaga ng stream, hindi ito dapat magresulta sa pagtanggap sa kanila ng pangunahing halaga.
- Istatistikong pare-parehong daloy ng key (humigit-kumulang pantay na bilang ng mga zero at isa). Ang pangunahing stream ay hindi dapat dominado ng mga zero o isa.
TANDAAN. Siyempre, mayroong parehong mga block cipher, na ipinatupad sa antas ng hardware, at mga stream cipher, na tumatakbo sa antas ng software. Ang pahayag sa itaas ay isang "pinakamahusay na kasanayan" na disenyo at gabay sa pagpapatupad.
Mga stream cipher at One-time pad. Ang mga stream cipher ay nagbibigay ng parehong uri ng seguridad gaya ng isang beses na pad, kaya gumagana ang mga ito sa katulad na paraan. Ang mga stream cipher ay hindi maaaring aktwal na magbigay ng parehong antas ng seguridad bilang isang beses na pad dahil ipinapatupad ang mga ito sa anyo ng software at mga automated na tool. Gayunpaman, ginagawa nitong mas praktikal ang mga stream cipher.
Noong nakaraan, tiningnan namin ang simetriko at asymmetric na mga algorithm at nabanggit na ang simetriko algorithm ay mabilis ngunit may ilang mga disadvantages (mahinang scalability, kumplikadong pamamahala ng key, nagbibigay lamang ng pagiging kumpidensyal), habang ang mga asymmetric algorithm ay walang mga disadvantages na ito, ngunit napakabagal ng mga ito. Ngayon tingnan natin ang mga hybrid system na gumagamit ng parehong simetriko at walang simetrya na mga paraan ng pag-encrypt.
Pinagsamang paggamit ng asymmetric at simetriko algorithm
Pampublikong key cryptography gumagamit ng dalawang key (pampubliko at pribado) na nabuo ng isang asymmetric algorithm, ginagamit ito upang protektahan ang mga susi ng pag-encrypt at ipamahagi ang mga ito. Ang lihim na susi ay nabuo ng isang simetriko algorithm at ginagamit para sa pangunahing proseso ng pag-encrypt. Ito ang hybrid na paggamit ng dalawa iba't ibang mga algorithm: simetriko at walang simetriko. Ang bawat algorithm ay may sariling mga pakinabang at disadvantages, at ang kanilang pagbabahagi nagbibigay-daan sa iyo na kunin ang pinakamahusay mula sa bawat isa sa kanila.
Sa isang hybrid na diskarte, ang dalawang teknolohiyang ito ay umaakma sa isa't isa, bawat isa ay gumaganap ng sarili nitong mga function. Ang symmetric algorithm ay gumagawa ng mga key na ginagamit upang i-encrypt ang karamihan ng data, habang ang asymmetric algorithm ay gumagawa ng mga key na ginagamit upang awtomatikong ipamahagi ang mga simetriko na key.
Ginagamit ang simetriko na key upang i-encrypt ang mga mensaheng ipinadala mo. Kapag nakatanggap ang iyong kaibigan ng mensaheng na-encrypt mo, kailangan niyang i-decrypt ito, na nangangailangan ng simetriko na key kung saan naka-encrypt ang iyong mensahe. Ngunit hindi mo gustong ipadala ang key na ito sa paraang hindi secure dahil... ang mensahe ay maaaring ma-intercept at ang hindi protektadong key ay maaaring makuha mula dito ng isang umaatake para magamit sa ibang pagkakataon upang i-decrypt at basahin ang iyong mga mensahe. Hindi ka dapat gumamit ng simetriko na key upang i-encrypt ang mga mensahe maliban kung ito ay maayos na protektado. Para ma-secure ang isang simetriko na key, maaaring gumamit ng asymmetric algorithm para i-encrypt ito (tingnan ang Figure 6-13). Ngunit bakit tayo gagamit ng simetriko na key upang i-encrypt ang mga mensahe at isang walang simetrya na key upang i-encrypt ang isang simetriko na key? Tulad ng nabanggit kanina, ang asymmetric algorithm ay mabagal dahil gumagamit ito ng mas kumplikadong matematika. At dahil malamang na mas mahaba ang iyong mensahe kaysa sa susi, mas makatuwirang i-encrypt ito gamit ang mas mahabang key. mabilis na algorithm(symmetric), at para sa key encryption ang isang mabagal (asymmetric) ay angkop, ngunit nagbibigay karagdagang serbisyo seguridad.
Larawan 6-13. Sa isang hybrid system, ang asymmetric key ay ginagamit upang i-encrypt ang simetriko key at ang simetriko key ay ginagamit upang i-encrypt ang mga mensahe
Paano ito gumagana sa katotohanan? Sabihin nating nagpadala si Bill ng mensahe kay Paul at gusto niyang si Paul lang ang makakabasa nito. Ini-encrypt ni Bill ang mensahe gamit ang sikretong key, ngayon ay mayroon na itong ciphertext at simetriko na key. Dapat na secure ang susi, kaya ine-encrypt ni Bill ang simetriko na key gamit ang asymmetric key. Gumagamit ang mga asymmetric algorithm ng pribado at pampublikong key, kaya ini-encrypt ni Bill ang simetriko na key gamit ang pampublikong key ni Paul. Si Bill ay mayroon na ngayong ciphertext ng mensahe at ang simetriko na key ciphertext. Bakit na-encrypt ni Bill ang simetriko na susi gamit ang pampublikong susi ni Paul at hindi gamit ang kanyang pribadong susi? Kung na-encrypt ito ni Bill gamit ang sarili niyang pribadong key, maaaring i-decrypt ito ng sinuman gamit ang pampublikong key ni Bill at makakuha ng simetriko na key. Gayunpaman, ayaw ni Bill na mabasa ng sinumang may kanyang pampublikong susi ang kanyang mga mensahe kay Paul. Gusto ni Bill na si Paul lang ang magkaroon ng pagkakataong ito. Kaya na-encrypt ni Bill ang simetriko na susi gamit ang pampublikong susi ni Paul. Kung pinoprotektahan ng mabuti ni Paul ang kanyang pribadong susi, siya lamang ang makakabasa ng mensahe ni Bill.
Natanggap ni Paul ang mensahe ni Bill at ginagamit ang kanyang pribadong key upang i-decrypt ang simetriko na susi. Pagkatapos ay ginamit ni Paul ang simetriko na susi upang i-decrypt ang mensahe. Ngayon ay mababasa na ni Paul ang isang mahalaga at kumpidensyal na mensahe mula kay Bill.
Kapag sinabi nating gumagamit si Bill ng isang susi upang i-encrypt ang isang mensahe at ginagamit ni Paul ang parehong susi upang i-decrypt ito, hindi ito nangangahulugan na ginagawa nila nang manu-mano ang lahat ng mga operasyong ito. Moderno software ginagawa ang lahat ng ito para sa atin nang hindi hinihiling sa atin espesyal na kaalaman para sa paggamit nito.
Ang lahat dito ay medyo simple, kailangan mong tandaan ang mga sumusunod na aspeto:
- Ang isang asymmetric algorithm ay nagsasagawa ng pag-encrypt at pag-decryption gamit ang pribado at pampublikong mga key na nauugnay sa matematika.
- Ang simetriko algorithm ay nagsasagawa ng pag-encrypt at pag-decryption gamit ang isang nakabahaging sikretong key.
- Ang isang simetriko (lihim) na susi ay ginagamit upang i-encrypt ang mga tunay na mensahe.
- Ang pampublikong susi ay ginagamit upang i-encrypt ang simetriko na susi para sa ligtas na paghahatid.
- Ang isang lihim na susi ay kapareho ng isang simetriko na susi.
- Ang asymmetric key ay maaaring pribado o pampubliko.
Susi ng session (session key) ay isang simetriko na key na ginagamit upang i-encrypt ang mga mensaheng ipinagpapalit sa pagitan ng dalawang user. Ang session key ay hindi naiiba sa simetriko na key na inilarawan kanina, ngunit ito ay valid lamang para sa isang session ng komunikasyon sa pagitan ng mga user.
Kung si Tanya ay may simetriko na susi na palagi niyang ginagamit upang i-encrypt ang mga mensahe sa pagitan niya at ni Lance, ang simetriko na key na iyon ay hindi kailangang gawing muli o baguhin. Ginagamit lang nila ang parehong key sa tuwing nakikipag-ugnayan sila gamit ang pag-encrypt. Gayunpaman, mahaba muling gamitin ang paggamit ng parehong key ay nagpapataas ng posibilidad na ito ay maharang at makompromiso ang mga secure na komunikasyon. Upang maiwasan ito, dapat kang bumuo ng bagong simetriko na key sa tuwing kailangang makipag-usap sina Tanya at Lance, at gamitin lamang ito para sa isang sesyon ng komunikasyon, at pagkatapos ay sirain ito (tingnan ang Figure 6-14). Kahit na kailangan nilang makipag-ugnayan muli sa loob lamang ng isang oras, bubuo ng bagong session key.
Larawan 6-14. Binubuo ang session key para sa bawat session ng pakikipag-ugnayan ng user at valid lang sa loob ng session na iyon
Mga digital na sobre. Kapag ang mga tao ay unang naging pamilyar sa cryptography, ang magkasanib na paggamit ng simetriko at asymmetric algorithm maaaring magdulot ng hindi pagkakaunawaan. Gayunpaman, ang mga konseptong ito ay napakahalagang maunawaan dahil sila ang tunay na pangunahing, pangunahing mga konsepto ng cryptography. Ginagamit ang prosesong ito hindi lamang sa email client o sa ilang produkto, tinutukoy nito ang pagkakasunud-sunod kung saan pinoproseso ang data at mga simetriko na key kapag naipadala ito.
Ang paggamit ng dalawang teknolohiyang ito nang magkasama ay tinatawag na hybrid na diskarte, ngunit mayroon itong higit pa karaniwang pangalan – digital na sobre (digital na sobre).
Ang session key ay nagbibigay ng higit pa mataas na antas proteksyon, kumpara sa isang static na simetriko key, dahil ito ay may bisa lamang para sa isang sesyon ng komunikasyon sa pagitan ng dalawang computer. Kung na-intercept ng isang attacker ang session key, magagamit niya ito upang makakuha ng hindi awtorisadong access sa ipinadalang impormasyon lamang sa loob ng isang yugto ng panahon. maikling panahon oras.
Kung kailangan ng dalawang computer na makipag-ugnayan gamit ang encryption, kailangan muna nilang dumaan sa proseso ng "pagkakamay" kung saan sumasang-ayon sila sa isang algorithm ng pag-encrypt na gagamitin upang magpadala ng session key upang higit pang i-encrypt ang data habang nakikipag-usap ang mga computer. Mahalaga, dalawang computer ang naka-install virtual na koneksyon sa isa't isa, na tinatawag na session. Pagkatapos ng isang session, sinisira ng bawat computer ang anumang istruktura ng data na ginawa para sa session na iyon, nagpapalaya ng mga mapagkukunan, at, bukod sa iba pang mga bagay, sinisira ang ginamit na session key. Ang mga bagay na ito operating system at ang mga application ay tumatakbo sa background at ang gumagamit ay hindi kailangang pakialam tungkol dito. Gayunpaman, dapat na maunawaan ng propesyonal sa seguridad ang mga pagkakaiba sa pagitan ng mga pangunahing uri at mga isyu na nauugnay sa mga ito.
TANDAAN. Ang mga pribado at simetriko na key ay hindi dapat itago at/o ipadala sa plaintext. Kahit na ito ay tila halata, mayroon nang marami mga produkto ng software ay nakompromiso para sa tiyak na kadahilanang ito.
Mga isyu sa seguridad ng wireless. Tiningnan namin ang iba't ibang pamantayan ng 802.11 at ang protocol ng WEP sa Domain 05. Kabilang sa malawak na listahan ng mga problema sa WEP, mayroong problemang nauugnay sa pag-encrypt ng data. Kung ang WEP lamang ang ginagamit upang i-encrypt ang wireless na trapiko, ang karamihan sa mga pagpapatupad ay gumagamit lamang ng isang statistical symmetric key upang i-encrypt ang mga packet. Isa sa mga pagbabago at bentahe ng pamantayang 802.11i ay ang pagtitiyak nito na ang bawat packet ay naka-encrypt na may natatanging session key.
Proteksyon ng cryptographic na impormasyon
Alexandra Prokhorov
Isang sipi mula sa aklat ni Alexander Prokhorov na "The Internet: How it Works", ang impormasyon tungkol sa aklat ay matatagpuan sa address .
Isaalang-alang natin kongkretong halimbawa. Hayaang magpadala ang direktor ng kumpanya A ng mahalagang dokumento sa direktor ng kumpanya B sa pamamagitan ng e-mail (Larawan 1). Anong mga problema ang lumitaw sa mga tuntunin ng seguridad ng komunikasyon?
Sa pagtanggap ng sulat, itinanong ng direktor ng kumpanya B ang mga sumusunod na katanungan. Talaga ba dokumentong ito ay ipinadala ng Direktor A (pagkilala sa nagpadala). Kung tutuusin, may posibilidad na ang liham ay nanggaling sa ibang tao na nagpapanggap bilang direktor ng kumpanya A. Naharang ba ang dokumento at binago sa ruta ng paghahatid (pagpapatunay ng mensahe). Kung ang dokumento ay binasa ng sinuman maliban sa tatanggap (secrecy)
Madaling mabasa ang email at mga naka-attach na file mga intermediate na puntos ang kanyang mga paglalakbay sa Internet, halimbawa, sa server ng provider
Ito ay kilala na ang pagpapanatili ng lihim (message confidentiality) ay maaaring makamit sa pamamagitan ng pag-encrypt ng data. Lumalabas na lahat ng tatlong problemang ito ay malulutas gamit ang pag-encrypt, at ang kriptograpiya ay tumatalakay sa mga isyung ito.
Ang Cryptography (mula sa Griyegong "cryptos" - sikreto) ay ang agham at teknolohiya ng pag-encrypt mahalagang impormasyon upang protektahan ito mula sa mga pagbabago at hindi awtorisadong pag-access. Ang Cryptography ay nagsisilbi hindi lamang upang i-convert ang mga teksto sa isang hindi nababasang naka-encrypt na form, ngunit nagbibigay-daan din sa iyo upang malutas ang mga problema sa pagpapatunay at pagkilala ng mga gumagamit kapag nagtatrabaho sila sa Internet.
Ang kriptograpiya ay ang batayan ng ligtas na komunikasyon. Sa Fig. 1 nagbigay kami ng halimbawa ng pagsusulatan sa pagitan ng dalawang koresponden. Dapat pansinin na sa Internet nakikipag-usap kami hindi lamang sa mga tao, kundi pati na rin sa iba't ibang serbisyo. Halimbawa, kapag kami ay magda-download ng isang programa mula sa isang server, mahalaga din para sa amin na malaman iyon ang server na ito pag-aari ng kumpanya ng developer, at hindi sa kumpanya ng pirata na iligal na namamahagi ng pirated software.
Pag-encrypt gamit ang isang susi
Ang proseso ng pag-encrypt gamit ang isang susi ay kung saan ang plaintext ay pinagsama sa isang string ng mga numero (ang susi) ayon sa mga patakaran ng ilang algorithm (cryptographic algorithm) upang makakuha ng isang naka-encrypt na mensahe.
Ipagpalagay natin na gusto nating i-encrypt ang plaintext na "Hello Vasya" gamit ang pinakasimpleng algorithm - pinapalitan ang mga titik ng kanilang mga numero sa alpabeto. Bilang resulta, makakatanggap kami ng naka-encrypt na teksto ng form: 17 18 10 3 6 20 3 1 19 33. Malinaw, kung natutunan ng isang tagalabas ang algorithm ng pag-encrypt, imposibleng gamitin ito sa hinaharap.
Iwasan kakulangang ito marahil ay gumagamit ng key encryption. Upang maipaliwanag ang kakanyahan ng proseso ng pag-encrypt gamit ang isang susi, nagbibigay kami ng isang simpleng halimbawa (Larawan 3).
Isulat natin ang mga titik ng teksto at isulat ang kanilang mga numero sa alpabeto sa ilalim ng mga ito. Sa ikatlong linya isinulat namin ang mga titik ng susi, inuulit ang salitang ito sa buong linya. Sa ilalim ng mga titik ng susi ay isusulat namin ang kanilang mga numero sa alpabeto, at sa ikaapat na linya ay isusulat namin ang halaga, na magiging naka-encrypt na mensahe: 20 19 29 36, atbp.
Alam ang susi at ang algorithm, madaling maintindihan ang mensahe: 20 - 3 = 17, at ang ikalabing pitong titik ng alpabeto ay "P", atbp. Kahit na alam ng umaatake ang algorithm ngunit hindi alam ang susi, imposibleng basahin ang mensahe nang walang mahabang pamamaraan sa pagpili ng key. Kaya, ang isang algorithm ay maaaring gamitin sa maraming mga susi sa iba't ibang channel komunikasyon, nagtatalaga ng hiwalay na susi sa bawat koresponden.
Malinaw, kung mas mahaba ang cipher key, mas maraming paghahanap ang kailangan iba't ibang kumbinasyon kapag nagde-decryption, mas mahirap i-decode ang mensahe. Ang mga cipher na may mga key na mas mahaba sa 128 bits ay tinatawag na malakas.
Prinsipyo ng pag-encrypt gamit ang isang lihim na susi
Symmetric key encryption
Isaalang-alang natin ang isang partikular na halimbawa: hayaan ang mga kasulatan A at B na magsulat ng isang liham sa isa't isa (Larawan 4). Ang bawat isa ay may sariling lihim na susi (isang tiyak na sikretong code) na maaaring magamit upang i-encrypt ang data bago ito ipadala sa Internet. Upang mas malinaw na ilarawan ang scheme ng pag-encrypt, gagamit kami ng mga pictograms (Larawan 2), iyon ay, ilarawan ang susi sa anyo ng isang regular na susi, at ang naka-encrypt na mensahe sa anyo ng isang dokumento na selyadong sa isang sobre. Pagkatapos ang proseso ng pag-encrypt at decryption ay maaaring katawanin sa anyo ng Fig. 3.
Scheme ng pag-encrypt na may sikretong (symmetric) key
Ini-encrypt ng User A ang mensahe gamit ang kanyang secret key, ipinapadala ang mensahe sa Internet, at ang tatanggap ng B (gamit ang parehong secret key) ay nagde-decrypt ng mensahe. Kung titingnan mo ang figure, madaling makita na ang circuit ay simetriko. Ang kaliwa at kanang user ay gumagamit ng parehong (symmetric) key, kaya ang ganitong uri ng encryption ay tinatawag na simetriko key encryption.
Ang problema sa pag-encrypt ng lihim na key ay may ilang mga disadvantages. Una sa lahat, hindi nilulutas ng simetriko na pag-encrypt ang problema sa pagpapatunay. Halimbawa, maaaring sumulat si A ng isang liham sa ilang third party na C at i-claim na ginawa ito ni B.
Dapat na naka-install ang isang simetriko na key sa mga computer ng nagpadala at tatanggap bago makipagpalitan ng mga lihim na mensahe. Iyon ay, kailangan mong malaman nang maaga kung aling dalawang computer ang "mag-uusap" sa isa't isa. Malinaw, ang pag-encrypt para sa ligtas na komunikasyon Ang Internet ay may katuturan kapag ang mga koresponden ay hindi kailangang makipagkita nang personal. Ang problema ay nangyayari kapag nagpapadala ng pribadong key. talaga. Kung binigay ni A sa B ang sikretong susi sa hindi naka-encrypt na anyo, maaari itong ma-intercept. Kung ang susi ay ipinadala sa naka-encrypt na form, hindi ito matatanggap ng B. Upang makipag-ugnayan sa ilang mga correspondent, kailangan mong magkaroon ng isang susi para sa bawat correspondent, na hindi maginhawa. Para makapagdesisyon mga problema sa itaas, iminungkahi ang isang asymmetric encryption scheme (public key encryption).
Public Key Encryption
Ang pag-encrypt ng pampublikong key ay batay sa paggamit ng isang pares ng key: pribado (pribado) at pampubliko (pampubliko) na mga susi.
Maaaring i-encrypt ang mensahe gamit ang parehong pribado at pampublikong key, at i-decrypt lamang gamit ang pangalawang key ng pares. Ibig sabihin, ang isang mensaheng naka-encrypt gamit ang isang pribadong key ay maaari lamang i-decrypt gamit ang isang pampublikong susi at vice versa. Ang pribadong susi ay kilala lamang ng may-ari at hindi maaaring ibahagi sa sinuman, habang pampublikong susi hayagang ipinamahagi sa lahat ng mga koresponden.
Ang isang pares ng mga susi - pribado at pampubliko - ay maaaring magamit kapwa upang malutas ang mga problema sa pagpapatunay (Larawan 4) at pagiging lihim (pagkakumpidensyal) (Larawan 6).
Ayon sa unang scheme (Larawan 4): ipinapadala ng user A ang pampublikong susi nang maaga sa kanyang mga kasulatan na B at C, at pagkatapos ay nagpadala sa kanila ng mensaheng naka-encrypt gamit ang kanyang pribadong key.
Ang mensahe ay maaari lamang ipadala ni A (siya lamang ang may pribadong key), iyon ay, ang problema sa pagpapatunay ay garantisadong. Ngunit, halimbawa, si B ay hindi sigurado na ang liham ay hindi rin binasa ni C. Kaya, ang problema sa pagiging kumpidensyal ay hindi natiyak
Ang scheme na tinitiyak ang pagiging lihim (pagiging kumpidensyal) ay ipinapakita sa Fig. 6.
Ang mensahe ay mababasa lamang ni A, dahil siya lamang ang may pribadong susi na nagpapakita ng mensahe, iyon ay, ang problema sa pagiging kumpidensyal ay nalutas. Ngunit hindi matiyak ni A na ang mensahe ay hindi ipinadala ni B na nagpapanggap na si C. Kaya, ang problema sa pagpapatunay ay hindi nalutas
Upang matiyak ang kumpidensyal na pagpapalitan ng mga mensahe sa pagsusulatan sa pagitan ng dalawang tao, kinakailangang magkaroon ng dalawang pares ng mga susi (Larawan 5).
Upang matiyak ang kumpidensyal na pagpapalitan ng mga mensahe sa pagsusulatan sa pagitan ng dalawang tao, kinakailangang magkaroon ng dalawang pares ng mga susi.
Kapag nag-e-encrypt gamit ang isang key pair, hindi mo kailangang ipadala ang iyong pampublikong susi sa lahat ng mga correspondent. Mas maginhawang i-post ang key na ito sa Internet sa ilang server na may bukas na access. Pagkatapos ang lahat ay maaaring mag-download binigay na susi at magpadala sa iyo ng isang lihim na mensahe na walang sinuman maliban sa iyo ang magbabasa.
Symmetric cryptosystems
Symmetric cryptosystems(Gayundin simetriko na pag-encrypt, simetriko cipher) - isang paraan ng pag-encrypt kung saan ang parehong cryptographic key ay ginagamit para sa pag-encrypt at pag-decryption. Bago ang pag-imbento ng asymmetric encryption scheme, ang tanging paraan na umiral ay simetriko encryption. Ang algorithm key ay dapat na itago ng parehong partido. Ang algorithm ng pag-encrypt ay pinili ng mga partido bago magsimula ang pagpapalitan ng mga mensahe.
Mga pangunahing kaalaman
Ang data encryption at decryption algorithm ay malawakang ginagamit sa teknolohiya ng kompyuter sa mga sistema para sa pagtatago ng kumpidensyal at komersyal na impormasyon mula sa malisyosong paggamit ng mga ikatlong partido. Ang pangunahing prinsipyo sa kanila ay ang kondisyon na alam ng transmitter at receiver ang algorithm ng pag-encrypt nang maaga, pati na rin ang susi sa mensahe, kung wala ang impormasyon ay isang hanay lamang ng mga simbolo na walang kahulugan.
Ang isang klasikong halimbawa ng naturang mga algorithm ay simetriko cryptographic algorithm nakalista sa ibaba:
- Simpleng muling pagsasaayos
- Single permutation sa pamamagitan ng key
- Dobleng permutasyon
- Permutation "Magic Square"
Simpleng muling pagsasaayos
Ang simpleng muling pagsasaayos na walang susi ay isa sa pinaka mga simpleng pamamaraan pag-encrypt. Ang mensahe ay nakasulat sa isang talahanayan sa mga hanay. Matapos maisulat ang plaintext sa mga hanay, ito ay binabasa linya sa linya upang mabuo ang encryption. Upang magamit ang cipher na ito, kailangang magkasundo ang nagpadala at tatanggap sa isang nakabahaging key sa anyo ng laki ng talahanayan. Ang pagsasama-sama ng mga titik sa mga pangkat ay hindi kasama sa cipher key at ginagamit lamang para sa kaginhawahan ng pagsulat ng walang katuturang teksto.
Single permutation sa pamamagitan ng key
Higit pa praktikal na pamamaraan encryption, na tinatawag na single key permutation, ay halos kapareho sa nauna. Naiiba lamang ito dahil ang mga haligi ng talahanayan ay muling inayos ayon sa keyword, isang parirala o isang hanay ng mga numero ang haba ng isang linya ng talahanayan.
Dobleng permutasyon
Para sa karagdagang seguridad, maaari mong muling i-encrypt ang isang mensahe na na-encrypt na. Ang pamamaraang ito ay kilala bilang double permutation. Upang gawin ito, ang laki ng pangalawang talahanayan ay pinili upang ang mga haba ng mga hilera at haligi nito ay iba kaysa sa unang talahanayan. Ito ay pinakamahusay kung sila ay medyo prime. Bilang karagdagan, ang mga haligi sa unang talahanayan ay maaaring muling ayusin, at ang mga hilera sa pangalawang talahanayan ay maaaring muling ayusin. Sa wakas, maaari mong punan ang talahanayan sa isang zigzag, snake, spiral, o sa iba pang paraan. Ang ganitong mga pamamaraan ng pagpuno sa talahanayan, kung hindi nila pinapataas ang lakas ng cipher, pagkatapos ay gawing mas nakakaaliw ang proseso ng pag-encrypt.
Permutation "Magic Square"
Ang mga magic square ay mga square table na may magkakasunod na natural na numero mula sa 1 na nakasulat sa kanilang mga cell, na nagdaragdag ng hanggang sa parehong numero para sa bawat column, bawat row at bawat diagonal. Ang mga parisukat na ito ay malawakang ginagamit upang magpasok ng naka-encrypt na teksto ayon sa pagbibigay ng numero sa kanila. Kung pagkatapos ay isusulat mo ang mga nilalaman ng talahanayan sa bawat linya, makakakuha ka ng pag-encrypt sa pamamagitan ng muling pagsasaayos ng mga titik. Sa unang tingin, parang kakaunti lang ang magic squares. Gayunpaman, ang kanilang bilang ay tumataas nang napakabilis habang ang laki ng parisukat ay tumataas. Kaya, mayroon lamang isang magic square na may sukat na 3 x 3, kung hindi mo isinasaalang-alang ang mga pag-ikot nito. Mayroon nang 880 magic squares na 4 x 4, at ang bilang ng magic squares na may sukat na 5 x 5 ay humigit-kumulang 250,000 Samakatuwid, magic squares malalaking sukat ay maaaring maging isang magandang batayan para sa isang maaasahang sistema ng pag-encrypt noong panahong iyon, dahil ang manu-manong pagsubok sa lahat ng mga pangunahing opsyon para sa cipher na ito ay hindi maiisip.
Ang mga numero mula 1 hanggang 16 ay magkasya sa isang parisukat na may sukat na 4 sa 4. Ang mahika nito ay ang kabuuan ng mga numero sa mga hilera, haligi at buong dayagonal ay katumbas ng parehong numero - 34. Ang mga parisukat na ito ay unang lumitaw sa China, kung saan sila itinalaga ilang "magic power".
Pagkatapos nito, ang ciphertext ay isinusulat sa isang linya (ginagawa ang pagbabasa mula kaliwa hanggang kanan, linya sa linya):
.irdzegu SzhaoyanP
Kapag nagde-decrypting, ang teksto ay umaangkop sa isang parisukat, at ang plaintext ay binabasa sa pagkakasunud-sunod ng mga numero ng "magic square". Ang parisukat ay mas malaki kaysa sa 3x3.
Kwento
Mga kinakailangan
Ang kumpletong pagkawala ng lahat ng istatistikal na pattern ng orihinal na mensahe ay isang mahalagang kinakailangan para sa isang simetriko cipher. Upang gawin ito, ang cipher ay dapat magkaroon ng "epekto ng avalanche" - isang malakas na pagbabago sa bloke ng pag-encrypt ay dapat mangyari sa isang 1-bit na pagbabago sa data ng pag-input (sa isip, ang mga halaga ng 1/2 bits ng bloke ng pag-encrypt ay dapat pagbabago).
Ang isa pang mahalagang pangangailangan ay ang kawalan ng linearity (iyon ay, ang mga kundisyon f(a) xor f(b) == f(a xor b)), kung hindi, ang aplikasyon ng differential cryptanalysis sa cipher ay mapadali.
Pangkalahatang pamamaraan
Sa kasalukuyan, ang mga simetriko cipher ay:
- harangan ang mga cipher. Pinoproseso nila ang impormasyon sa mga bloke na may tiyak na haba (karaniwan ay 64, 128 bits), naglalapat ng susi sa bloke sa isang iniresetang pagkakasunud-sunod, kadalasan sa pamamagitan ng ilang mga cycle ng shuffling at substitution, na tinatawag na rounds. Ang resulta ng paulit-ulit na pag-ikot ay isang avalanche effect - isang pagtaas ng pagkawala ng bit correspondence sa pagitan ng mga bloke ng bukas at naka-encrypt na data.
- stream ciphers, kung saan ang pag-encrypt ay isinasagawa sa bawat bit o byte ng orihinal (plain) na teksto gamit ang gamma. Ang isang stream cipher ay madaling malikha batay sa isang block cipher (halimbawa, GOST 28147-89 sa gamma mode), na inilunsad sa isang espesyal na mode.
Karamihan sa mga simetriko cipher ay gumagamit ng isang kumplikadong kumbinasyon malaking dami pagpapalit at permutasyon. Maraming mga ganitong cipher ang ginagawa sa ilang (minsan hanggang 80) pass, gamit ang isang "pass key" sa bawat pass. Ang set ng "pass keys" para sa lahat ng pass ay tinatawag na "key schedule". Bilang isang patakaran, ito ay nilikha mula sa isang susi sa pamamagitan ng pagsasagawa ng ilang mga operasyon dito, kabilang ang mga permutasyon at pagpapalit.
Ang isang karaniwang paraan upang makabuo ng mga simetriko na algorithm ng pag-encrypt ay ang Feistel network. Bumubuo ang algorithm ng scheme ng pag-encrypt batay sa function na F(D, K), kung saan ang D ay isang piraso ng data na doble ang laki mas mababa sa isang bloke encryption, at ang K ay ang "pass key" para sa isang ibinigay na pass. Ang function ay hindi kinakailangang maging invertible - ang inverse function nito ay maaaring hindi kilala. Ang mga bentahe ng Feistel network ay ang halos kumpletong pagkakaisa ng decryption na may encryption (ang pagkakaiba lamang ay ang reverse order ng "pass key" sa iskedyul), na lubos na nagpapadali sa pagpapatupad ng hardware.
Hinahalo ng operasyon ng permutation ang mga bits ng mensahe ayon sa isang partikular na batas. Sa mga pagpapatupad ng hardware, ito ay trivially na ipinapatupad bilang wire reversal. Ito ay ang mga pagpapatakbo ng permutation na ginagawang posible upang makamit ang "epekto ng avalanche." Ang pagpapatakbo ng permutasyon ay linear - f(a) xor f(b) == f(a xor b)
Isinasagawa ang pagpapalit ng mga operasyon bilang pagpapalit ng halaga ng ilang bahagi ng mensahe (kadalasan ay 4, 6 o 8 bits) ng isang standard, hard-wired na numero sa algorithm sa pamamagitan ng pag-access sa isang pare-parehong array. Ang pagpapalit na operasyon ay nagpapakilala ng nonlinearity sa algorithm.
Kadalasan ang lakas ng isang algorithm, lalo na laban sa differential cryptanalysis, ay nakasalalay sa pagpili ng mga halaga sa mga lookup table (S-boxes). Sa pinakamababa, itinuturing na hindi kanais-nais na magkaroon ng mga nakapirming elemento S(x) = x, pati na rin ang kawalan ng impluwensya ng ilang bit ng input byte sa ilang bit ng resulta - iyon ay, mga kaso kapag ang resulta bit ay ang pareho para sa lahat ng mga pares ng input na salita na naiiba lamang sa bit na ito.
Mga parameter ng algorithm
Mayroong maraming (hindi bababa sa dalawang dosenang) symmetric cipher algorithm, ang mga mahahalagang parameter nito ay:
- haba ng susi
- bilang ng mga round
- naprosesong haba ng bloke
- pagiging kumplikado ng pagpapatupad ng hardware/software
- pagiging kumplikado ng conversion
Mga Karaniwang Algorithm
- AES (Ingles) Advanced na Pamantayan sa Pag-encrypt) - American encryption standard
- GOST 28147-89 - pamantayan sa pag-encrypt ng domestic data
- DES (Ingles) Pamantayan sa Pag-encrypt ng Data) - pamantayan sa pag-encrypt ng data sa USA
Paghahambing sa asymmetric cryptosystems
Mga kalamangan
- bilis (ayon sa Applied Cryptography - 3 order ng magnitude na mas mataas)
- kadalian ng pagpapatupad (dahil sa mas simpleng mga operasyon)
- mas maikli ang kinakailangang haba ng key para sa maihahambing na tibay
- kaalaman (dahil sa mas mataas na edad)
Mga kapintasan
- pagiging kumplikado ng pangunahing pamamahala malaking network. Nangangahulugan ito ng isang quadratic na pagtaas sa bilang ng mga key pairs na dapat mabuo, mailipat, maiimbak at sirain sa network. Para sa isang network ng 10 subscriber, 45 key ang kailangan, para sa 100 ay 4950 na, para sa 1000 - 499500, atbp.
- pagiging kumplikado ng palitan ng susi. Upang magamit ito, kinakailangan upang malutas ang problema ng maaasahang paglipat ng mga susi sa bawat subscriber, dahil kinakailangan ito lihim na channel upang ipasa ang bawat susi sa magkabilang panig.
Upang mabayaran ang mga pagkukulang ng simetriko encryption, isang pinagsamang (hybrid) cryptographic scheme ay kasalukuyang malawakang ginagamit, kung saan ang session key na ginagamit ng mga partido upang makipagpalitan ng data gamit ang simetriko encryption ay ipinapadala gamit ang asymmetric encryption.
Ang isang mahalagang katangian ng simetriko cipher ay imposibilidad ang kanilang paggamit upang kumpirmahin ang pagiging may-akda, dahil ang susi ay alam ng bawat partido.
Panitikan
- Gatchin Yu.A., Korobeinikov A.G. Mga pangunahing kaalaman ng cryptographic algorithm. Gabay sa pag-aaral. - St. Petersburg: SPbGITMO (TU), 2002.
- Kohn P. Universal algebra. - M.: Mir. - 1968.
- Korobeinikov A.G. Mga pundasyon ng matematika ng cryptography. Gabay sa pag-aaral. St. Petersburg: St. Petersburg GITMO (TU), 2002.
Mga link
- reference na libro, kabilang ang simetriko na pag-encrypt
Symmetric cryptosystems | |
---|---|
Stream cipher | |
Feistel network | |
Panimula
Ang problema sa pagprotekta ng impormasyon sa pamamagitan ng pagbabago nito upang hindi ito mabasa ng isang tagalabas, ay nagpasigla sa isip ng tao mula pa noong sinaunang panahon. Ang kasaysayan ng cryptography ay kasingtanda ng kasaysayan wika ng tao. Bukod dito, ang pagsulat mismo ay orihinal na isang cryptographic system, dahil sa mga sinaunang lipunan ay piling iilan lamang ang nakabisado nito.
Mabilis na umunlad ang mga cryptographic system noong mga taon ng Una at Ikalawang Digmaang Pandaigdig. Mula sa panahon pagkatapos ng digmaan hanggang sa kasalukuyan, ang pagdating ng computing ay nagpabilis sa pagbuo at pagpapabuti ng mga pamamaraan ng cryptographic.
Bakit isang problema ang paggamit ng mga pamamaraan ng cryptographic sa mga sistema ng impormasyon(IS) ay pumasok kasalukuyang sandali partikular na may kaugnayan?
Sa isang banda, lumawak ang paggamit mga network ng kompyuter, sa partikular pandaigdigang network Ang Internet, kung saan ipinapadala ang malalaking volume ng impormasyon ng isang estado, militar, komersyal at pribadong kalikasan, na pumipigil sa mga hindi awtorisadong tao na ma-access ito.
Sa kabilang banda, ang paglitaw ng bago makapangyarihang mga computer, network at neural computing na mga teknolohiya ay naging posible na siraan mga sistema ng cryptographic Hanggang kamakailan, sila ay itinuturing na halos hindi matukoy.
Ang Cryptology (kryptos - secret, logos - science) ay tumatalakay sa problema ng pagprotekta sa impormasyon sa pamamagitan ng pagbabago nito. Ang cryptology ay nahahati sa dalawang lugar - kriptograpiya At cryptanalysis. Ang mga layunin ng mga direksyong ito ay direktang kabaligtaran.
Cryptography nakikibahagi sa paghahanap at pananaliksik mga pamamaraan sa matematika pagbabago ng impormasyon.
Cryptoanalysis- ginalugad ang mga posibilidad ng pag-decrypt ng impormasyon nang hindi nalalaman ang mga susi.
Cryptographic na pamamaraan ng proteksyon ng impormasyon- ito ay mga espesyal na paraan ng pag-encrypt, pag-encode o iba pang pagbabago ng impormasyon, bilang isang resulta kung saan ang nilalaman nito ay nagiging hindi maa-access nang walang pagtatanghal ng cryptogram key at reverse transformation. Ang cryptographic na paraan ng seguridad ay sa ngayon ang pinaka maaasahang paraan proteksyon, dahil ang impormasyon mismo ay protektado, at hindi access dito. Ang paraan ng proteksyon na ito ay ipinatupad sa anyo ng mga programa o software packages.
Cryptography
Kasama sa modernong cryptography ang apat na pangunahing seksyon:
1. Symmetric cryptosystems. Sa simetriko cryptosystems, ang parehong key ay ginagamit para sa parehong pag-encrypt at decryption;
2. Mga pampublikong key cryptosystem. Gumagamit ang mga public key system ng dalawang key, isang pampubliko at isang pribado, na may kaugnayan sa matematika sa isa't isa. Ang impormasyon ay naka-encrypt gamit ang isang pampublikong susi, na magagamit ng lahat, at na-decrypt gamit ang isang pribadong key, na alam lamang ng tatanggap ng mensahe;
3. Electronic na lagda . Ang electronic signature system ay isang cryptographic transformation na naka-attach sa text, na nagbibigay-daan, kapag natanggap ng ibang user ang text, na i-verify ang authorship at authenticity ng mensahe.
4. Pangunahing pamamahala. Ito ang proseso ng mga sistema ng pagproseso ng impormasyon, ang nilalaman nito ay ang pagsasama-sama at pamamahagi ng mga susi sa pagitan ng mga gumagamit.
Ang mga pangunahing lugar ng paggamit ng mga pamamaraan ng cryptographic ay paghahatid kumpidensyal na impormasyon sa pamamagitan ng mga channel ng komunikasyon, pagtatatag ng pagiging tunay ng mga ipinadalang mensahe, pag-iimbak ng impormasyon sa media sa naka-encrypt na anyo.
Kaya, ginagawang posible ng cryptography na baguhin ang impormasyon sa paraang ang pagbabasa nito (pagbawi) ay posible lamang kung ang susi ay kilala.
Ang impormasyong ie-encrypt at ide-decrypt ay mga tekstong binuo sa ilan alpabeto. Ang mga terminong ito ay nangangahulugan ng mga sumusunod.
Alpabeto- isang may hangganan na hanay ng mga character na ginagamit upang i-encode ang impormasyon.
Text- isang nakaayos na hanay ng mga elemento ng alpabeto.
Pag-encrypt- proseso ng pagbabagong-anyo: pinagmulan, na tinatawag ding plaintext, ay pinalitan naka-encrypt na teksto.
Pag-decryption- ang baligtad na proseso ng pag-encrypt. Batay sa susi, ang ciphertext ay na-convert sa orihinal.
Susi - impormasyong kailangan para sa maayos na pag-encrypt at pag-decryption ng mga teksto.
Ang mga cryptosystem ay nahahati sa simetriko At gamit ang pampublikong susi.
SA simetriko cryptosystems ginagamit para sa parehong pag-encrypt at pag-decryption ang parehong susi.
SA pampublikong key system dalawang susi ang ginagamit - bukas At sarado, na may kaugnayan sa matematika sa isa't isa. Ang impormasyon ay naka-encrypt gamit ang isang pampublikong susi, na magagamit ng lahat, at na-decrypt gamit ang isang pribadong key, na alam lamang ng tatanggap ng mensahe.
Mga tuntunin pamamahagi ng susi At pangunahing pamamahala sumangguni sa mga proseso ng isang sistema ng pagpoproseso ng impormasyon, ang nilalaman nito ay ang pagsasama-sama at pamamahagi ng mga susi sa pagitan ng mga gumagamit.
Electronic (digital) na lagda ay tinatawag na cryptographic transformation na naka-attach sa text, na nagbibigay-daan, kapag ang text ay natanggap ng ibang user, na i-verify ang authorship at authenticity ng mensahe.
Lakas ng cryptographic ay isang katangian ng isang cipher na tumutukoy sa paglaban nito sa pag-decryption nang hindi nalalaman ang susi. Mayroong ilang mga tagapagpahiwatig ng lakas ng cryptographic, kabilang ang:
· bilang ng lahat posibleng mga susi;
· average na oras na kinakailangan para sa cryptanalysis.
Symmetric cryptosystems
Ang buong iba't ibang mga umiiral na pamamaraan ng cryptographic ay maaaring bawasan sa mga sumusunod na klase ng mga pagbabago:
Ang pinakasimpleng uri ng pagbabagong-anyo, na binubuo sa pagpapalit ng mga character ng pinagmulang teksto sa iba (ng parehong alpabeto) nang higit pa o mas kaunti kumplikadong tuntunin. Upang matiyak ang mataas na lakas ng cryptographic, kinakailangan ang paggamit ng malalaking key.
· Mga muling pagsasaayos.
Isa ring simpleng paraan ng conversion ng cryptographic. Karaniwan itong ginagamit kasama ng iba pang mga pamamaraan.
Muling pag-aayos - ang mga character ng naka-encrypt na teksto ay muling inayos ayon sa isang tiyak na panuntunan sa loob ng isang partikular na bloke ng ipinadalang teksto.
· Gumming.
Ang pamamaraang ito ay binubuo ng pagpapatong sa pinagmulang teksto ng ilang pseudo-random na pagkakasunud-sunod na nabuo batay sa susi.
Analytical transformation - ang naka-encrypt na text ay binago ayon sa ilang analytical na panuntunan, halimbawa gamma - binubuo sa pagpapataw sa source text ng ilang pseudo-random sequence na nabuo batay sa key.
· I-block ang mga cipher.
Pinagsamang pagbabago - kumakatawan sa isang pagkakasunud-sunod ng mga pangunahing pamamaraan ng pagbabagong inilapat sa isang bloke ng ciphertext. Sa pagsasagawa, ang mga block cipher ay mas karaniwan kaysa sa "purong" mga pagbabagong-anyo ng isang klase o iba pa dahil sa kanilang mas mataas na lakas ng cryptographic. Ruso at Mga pamantayang Amerikano nakabatay ang mga encryption sa klase na ito.
· Pagpapalit.
Pagpapalit - ang mga character sa naka-encrypt na teksto ay pinapalitan ng mga character mula sa pareho o ibang alpabeto ayon sa isang paunang natukoy na panuntunan.
Kaugnay na impormasyon.