Locked History Actions

Steganography

Steganography

Steganografija


Kas tai – steganografija?

Steganografija – tai mokslas, nagrinėjantis informacijos slėpimą kituose duomenyse. Steganografija yra viena iš kriptologijos šakų, šalia kriptografijos ir kriptoanalizės. Steganografijoje duomenys yra ne užšifruojami, o slepiamas pats informacijos perdavimo faktas, t. y. apie vertingos informacijos buvimą perduodamuose duomenyse gali nutuokti tik siuntėjas ir gavėjas.

Terminas steganografija kilęs iš graikiškų žodžių „steganos“, reiškiančio „neatskleidžiamas“, ir „graphein“, reiškiančio „rašyti“. Taigi šį terminą galima būtų pervadinti „neatskleidžiamu rašymu“ arba paprasčiau „slaptu rašymu“.

Steganografija yra gana senas slaptų pranešimų siuntimo būdas, pirmą kartą paminėtas ir pradėtas naudoti dar antikos laikais senovės Graikijoje. Pirmieji įrašai buvo daromi daugkartinio naudojimo vaškinėse lentelėse. Tik slaptas įrašas buvo darome ne vaško sluoksnyje, o ant lentelės medinio pagrindo ir tada apliejamas vašku. Kitas žinomas būdas, slaptų įrašų darymas ant žmogaus kūno. Nuskutus plaukus, buvo padaroma tatuiruotė, kurios nebesimatydavo plaukams ataugus. Įrašui pamatyti reikėjo vėl nuskusti plaukus.

Vėliau steganografija po truputį vystėsi, bet šis mokslas buvo siejamas ne su matematika, o labiau su chemija. Iki XX a. labiausiai paplitęs steganografijos būdas buvo nematomas rašalas: nuo paties paprasčiausio pieno, kuris išryškėdavo pakaitinius lapą, iki itin sudėtingos struktūros rašalų, kurie matydavosi tik paveikus atitinkamomis cheminėmis medžiagomis.

LSB (least significant bit) algoritmas

Besivystant informacinėms technologijoms steganografija imta taikyti elektroninėje erdvėje. Šiuo metu labiausiai paplitę metodai, susiję su informacijos slėpimu vaizdo duomenyse. Šis slėpimas yra paremtas žmogaus pojūčių savybėmis, t. y. nedideli atspalvio ar garso lygio pokyčiai yra tiesiog nepastebimi.

Dauguma paveikslėlių yra failai, kuriuose aprašomas kiekvieno vaizdo taško (pikselio) šviesumo ar spalvingumo intensyvumas. Slepiant informaciją paveikslėlyje nežymiai koreguojama būtent ši informacija. Kadangi dabartiniuose paveikslėliuose atspalvių gali būti keli milijonai (pavyzdžiui 24 bitų RGB .bmp paveikslėlyje vienam taškui užkuoduoti naudojami po baitą duomenų kiekvienai iš trijų spalvų, taigi viena spalva turi 256 galimas reikšmes iš viso 16777216 galimų atspalvių), tai plika akimi tiesiog neįmanoma pastebėti šių pokyčių.

Pavyzdžiui, iš pirmo žvilgsnio atrodytų, kad pirmame paveiksle yra pateikta vienodos žalios spalvos juosta. Tačiau iš tikrųjų, ji yra sudaryta iš septynių vienodų kvadratų ir gretimų kvadratų spalvos kodai RGB koduotėje (kiekviena spalva reiškiama raudonos, žalios ir mėlynos spalvos intensyvumais) skiriasi per vieną bitą. Šie pokyčiai yra labai nežymūs, ir be specialios įrangos juos pastebėti labai sunku.

1.jpg

1 pav. Septyni vienodi kvadratai, tik gretimų kvadratų spalvų kodai skiriasi per vieną bitą

Pavyzdžiui, iš pirmo žvilgsnio atrodytų, kad pirmame paveiksle yra pateikta vienodos žalios spalvos juosta. Tačiau iš tikrųjų, ji yra sudaryta iš septynių vienodų kvadratų ir gretimų kvadratų spalvos kodai RGB koduotėje (kiekviena spalva reiškiama raudonos, žalios ir mėlynos spalvos intensyvumais) skiriasi per vieną bitą. Šie pokyčiai yra labai nežymūs, ir be specialios įrangos juos pastebėti labai sunku.

2.jpg

2 pav. 1 paveikslo pirmas ir paskutinis kvadratas greta

Paprasčiausias būdas informaciją paslėpti nuotraukoje – įterpti mažiausią reikšmę turintį bitą (LSB). Remiantis šiuo metodu, slaptą informaciją dvejetainiu pavidalu galima paslėpti priedangai skirtoje nuotraukoje pakeitus kiekvieno baito ŽSB. Pasirinkus 24 bitų spalvingumą, pokyčiai būtų minimalūs ir akimi beveik nepastebimi. Pavyzdžiui, trys šalia esantys pikseliai (9 baitai) užkoduoti tokiu RGB formatu.

Pabandykime užkoduoti žodį „pirmas“ arba dvejetainėje sistemoje 01110000 01101001 01110010 01101101 01100001 01110011 4x4 taškų dydžio paveiksliuke.

3.jpg

3 pav. 4x4 dydžio paveiksliukas

1 lentelė. Nepakeisto 4x4 paveikslėlio spalvų kodai

R 10001010 G 11100011 B 11111010

R 11001001 G 10111110 B 10100001

R 01101011 G 10011100 B 10000001

R 01010111 G 11100001 B 11111111

R 10000001 G 10101100 B 11010100

R 10110110 G 10011110 B 01110100

R 10101111 G 10000111 B 01100010

R 10010011 G 10000010 B 10000011

R 01111100 G 01110011 B 10011000

R 11111111 G 11100101 B 00000000

R 11101011 G 10101111 B 10110101

R 11100011 G 01001110 B 00011101

R 00110101 G 01100110 B 10011011

R 10111101 G 10001110 B 00000000

R 10101111 G 01100110 B 00111000

R 10000101 G 01101101 B 01101000

Pakeičiame spalvų kodų mažiausią reikšmę turinčius bitus paslėpdami informaciją:

011 100 000 110

100 101 110 010

011 011 010 110

000 101 110 011

2 lentelė. Pakeisti 4x4 paveikslėlio spalvų kodai

R 10001010 G 11100011 B 11111011

R 11001001 G 10111110 B 10100000

R 01101010 G 10011100 B 10000000

R 01010111 G 11100001 B 11111110

R 10000001 G 10101100 B 11010100

R 10110111 G 10011110 B 01110101

R 10101111 G 10000111 B 01100010

R 10010010 G 10000011 B 10000010

R 01111100 G 01110011 B 10011001

R 11111110 G 11100101 B 00000001

R 11101010 G 10101111 B 10110100

R 11100011 G 01001111 B 00011100

R 00110100 G 01100110 B 10011010

R 10111101 G 10001110 B 00000001

R 10101111 G 01100111 B 00111000

R 10000100 G 01101101 B 01101001

Taigi gauname naują paveikslėlį. Kaip matome užkoduotas paveikslėlis vizualiai visiškai nepasikeitė.

4.jpg

4 pav. Pakeistas 4x4 dydžio paveiksliukas

Tokiais pat būdais galima užkuoduoti ne tik tekstą, bet ir kitokią informaciją. Taip pat šį algoritmą galima pritaikyti ne tik nuotraukų apdorojime, bet ir garso apdorojime.

Steganografija tekste

Dar vienas populiarus informacijos slėpimo būdas – slėpti ją tekste ar net tarpuose po teksto eilučių.

Užkoduotą informaciją, kaip šis fragmentas „lQO+BEzh7OEBCACtuTnXgCIU8Kr+“ labai lengva pastebėti, taigi pritaikius tam tikrus algoritmus tikriausiai slepiamą informaciją būtų galima išsiaiškinti. Tačiau tekstas kaip šis „Hi, Jack! Your airplane number is UA889, 30/07/2011, from 3:00am to 6:00pm…“ atrodo visiškai neįtartinas, taigi dažniausiai net nekyla idėja bandyti iškoduoti šitokį tekstą.

Kad lengviau būtų išsiaiškinti kas tai – steganografija tekste pabandykime užkoduoti tą patį žodį „pirmas“ pasinaudota www.spammimic.com algoritmais. Pirmiausiai užkoduokime ši žodį tarpais po eilučių, kaip nekaltą tekstą pasirinkime steganogradijos apibrėžimą:

Steganografija – tai mokslas,......+.

nagrinėjantis informacijos slėpimą kituose.++......

duomenyse. Steganografija yra viena iš.++....+.

kriptologijos šakų, šalia kriptografijos.+++..+..

ir kriptoanalizės. Steganografijoje.++.+++.

duomenys yra ne užšifruojami, o slepiamas+++....+.

pats informacijos perdavimo faktas..+++..+.

(Taškai žymi tarpą, pliusai žymi tabuliaciją)

Dar tą patį žodį užkoduojame, kaip neįtartiną tekstą:

Dear Business person , We know you are interested in receiving amazing news . This is a one time mailing there is no need to request removal if you won't want any more . This mail is being sent in compliance with Senate bill 2516 ; Title 4 ; Section 301 . Do NOT confuse us with Internet scam artists . Why work for somebody else when you can become rich in 10 MONTHS ! Have you ever noticed people are much more likely to BUY with a credit card than cash and more people than ever are surfing the web . Well, now is your chance to capitalize on this ! WE will help YOU decrease perceived waiting time by 200% and turn your business into an E-BUSINESS ! The best thing about our system is that it is absolutely risk free for you ! But don't believe us . Mr Ames of Massachusetts tried us and says "My only problem now is where to park all my cars" ! We are licensed to operate in all states ! We beseech you - act now . Sign up a friend and your friend will be rich too ! Thank-you for your serious consideration of our offer !

Literatūra

1. http://stackoverflow.com/questions/3018086/simple-basic-steganography-algorithms-and-methods

2. http://www.fmf.lt/ft/studiju-programos/taikomoji-matematika/S-18917/straipsnis?name=S-18917&l=5&p=1

3. http://home.paulschou.net/tools/xlate/

4. http://en.wikipedia.org/wiki/Steganography_tools

5. http://en.wikipedia.org/wiki/Steganography

6. http://herosys.net/w/project/text-steganography-hide-text-in-spam-sms