Locked History Actions

Skirtumas „Steganography“

Pakeitimai tarp versijų 15 ir 16
Versija 15 nuo 2013-05-03 11:45:39
Dydis: 6311
Redaktorius: KęstutisŽelnys
Komentaras:
Versija 16 nuo 2013-05-03 11:47:18
Dydis: 6311
Redaktorius: KęstutisŽelnys
Komentaras:
Pašalinimai yra pažymėti taip. Pridėjimai yra pažymėti taip.
Eilutė 65: Eilutė 65:
||R 0111110'''0''' G 0111001'''1''' B 1001100'''1'''||R 1111111'''0''' G 1110010'''1''' B 0000000'''1'''||R 1110101'''0''' G 1010111'''0''' B 1011010'''0'''||R 1110001'''1''' G 0100111'''1''' B 0001110'''1'''|| ||R 0111110'''0''' G 0111001'''1''' B 1001100'''1'''||R 1111111'''0''' G 1110010'''1''' B 0000000'''1'''||R 1110101'''0''' G 1010111'''1''' B 1011010'''0'''||R 1110001'''1''' G 0100111'''1''' B 0001110'''0'''||

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

Literatūra

1. http://en.wikipedia.org/wiki/Public-key_cryptography

2. http://en.wikipedia.org/wiki/GNU_Privacy_Guard