Ako vytvoriť šifrovací algoritmus: 6 krokov (s obrázkami)

Nech už je váš dôvod na vytvorenie šifrovacieho programu akýkoľvek, jeho vytvorenie môže byť zábavné a veľmi náročné. Ak to však robíte prvýkrát, môže byť ťažké prísť na to, ako to urobiť. Tento článok obsahuje všeobecnú myšlienku a základné kroky, ktoré budete musieť urobiť, aby ste vytvorili funkčný a realistický šifrovací program.

Časť 1 z 2:Vytvorenie metódy šifrovania

Navrhnite algoritmus. Všeobecný algoritmus je základom všetkých metód šifrovania. RSA využíva matematické vlastnosti veľkých prvočísel na rýchle a bezpečné šifrovanie súkromných údajov. Bitcoin používa verziu RSA na bezpečné zabezpečenie platieb a zabezpečenie toho, že odosielateľ skutočne chce poslať bitcoiny inému používateľovi. Mali by ste vykonať výskum rôznych typov šifrovacích algoritmov, ako je šifrovanie súkromným a verejným kľúčom. Treba poznamenať, že žiadne šifrovanie, ak plánujete získať údaje, nie je neprelomiteľné. Šifrovanie môže odradiť len náhodné špehovanie a oddialiť vážne útoky. Odporúčame vám naučiť sa, čo je to binárna sústava, uľahčí vám to tvorbu algoritmu a zvýši význam šifrovania údajov.

Otestujte svoj algoritmus. Keď si myslíte, že máte dobrý algoritmus, mali by ste skúsiť ručne zašifrovať veľmi krátku správu. Pri dobrých šifrovacích algoritmoch by to malo trvať viac ako niekoľko minút. Dobrým pravidlom je, že ak dokážete správu zašifrovať vo svojej hlave, potom nie je bezpečná pre seriózne šifrovanie. Ak sa výsledná správa akýmkoľvek spôsobom podobá na pôvodnú správu, potom je nemusí byť v bezpečí.

Zvážte dešifrovanie. Musí existovať spôsob, ako môžu oprávnené strany pristupovať k údajom zašifrovaným vaším algoritmom. Mali by ste zabezpečiť, aby ste mohli ľahko dekódovať údaje, ak poznáte kľúč, a aby bolo pre útočníkov ťažké náhodne naraziť na kľúč metódou pokus-omyl.

  • Ak nechcete, aby sa údaje dali vôbec získať, zvážte namiesto toho vytvorenie hashovacieho algoritmu. Hašovací algoritmus prijíma vstup a na základe tohto vstupu vytvára jednosmernú hodnotu. Je možné prejsť zo zdrojového vstupu na zaheslovanú hodnotu, ale v ideálnom prípade nie je možné vrátiť sa zo zaheslovanej hodnoty späť na zdrojový vstup. Toto je obzvlášť životaschopné na ochranu heslom. Keď si na webovej stránke vytvoríte účet s heslom, etické webové stránky pred uložením hesla zaheslujú vaše heslo. Má to mnoho výhod, napríklad zdržanie útočníkov od prelomenia vášho hesla. Ak však heslo zabudnete, budete nútení vytvoriť nové.

Návrh pseudokódu. Toto by malo byť relatívne jednoduché, keď už máte vytvorený algoritmus a otestované, že funguje. Pseudokód by mal znieť ako jednoduchá a poučná angličtina, mal by byť dostatočne zrozumiteľný pre bežného človeka a dostatočne poučný pre programátora, aby mohol algoritmus ľahko implementovať do jazyka, ako je C, Java atď.

Časť 2 z 2: Zverejnenie algoritmu

Podeľte sa o svoj algoritmus s ostatnými nadšencami pre šifrovanie údajov. To vám umožní odhaliť možné pasce v šifrovaní a získať spätnú väzbu o bezpečnosti a životaschopnosti algoritmu. Ak je váš algoritmus taký zložitý, že mu nikto nerozumie, nikto ho nebude používať. To isté však platí aj v prípade, ak je algoritmus taký jednoduchý, že správu dokáže dekódovať ktokoľvek s minimálnym úsilím.

  • Uverejnite výzvu na fóre. Existujú fóra venované riešeniu a dekódovaniu údajov, skúste zverejniť krátku správu, ktorú ste zašifrovali, spolu s nápovedou o použitom algoritme. Ak sa cítite sebavedomo, môžete im dokonca poskytnúť svoj algoritmus a zistiť, ako dlho trvá ostatným, kým ho prelomia hrubou silou.