стеганографії показує, що в найближчі роки інтерес до розвитку її методів посилюватиметься все більше і більше.
Передумови до цього вже сформувалися сьогодні. Зокрема, загальновідомо, що актуальність проблеми інформаційної безпеки постійно зростає і стимулює пошук нових методів захисту інформації. З іншого боку, бурхливий розвиток інформаційних технологій забезпечує можливість реалізації цих нових методів захисту. І звичайно, сильним каталізатором цього процесу є лавиноподібне розвиток Internet, в тому числі, такі невирішені суперечливі проблеми Internet, як захист авторського права, захист прав на особисту таємницю, організація електронної торгівлі, комп'ютерна злочинність і т.д.
інформація захист криптографічний
Список використаних джерел
1) Бармен Скотт. Розробка правил інформаційної безпеки. М .: Вільямс, 2002. - 208 с.- ISBN 5-8459-0323-8, ISBN 1-5787-0264-X.
) Домарев В. В. Безпека інформаційних технологій. Системний підхід - К .: ТОВ ТИД Діа Софт, 2004. - 992 с.
) Запечніков С. В., Милославська Н. Г., Толстой А. І., Ушаков Д. В. Інформаційна безпека відкритих систем. У 2-х тт.
) Панасенко С. Алгоритми шифрування. Спеціальний довідник.- БХВ- Петербург, 2009
) Фергюсон Н., Шнайдер Б. Практична криптографія.- Вільямс, 2005
) Зубов А.Ю. Криптографічні методи захисту інформації. Досконалі шифри: Навчальний посібник.- М .: Геліос АРВ, 2005
) Ростовцев А.Г., Маховенко Є.Б. Теоретична криптографія.- СПб .: НВО «Професіонал», 2004
) Ісагуліев К.П. Довідник з криптології.- Нове знання, 2004
) Аграновський А.В., дев'ятину П.М., Хаді Р.А., Черьомушкін А.В. Основи комп'ютерної стеганографії, +2003
) Завгородній В.І. Комплексний захист інформації в комп'ютерних системах: Навчальний посібник.- М .: Логос, 2001
) # justify gt;) # justify gt;) # justify gt;) # justify gt; Додатки A
Вихідний код програми Safer K - 64: Мова програмування - С #
System; System.Collections.Generic; System.Text; WindowsApplication1
{Safer
{string text; string key; int RoundValue; int Round
{{return RoundValue; } {RoundValue=value; }
} string Text
{{return text; } {Text=value; }
} string Key
{{(key.Length!=8)
{new Exception ( Encryption key must have 8 bytes );
} key;
} {(value.Length!=8)
{new Exception ( Encryption key must have 8 bytes );
}=value;
}
}
//left cycling byte shift. For example, 111001 left cycling shift on 2 bytes=100111uint LeftCicle (uint value, int count)
{(value gt; gt; count) + (((value lt; lt; (32 - count)) gt; gt; (32 - count)) lt; lt; count);
}
//get advanced encryption keybyte [] GetKey (int round, byte [] key)
{[,] b=new char [round + 1, 8]; (int i=0; i lt; round + 1; i ++)
{
//const for advancing [i, 0]= 1 raquo ;; [i, 1]= 6 raquo ;; [i, 2]= 7 raquo ;; [i, 3 ]= 3 raquo ;; [i, 4]= 3 raquo ;; [i, 5]= B raquo ;; [i, 6]= 1 raquo ;; [i, 7]= E ;
} (int i=2; i lt;=round; i ++)
{(int j=0; j lt; key.Length; j ++)
{uByte=LeftCicle (Convert.ToUInt32 (key [j]), 3); specB=Convert.ToUInt32 (Convert.ToByte (b [i, j]));
//addition modulo 256 [j]=Convert.ToByte ((uByte + specB)% 256);
}
} key;
}
//get 8 byte ration unencrypted databyte [] GetTextBlock8Byte (string source, int blockNumber)
{eight=8; [] b=Encoding.Default.GetBytes (source); [] resultBlock=new byte [eight]; firstByte=blockNumber * eight; j=0; (int i= firstByte; i lt; firstByte + eight; i ++)
{(i gt;=b.Length) [j]=0; [j]=b [i]; ++;
} resultBlock;
} int GetTextBlockLength (string source)
{[] b=Encoding.Default.GetBytes (source); (b.Length% 8 == 0) b.Length/8; b.Length/8 + 1;
}
//XORbyte XOR (byte text, byte key)
{Convert.ToByte (Convert.ToInt32 (text) ^ Convert.ToInt32 (key))...