Zabezpečení dat šifrováním a skrytím textu do obrázku

C# .NET Práce se soubory Zdrojákoviště Zabezpečení dat šifrováním a skrytím textu do obrázku

Nápad zabývat se touto problematikou vznikl při čtení knihy Michaela Palmera „Poslední chirurg“. Nájemný vrah spolupracující z CIA komunikuje se svými objednateli vražd prostřednictvím eBay. Obrázek nabízeného předmětu totiž obsahuje skrytý text.

Před časem byl na zive.cz uveřejněn článek týkající se šifrování e-mailů a zabezpečení soukromí na internetu http://www.zive.cz/…default.aspx. V článku, který doporučuji si přečíst, je vysvětleno, proč emaily šifrovat, a jsou doporučeny i nástroje, které to umožňují. Lze jistě nalézt celou řadu dalších odkazů na problematiku zabezpečení dat komunikace a ukládání dat.

Z celé šíře problematiky jsem vybral steganografii. Můj poslední článek z této problematiky prezentoval ukládání textu do obrázku metodou LSB (least signifiant bit), modifikací nejméně významného bitu pixelu obrázku http://www.itnetwork.cz/…e-steganolsb. V textu jsem zmínil možnost text ještě před uložením do obrázku šifrovat, např. pomocí mého programu AES krypto Editor. Rozhodl jsem se tedy oba produkty spojit do jednoho, a vznikl tak program CryptoStegano . Pomocí tohoto programu je tak možné text zašifrovat metodou AES Rijnadae, nebo text ponechat beze změny a uložit do obrázku. Celou operaci je možné chránit přístupovým kódem 6-ti až 12-ti ASCII znaků. Obrázek s ukrytým textem slouží k zabezpečení citlivých informací ve vlastním počítači, je možné jej vystavit na Internetu, odeslat e-mailem nebo odeslat do datového úložiště. Pro zpětné získání textu z obrázku program vyžaduje znalost přístupového kódu. Přístupovým kódem se nastavuje místo uložení textu v obrázku a v případě, že je text zašifrován nastavuje se pomocí tohoto kódu také umístění inicializačního vektoru a klíče v obrázku. Program rovněž umožňuje zašifrovat text a chránit jej přístupovým kódem bez uložení do obrázku. Text může být ve formátu txt, rtf, htm a html. Program umožňuje chránit obrázky vodoznakem. Vodoznak může být textový nebo obrázek. Lze nastavit velikost, font a průhlednost textu vodoznaku, rovněž u obrázkového vodoznaku lze nastavit průhlednost. V programu jsem si v Propertis ověřil funkci Settings, jejichž pomocí jsem nastavil 14-ti denní testování a vyžádání aktivačního kódu (naleznete jej ve zdrojovém kódu). Tajným tlačítkem lze obnovit 14-ti denní testování. Rozsah kódu je již poměrně značný a jistě lze nalézt řadu chyb, které jsem při testování neobjevil. Neváhejte mně tedy na chyby upozornit.

Protože v posledním článku je uveden algoritmus zápisu textu do obrázku metodou LSB, nebudu jej již opakovat. Rovněž metoda šifrování AES Rijnadae je obecně známá včetně využití knihovny System.Securi­ty.Cryptograp­hy.

V příloze je obrázek s ukrytým texem s přístupovým kódem 000000.


Galerie

Program byl vytvořen v roce 2015.

 

Stáhnout

Staženo 150x (8.13 MB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

  Aktivity (2)

Program pro vás napsal itnavi
Avatar
Autor se věnuje tvorbě a správě webových stránek a programování v C#

Jak se ti líbí článek?
Celkem (8 hlasů) :
4.6254.6254.6254.6254.625


 



 

 

Komentáře
Zobrazit starší komentáře (12)

Avatar
Štefan Pružinský:

Zabudol som ešte na Linux. Myslíš, že sa C++ na iných platformách skompiluje sám? Nie, niekto musí ten kompilátor vytvoriť.

Odpovědět  -1 23.5.2015 10:27
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
mkub
Redaktor
Avatar
Odpovídá na Štefan Pružinský
mkub:

myslis, ze v Linuxe nie je standardne kompilator jazyka C/C++? tak to sa velmi mylis!
Linux je takmer cely napisany v jazyku C/C++ a pouziva sa kompilator GCC, co jezdielne FSF...

a takisto existuje kompilator jazyka C/C++ aj pre systemy ako je OSX, BSD, AT&T, iOS, Solaris (aine Unix like OS), dalej ajpre MS-Windows (vsetky verzie), MS-DOS, (vsetko prearchitekturu x86/AMD64), takisto kompilator jazyka C/C++ najdes aj pre ARM, a ine procesory (vlastne pre takmer vsetky)
cize ak chces urobit skutocnu multiplatformovu aplikaciu, staci ti jedine sa naucit C/C++ a sa vykaslat na C#, ktory sa iba hra na multiplatformovy jazyk

 
Odpovědět 23.5.2015 15:32
Avatar
mkub
Redaktor
Avatar
mkub:

s tymto postupom plne suhlasim...
dat k dispozicii vsetko potrebne, aby niekto to mohol zdokonalit a prerobit, aby sa to dalo pouzivat na hocijakom zeleze...
a to je jeden zo zakladnych principov opensource vyvoja a aj jedna z jeho kladnych vlastnosti

 
Odpovědět  +1 23.5.2015 15:36
Avatar
Odpovídá na mkub
Štefan Pružinský:

Ale ja netvrdím, že to tak nie je. Ja len hovorím, že ten kompilátor musel niekto vytvoriť. Myslíš, že nemôže nastať doba, keď bude virtuálny stroj C#-u dostupný pre všetky tebou spomínané platformy? Všetko sa tvorí časom, ani C++ nevyšiel z laboratórií multiplatformový.

Odpovědět 23.5.2015 15:52
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
mkub
Redaktor
Avatar
Odpovídá na Štefan Pružinský
mkub:

to je este hudba buducnosti, ale na beh C# aplikacii potrebujes VM a myslis, ze VM pre C# je v kazdej distribucii a v kazdom systeme predinstalovany? tak to silne pochybujem...
a takisto silne pochybujem, ze by pre par aplikacii instaloval neviem kolko 100MB balik...

 
Odpovědět 23.5.2015 16:57
Avatar
Odpovídá na mkub
Štefan Pružinský:

Ja netvrdím, že je. Tvrdím, že presne tak ako u C++ bude...

Edit: Xamarin aplikácie bežia bez potreby inštalácie VM. Proste nainštaluješ (napríklad) *.apk súbor a aplikácia beží...

Editováno 23.5.2015 17:12
Odpovědět 23.5.2015 17:09
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
mkub
Redaktor
Avatar
mkub:

len nezabudni na to, aby si to uvolnil pod OS licenciou, ako je napr. GNU GPL, resp. inu

 
Odpovědět 23.5.2015 17:09
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na mkub
Jan Vargovský:

Budu se opakovat, ale žiješ v minulosti. Vůbec netušíš jak to s C# momentálně je a pořád dokola tu opakuješ něco co je x měsíců staré.

 
Odpovědět 23.5.2015 17:28
Avatar
mkub
Redaktor
Avatar
Odpovídá na Jan Vargovský
mkub:

kolko platforiem plnohodnotne zastresuje jazyk C#? a kolko jazyk C/C++?

 
Odpovědět 23.5.2015 17:33
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na mkub
Jan Vargovský:

Řekl jsem si, že nemá cenu ani odpovídat. Očividně jsi dost lenivý na to, aby ses kouknul jakým směrem jde poslední dobou C#.

MS před nějakou dobou uvolnil většinu (možná vše, moc jsem to nezkoumal) projektů na github. Co to asi znamená ti vysvětlovat nemusím. K tomu všemu taky uvolnil .NET Core, což jak už z názvu můžeš poznat, je nějaké nutné minimum aby si v C# mohl takhle vůbec něco psát. Nepotřebuješ k tomu nic, všechno nutné si k sobě přitáhne aplikace (není to tak velké jako aktuální .NET na winech, že by měl xx MB). K tomu všemu se .NET rozdělil více na moduly, že už nebudou vycházet co několik měsíců nové verze celého frameworku, ale můžou vycházet patche pro jednotlivé moduly kdykoliv a ty si je pak můžeš aktualizovat/stáh­nout skrz NuGet (funguje to na stejném principu jako balíčkovací systém z winu) - tohle už funguje v .NETu dlouhou dobu, ale teď tam najdeš všechny knihovny (ofc zatím ještě ne, pořád se to updatuje).

Mohl bych tu psát ještě dlouhou dobu, ale snad tě to nakopne k tomu, aby sis o tom zjistil něco sám.

Až si o tom něco přečteš, odpověz mi prosím, jestli pořád preferuješ vývoj v Javě nebo C++. Díky.

 
Odpovědět  +2 23.5.2015 17:48
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 22. Zobrazit vše