Дадатак забяспечвае наступныя метады шыфравання і дэшыфравання: афінная крыптасістэма для лацінскага тэксту (26 літар), афінная крыптасістэма для кірылічнага тэксту (30 літар), крыптасістэма RSA і крыптасістэма АСЕ.
Афінная крыптасістэма - гэта прыклады крыптасістэм з закрытым ключом. У крыптасістэме з прыватным ключом, як толькі вы ведаеце ключ шыфравання, вы можаце хутка знайсці ключ дэшыфравання. Такім чынам, веданне таго, як шыфраваць паведамленні з дапамогай пэўнага ключа, дазваляе расшыфраваць паведамленні, якія былі зашыфраваны з дапамогай гэтага ключа.
Крыптасістэма RSA — гэта крыптасістэма з адкрытым ключом, адна з найстарэйшых, якія шырока выкарыстоўваюцца для бяспечнай перадачы даных. У крыптасістэме з адкрытым ключом ключ шыфравання з'яўляецца адкрытым і адрозніваецца ад ключа дэшыфравання, які захоўваецца ў сакрэце (прыватным). Карыстальнік RSA стварае і публікуе адкрыты ключ на аснове двух вялікіх простых лікаў разам з дапаможным значэннем. Простыя лічбы трымаюцца ў сакрэце. Паведамленні могуць быць зашыфраваны кім заўгодна з дапамогай адкрытага ключа, але расшыфраваць можа толькі той, хто ведае прыватны ключ.
Пашыраны стандарт шыфравання (AES), таксама вядомы пад сваёй першапачатковай назвай Rijndael, з'яўляецца спецыфікацыяй шыфравання электронных даных, устаноўленай Нацыянальным інстытутам стандартаў і тэхналогій ЗША (NIST) у 2001 годзе. AES з'яўляецца варыянтам блочнага шыфра Rijndael. Rijndael - гэта сямейства шыфраў з рознымі ключамі і памерамі блокаў.
У дадатку выкарыстоўваецца AES/CBC/PKCS5Padding, які з'яўляецца крыптаграфічным рэжымам працы, які выкарыстоўваецца для бяспечнага шыфравання і дэшыфравання даных. CBC (Cipher Block Chaining): гэта рэжым працы, у якім кожны блок даных аб'ядноўваецца з папярэднім блокам з дапамогай аперацыі XOR, перш чым ён будзе зашыфраваны. Першы блок спалучаецца з вектарам ініцыялізацыі (IV), які павінен быць унікальным для кожнага зашыфраванага паведамлення. Рэжым CBC забяспечвае лепшую абарону ад нападаў, якія спрабуюць змяніць змест паведамленняў. PKCS5Padding: гэта схема запаўнення даных, якая гарантуе, што ўваходныя даныя маюць даўжыню, кратную памеру блока (у дадзеным выпадку 128 біт). PKCS5Padding дадае байты ў канец апошняга блока, каб ён стаў поўным. Гэтыя дадатковыя байты ўтрымліваюць інфармацыю аб колькасці дададзеных байтаў.
З усімі метадамі шыфравання ў дадатку можна захоўваць зашыфраваныя файлы ў абраным каталогу прылады, дзе знаходзіцца файл шыфравання, у назвах якога ёсць тэкст «Зашыфравана...» плюс імя файла шыфравання, а таксама ў дужках яго пашырэнне і метад шыфравання, як AES.
Зашыфраваны тэкст можа быць захаваны ў выглядзе файлаў у папцы Download прылады.
У праграме прыватны ключ для AES для захавання шыфруецца метадам RSA і захоўваецца ў выглядзе асобнага файла. Такім чынам, пры шыфраванні AES захоўваюцца файлы з імёнамі:
EncryptedAes_xxx(.txt).bin – зашыфраваны файл xxx.txt;
EncryptedAesRSAVateKey_xxx.bin – прыватны ключ RSA для шыфравання прыватнага ключа AES для таго ж файла xxx.txt;
EncryptedAesKey_xxx.bin – прыватны ключ AES, зашыфраваны ключом RSAPrivate Key для таго ж файла xxx.txt;
ivBin_xxx.bin – вектар ініцыялізацыі для таго ж файла xxx.txt;
Такім чынам, пры шыфраванні RSA захоўваюцца тры файла з назвамі:
EncryptedRSA_xxx(.txt).bin – зашыфраваны файл xxx.txt;
EncryptedRSAVateKey_xxx.bin - прыватны ключ RSA;
EncryptedRSAPublicKey_xxx.bin - адкрыты ключ RSA;
Пры афінным лацінскім шыфраванні захоўваюцца два файлы з назвамі:
EncryptedAffineLatin_xxx(.txt).bin – зашыфраваны файл xxx.txt;
EncryptedAffineLatinKeyB_xxx.bin - зрух параметра b;
Лацінка замяняецца на кірыліцу з дапамогай афінных кірылічных зашыфраваных файлаў.
Пры расшыфроўцы ўсе файлы для адпаведнага метаду шыфравання і адпаведны зашыфраваны файл (файл з зашыфраванымі дадзенымі і адпаведнымі ключамі) павінны знаходзіцца ў адной папцы.
Пры расшыфроўцы спачатку выбіраецца метад шыфравання файла, таксама выбіраецца файл з зашыфраванымі дадзенымі.
У дадатку ёсць рэкламныя банеры, якія могуць актываваць або дэактываваць паказ рэкламы.
Дадатак мае даведку і спасылкі на іншыя прыкладанні аўтара.