Užitečné komponenty pro Delphi a C++ Builder, díl 20.

Šifrování je jedním z hlavních způsobů ochrany dat. Pro Delphi lze pro tento účel nalézt řadu komponent různé úrovně a kvality. Jeden z nejznámějších balíků – Delphi Encryption Compendium – si dnes představíme společně s jeho "konkurentem", balíkem DCPcrypt.

Delphi Encryption Compendium, Part I

Tento balík je jakousi první částí (Part I) celého Encryption Compendia, které zatím není celé hotové. Tato první (hotová) část je freeware a obsahuje několik desítek šifrovacích algoritmů, kontrolních součtů, hashovacích algoritmů a generátorů náhodných čísel. Zbylé části Compendia (část II a III) se budou (až budou hotové) distribuovat jako shareware a podle plánů autora, kterým je Hagen Reddmann, budou obsahovat některé pokročilejší funkce, jako jsou asymetrické šifry, digitální podpisy a podobně.

Vraťme se ale zpět k první části. Jestli máte o šifrách jen obecné povědomí, budete zřejmě překvapeni záplavou šifer, které nám balík nabízí, a zpočátku se mezi nimi jistě ztratíte. Těm o něco více znalejším určitě něco řeknou názvy jako Gost, Cast (128 a 256), Blowfish, IDEA, RC2 (4, 5, 6), DES (single, double, triple), Rijndael, Twofish, Tea a řada dalších. Celkem jich je asi 40, každá má svá specifika, slabiny či naopak výhody oproti ostatním. Chcete-li se v tomto směru poněkud více zorientovat, nevyhnete se zřejmě nastudování některých dokumentů. Samotná komponenta vám (celkem pochopitelně) v tomto moc nápomocná nebude a kromě několika dokumentů RFC (Request for Comments), které se zabývají tématem One-Time Password, žádné další dokumenty ani manuály neobsahuje. Je to možná škoda, protože alespoň základní popis jednotlivých algoritmů by se hodil. Přesný popis principu by pochopitelně zabral poněkud více místa, protože se jedná o trošku vyšší matematiku, ale vysvětlování principu není cílem komponent a je to pochopitelné. Nás tedy jako programátory nebude příliš zajímat princip, ale spíše to, co nám může nabídnout samotná komponenta.

Po instalaci, která proběhne celkem standardním a bezproblémovým způsobem (testováno s Delphi 5), se nám na paletě komponent objeví nová záložka DEC, která obsahuje překvapivě pouze tři komponenty. Ano, sliboval jsem vám desítky šifer a dalších funkcí a balík je opravdu obsahuje. Každá z komponent, nainstalovaných na paletě, je vlastně jakýsi manažer pro jednotlivé oblasti šifrování, a tak zde najdete HashManager (pro hashovací funkce), CipherManager (pro šifrovací algoritmy) a konečně OneTimePassword (viz výše a popis v RFC). K celému balíku je přiložen demonstrační projekt, který použití všech jednotlivých funkcí znázorňuje prakticky, takže se můžete pustit do experimentování.

Ještě je třeba připomenout jednu drobnost: Komponenty jsou sice freeware a dodány se všemi zdrojovými kódy, ale některé v ní použité algoritmy podléhají mezinárodním patentům. Nejsem sice právník, ale v případě použití nějakého patentovaného algoritmu (a navíc třeba ještě v komerčním projektu) bude zřejmě nutné majiteli patentu zaplatit nějakou částku. Některé patentované algoritmy lze ale v nekomerčních projektech také bez omezení použít. Nevím, jak přesně to chodí v praxi. Některé šifry mají zase jistá vývozní omezení z USA (což se nás přímo netýká). Šifrování je zkrátka mocná technologie a platí pro ni plno různých pravidel. Pro základní orientaci v tom, které algoritmy můžete bez obav použít (a to i v komerčních projektech) přikládám následující tabulku, která obsahuje některé známé algoritmy a údaj o tom, zda podléhají patentu. Informace pochází z dokumentu, dodávaného k dalšímu z balíku šifrovacích komponent od Davida Bartona (viz dále) a tak nemohu zaručit jeho bezchybnost.

Šifra Patentováno
Blowfish Ne
Cast128 Ne
Cast256 Ano
Gost Ne
IDEA Ano (možno použít v nekomerčních projektech)
Mars Ano
Misty1 Ano (možno použít v nekomerčních projektech)
RC2 Ne
RC5 Ano
RC6 Ano
Rijndael Ne
Twofish Ne
Haval Ne
RipeMD-169 Ne
SHA1 Ne

Co říci závěrem? Jedná se o velmi rozsáhlý projekt co do množství podporovaných funkcí a algoritmů. Pokud se o šifrování zajímáte, jistě by neměl uniknout vaší pozornosti.

www
verze: 3.0
Delphi: 2-5 (677 kB)
C++ Builder: 3-4 (677 kB)

DCPcrypt

I tento balík je plný šifrovacích algoritmů a dalších s věcí související funkcí. Autorem je David Barton a v tabulce uvedené výše (viz popis předchozí komponenty) je vlastně seznam těch algoritmů, které jsou v balíku obsaženy. Přístup je poněkud odlišný od předchozího balíku. Každý z jednotlivých šifrovacích či hashovacích algoritmů je zastoupen vlastní ikonkou na paletě komponent, což jistým způsobem usnadňuje práci s jednotlivými šiframi. Z přiloženého demoprojektu se opět snadno naučíte, jak s komponentami pracovat, protože to opravdu není těžké.

Komponenty jsou opět freeware a dokonce public domain, což znamená, že je můžete bez omezení nejen používat, ale též modifikovat a dále distribuovat bez zvláštního souhlasu autora. A samozřejmě opět připomínám, že i když jsou komponenty freeware, některé použité algoritmy mohou být chráněny patenty a tak je třeba s tím počítat (viz tabulka výše).

www
verze: 1.3
Delphi: 1-6 (146 kB)
C++ Builder: ?

Váš názor Další článek: Microsoft kupuje Navision za 1,3 miliardy dolarů

Témata článku: Software, Programování, Download, Moc těch, Hashovací funkce, Jistý směr, Jednotlivé komponenty, One Tim Password, Hagen, Idea, Cast, Přesná částka, Komp, Základní princip, Komponenta, Public domain, Díl, Deco, Ideo, DEL, TomTom One


Určitě si přečtěte

Vy a počítač: Virtuální plochy ve Windows mají smysl, používá je třetina čtenářů
Vladislav Kluska
Jak používáte počítačWindows 10Ankety
Platby kartou se můžou rozšířit úplně všude. Jako terminál poslouží mobil
Lukáš Václavík
BankaPlacení mobilemNFC
Lépe bylo bez Googlu, přiznal s odstupem bývalý šéf Waze
Markéta Mikešová
WazeGoogle
Micro:bit V2: Tuto destičku plnou čipů dokáže naprogramovat i vaše babička

Micro:bit V2: Tuto destičku plnou čipů dokáže naprogramovat i vaše babička

** Chcete se teď hned naučit programovat čipy? ** Nechcete nic instalovat a číst zdlouhavé manuály? ** Naprogramujeme si Micro:bit, který zahraje Tichou noc

Jakub Čížek | 35

Jakub Čížek
Pojďme programovat elektronikuProgramování pro děti
Nová volitelná aktualizace opravuje více než 40 chyb v operačním systému Windows 10
Karel Kilián
Windows UpdateAktualizaceWindows 10