Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 482, средняя оценка - 4.80
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
11.05.2011, 07:07 #41
Цитата Сообщение от taras atavin Посмотреть сообщение
но ни как не крипта
Объясните, почему не подойдёт крипта?

Добавлено через 4 минуты
Цитата Сообщение от taras atavin Посмотреть сообщение
Значит надо спрятать часть инфы там, где пользователь её не найдёт. Вот для этого как раз и подойдёт и стегана, и хвост файла, и заполнитель между данными и заголовком, и упомятые, но не конкретизированные методы с использрованием оси, а под досом и запись в хвост физического сектора, но ни как не крипта.
Если у пользователя есть программа, то факт хранения ключа где бы он ни находился становится общедоступным. Для этого есть дизассемблеры.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2011, 07:07
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Стеганография в BMP. Полное руководство (C++ Builder):

Стеганография.Работа с изображением
Здравствуйте! Есть следующее задание - нужно реализовать метод наименьшего...

Руководство по libxml2
Доброго дня! Подскажите пожалуйста, где можно почитать о библиотеке libxml2?...

Руководство по C++ Builder X2 Embarcadero
Может ли кто нибудь помочь с руководством пользователя для C++ Builder X2...

Руководство на русском по GCC и g++
Подскажите по сабжу - надо разобраться с ключами, режимами и понять общую схему...

Borland C++ Builder 6 руководство разработчика
Подсказали книгу по С++ (сказали что хорошая) Посмотрел уж больно дорогая она(...

58
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
11.05.2011, 07:11 #42
Цитата Сообщение от mimicria Посмотреть сообщение
Объясните, почему не подойдёт крипта?
Потомоу что пользователь может безо всякой расшифровки или стереть, или скопировать. Да и в ключах на самом деле не зависимо от их размера храниться одно единственное слово "да". Ну в крайнем случае, время блокировки.
Цитата Сообщение от mimicria Посмотреть сообщение
Для этого есть дизассемблеры.
Я програмер, так и то не справлюсь с дизасемблером, а ты хочешь, чтоб с ним справился каждый пользователь? Кроме того, от программиста на ассемблере вообще ни что не спасёт, так как он в любом случае прочитает и стеганоридер и всё остальное.
0
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
11.05.2011, 07:15 #43
Цитата Сообщение от taras atavin Посмотреть сообщение
Потомоу что пользователь может безо всякой расшифровки или стереть, или скопировать. Да и в ключах на самом деле не зависимо от их размера храниться одно единственное слово "да". Ну в крайнем случае, время блокировки.
Это зависит от того, как вы это реализовали. С таким подходом пользователю ничего не мешает перенести и сам стегоконтейнер на другой компьютер.

Добавлено через 1 минуту
Цитата Сообщение от taras atavin Посмотреть сообщение
Я програмер, так и то не справлюсь с дизасемблером, а ты хочешь, чтоб с ним справился каждый пользователь?
Если вы не справляетесь это не значит, что другие не могут. А от простого пользователя есть гораздо менее трудоёмкие способы защиты, нежели стеганография, которая в вашем применении вовсе таковой не является
0
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
11.05.2011, 08:22 #44
Цитата Сообщение от mimicria Посмотреть сообщение
С таким подходом пользователю ничего не мешает перенести и сам стегоконтейнер на другой компьютер.
Если найдёт. И даже если он должен будет подходить к какой нибудь железяке (например, к серийнику винта, камня, или системной платы или чего то ещё, к распередлению бедов на винте, к дате изготовления, вообще к любой стационарной инфе), то есть ещё один фактор. Каким временем хакер располагает при передаче сообщения? А длительному хранению подлежат только сообщения, чья актуальность постоянна в течении всего времени хранения. В случае ключа - в течении всего времени пользования программой. Есть хоть какая то надежда, что за всё это время не расшифруют? А при передаче хакер может располагать много меньшим временем. Если ему дать, например, минуту, то к Жириновскому не ходить, даже ксорка с одним единственным байтом ключа будет надёжна. Причём, при скрытом хранении рядом валяется и прога с декодером.

Добавлено через 4 минуты
Цитата Сообщение от mimicria Посмотреть сообщение
Если вы не справляетесь это не значит, что другие не могут.
Я даже знаю того, кто справится. Только врядли именно он возьмётся в одиночку за все ваши коды.

Добавлено через 6 минут
Цитата Сообщение от mimicria Посмотреть сообщение
А от простого пользователя есть гораздо менее трудоёмкие способы защиты, нежели стеганография,
От совсем простого можно и ключ в реестре спрятать. Но из одной крайности в другую я кидаться не предлагаю. А если задача - спрятать от подобного мне, то вполне сгодится много различных способов, которые продержатся ровно столько, пока не возникнут подозрения в отношении конкретного файла, а потом ручная проверка и всё выплывет. Бинарные данные намного проще исполняемых бинарников, а когда факт наличия инфы иного типа доказан, то и подбор ключа - не такая уж сложная задача. Исключение - если и ручная проверка не даст результата. Те же самые младшите биты по всем плоскостям, включая прозрачность.

Добавлено через 6 минут
Цитата Сообщение от Deviaphan Посмотреть сообщение
ВМР с альфаканалом не имеет прозрачность.(
Имеет. Если просмоторщики и редакторы игнорируют альфаканал в BMP, то это ещё не значит, что альфаканал имеет иной смысл. Тектуры ни когда не имеют прозрачности? И если текстура записана в BMP с альфакалом, то какой уникум не будет интерпретировать альфу как прозрачность? Да и в спрайтовых игрушках имеющуюся альфу абсолютно нелогично не использовать в качестве маски. А если в данном конкретном файле прозрачность не нужна, то кто будет писать его с альфаканалом?

Добавлено через 16 минут
Ещё вариант: можно слепить свой формат и выдать за цель его создания новый способ сжатия (если сможете сделать хороший алгоритм сжатия, превосходящий хотябы в одном классе изображений существующие алгоримы по скорости при равном коэффциенте, или по коэффициенту при равном качестве), повышенную разрядность цвета (например, для карт высот с повышенным разрешением по высоте), гиганските максимальные размеры изображения (типа 2^64x2^64), большое число изображений в одном файле, цветовую модель нового типа (например, с подробным и явным описанием спектра всех пикселей), или с девятью цветовыми плоскостями (RGB, дополненая своими аналогами для ИК и УФ), или даже предусмотреть хранение информации о поляризации, в этом формате предусмотреть смещение любого максимального размера, а в спецификации заявить, что оно предназначено для дальнейшего расширения заголовка и размеров палитр (если таковые вообще будут в этом формате), произольной перестановки пикселей с палитрами (если патира весит пару мегабайт, а само изображение ещё двести и разрешено менять их местами, то имеем два смещения, одно более двух, а второе даже двухсот миллионов), но ничего не писать о заполнителе. И юзьте потом на здороьве из трёх байт каждой плоскости один младший, поляризацию, одну спектральную линию из тысячи, на которые поделён видимый диапазон.

Добавлено через 10 минут
Можно и разделить изображение на несколько фрагментов (полос, клекток...) и для каждого записать отдельное смещение, объяснив его наличие переменным размером фрагментов в сочетаним с тербованием быстрого доступа к каждому. А между фрагментами можно и спрятать и инфу иного типа, и разместить палитры, или куски заголовка. Ещё вариант: палитра на 256 цветов, из которых используется 128. 768 байт (в RGB) - довольно приличный контейнер. Или из 65 536-ти цветов палитры использовать ровно 64 000. Получаем 16 608 байт. Или файл трёхбайтный, но с палитрой, в ней все 16 777 216 цветов, а реально используются ровно 16 000 000. Получаем 2 331 648 байт.
Добавлено через 4 минуты
Идея и ксорки, и своего формата для стеганы: пусть подозревают в чём угодно, только не в том, что есть на самом деле.
0
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
11.05.2011, 08:26 #45
Цитата Сообщение от taras atavin Посмотреть сообщение
есть ещё один фактор. Каким временем хакер располагает при передаче сообщения?
Вот поэтому вы и не понимаете смысл стеганографии. Время передачи сообщение тут абсолютно не при чём. Я приведу наглядный пример, чтобы расставить точки над i.
Я выкладываю каждый день несколько фотографий на фотохостинг. Цветочки, котята. Любой может их просмотреть и порадоваться. А дядя Вася, у которого есть ключ, извлекает из этих картинок секретное сообщение для себя. Но, самое главное - никто, кроме дяди Васи не знает и не может ДОКАЗАТЬ, что осуществился процесс передачи информации.

А в вашем случае:
Цитата Сообщение от taras atavin Посмотреть сообщение
пока не возникнут подозрения в отношении конкретного файла, а потом ручная проверка и всё выплывет.
Вот в чём разница. Именно поэтому то, что вы предлагаете не является стеганографией по определению.

Цитата Сообщение от taras atavin Посмотреть сообщение
А если задача - спрятать от подобного мне, то вполне сгодится много различных способов, которые продержатся ровно столько,
Криптографически зашифрованная информация продержится столько же если не больше.

И еще - вы абсолютно не учитываете способы распространения и активации программы, а рассматриваете только ситуацию, когда у пользователя уже стоит зарегистрированная программа и её надо перенести. Но ведь как-то стегоконтейнер у пользователя был изначально создан при регистрации? Что мешает у другого пользователя воспользоваться анналогичным способом регистрации и получить активированную программу?
1
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
11.05.2011, 08:38 #46
Причём, весей всего будет объявить только возможности формата, а спецификацию опять спрятать.

Добавлено через 7 минут
Цитата Сообщение от mimicria Посмотреть сообщение
Криптографически зашифрованная информация продержится столько же если не больше.
При криптографии без стеганы факт сокрытия контента уже известен. И продержится крипта ровно до подбора ключа. Если за это время инфа потеряет актуальность, то защита надёжна, иначе не годна. Но держится она, пока не известно, как записана инфа. А стегана - пока не известно где она записана и какого типа. Криптография - запись или передача инофрмации не известным непосвящённым способом. А стегана - запись или передача немедийной инофрмации по верх медийной (это может быть и звук, а не только изображение), при которой медийный контент выпячивается, а наличие второго контента скрывается.
0
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
11.05.2011, 08:45 #47
Цитата Сообщение от taras atavin Посмотреть сообщение
И продержится крипта ровно до подбора ключа. Если за это время инфа потеряет актуальность, то защита надёжна, иначе не годна.
Именно так. А теперь посчитайте, сколько лет продержится 1024-битный RSA?
На существующих вычислительных мощностях и текущих алгоритмах криптоанализа лет 5.
Цитата Сообщение от taras atavin Посмотреть сообщение
А стегана - пока не известно где она записана и какого типа.
А вот в этом случае выяснение "где и как" займёт 10 минут в дизассемблере.
И не надо говорить, что кто-то не будет пользоваться дизассемблером, потому что это сложно, зато ломает крипту как семечки
Итого: 5 лет против 10 минут. А вы продолжайте забивать гвозди микроскопом.
0
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
11.05.2011, 08:53 #48
Цитата Сообщение от mimicria Посмотреть сообщение
Время передачи сообщение тут абсолютно не при чём.
Время актуальности, а не передачи. Офицер передаёт в прямо в эфир координаты, для чего использует координаты другого объекта ровно год назад, противник час гадает, где этот долбаный танк стоял, а через пятнадцать минут это уже не имеет значения. А если ты надумал год хранить серктеный пакет в сейфе, то заведомо известно, что твой план весь год и будет актуален, причём, не ровно, а как минимум. Скрыто передать можно и временный пароль сервера, действительеный в течении часа, а зашифровать так, что ломать этот шифр будут неделю. Это будет очень хорошая защита. Но если эту же неделю продержится защита от копирования, то не стоило возиться с такой защитой.

Добавлено через 1 минуту
Цитата Сообщение от mimicria Посмотреть сообщение
А теперь посчитайте, сколько лет продержится 1024-битный RSA?
А если ломать буду не я один, а все хакеры хором, прияём, настоящие? А если вместо подбора ключа кто то его прочитает в самой проге?

Добавлено через 1 минуту
Цитата Сообщение от mimicria Посмотреть сообщение
На существующих вычислительных мощностях и текущих алгоритмах криптоанализа лет 5.
И это по-вашему хорошая защита? У меня до сих пор преобладает софт не позже 2002-го года.

Добавлено через 3 минуты
Цитата Сообщение от mimicria Посмотреть сообщение
И не надо говорить, что кто-то не будет пользоваться дизассемблером, потому что это сложно, зато ломает крипту как семечки
С 1024-х битными ключами я не связывался, а на 8 бит трачу веремени меньше, чем на чтение исходника колибайт на 70.
0
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
11.05.2011, 08:56 #49
Цитата Сообщение от taras atavin Посмотреть сообщение
А если ломать буду не я один, а все хакеры хором, прияём, настоящие? А если вместо подбора ключа кто то его прочитает в самой проге?
В таком случае ваши детские шалости со стегоконтейнером не продержатся и 5 минут. Я повторю - то, что вы делаете - не стеганография. Перечитайте вики и мой пример, поймёте в чем разница между этим и передачей координат в эфир или вашим примером. А до этого момента нам больше нечего обсуждать.
0
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
12.05.2011, 07:25 #50
Цитата Сообщение от mimicria Посмотреть сообщение
Что мешает у другого пользователя воспользоваться анналогичным способом регистрации и получить активированную программу?
И при этом проверить легальность по базе? Если второй пользователь за активацию заплатил автору, то что за беда?

Добавлено через 3 минуты
Цитата Сообщение от mimicria Посмотреть сообщение
поймёте в чем разница между этим и передачей координат в эфир или вашим примером.
А ты думаешь, что я не понимаю? Но задача записать именно поверх изображения врядли стоит.

Добавлено через 2 минуты
Цитата Сообщение от taras atavin Посмотреть сообщение
колибайт
Килобайт. Очепятка.

Добавлено через 4 минуты
Цитата Сообщение от mimicria Посмотреть сообщение
В таком случае ваши детские шалости со стегоконтейнером не продержатся и 5 минут.
Далеко не все умеют дизасемблировать, а Сергей Батеньков вообще врядли ваши коды где то достанет. Среди же гигабайта инфы найти ключ - та ещё задача, причём, не факт, что эта инфа будет у всех одна. Кто сказал, что нельзя случайным образом выбирать файл для модификации, а проверять все по принципу: "Нашёл хотябы в одном - значит нашёл". Значит ломать будет каждый в одиночку. А код самой проги у всех её пользователей один. И секретный ключ был использван один.

Добавлено через 9 минут
Цитата Сообщение от mimicria Посмотреть сообщение
Я повторю - то, что вы делаете - не стеганография.
А я и не делаю стеганографию, я занимаюсь только криптографией, да и то криво. Причём, теми же ключами шифрую и расширение исходного файла, имя файла вообще выбрасываю и всё вместе становится телом нового файла. Ключей одновременно несколько, не кратной длины и все они применяются последовательно. Но всё это только ксорка. Один раз я использовал комбинацию ксорки, перестановки и дополнения мусором, причём, для частей текстового файла, перемешанных с незашифрованными фрагментами того же файла.

Добавлено через 28 минут
Вам же я хочу предложить такой код. Сначала скрываемый контент шифровать одиннадцатью ключами в порядке увеличения длины от 2-х до 31-го байта (2, 3, 5, 7, 11, 13, 17, 19, 23, 27, 29, и 31, суммарно 187 байт=1496 бит, а при попытке подобрать их "в лоб" как один ключ - 5 415 133 233 510 байт=43 321 065 868 080 бит, но врядли какой то уникум допустит такую глупость), а потом уже пишется в младшие биты всех плоскостей. При расшифровке - наоборт. Сначала собираем все младшие биты, а потом ксорим с теми же ключами в обратном порядке. Это будет комбинация крипты со стеганой, обнаружение конкертного файла со скрытым контентом станет ещё проблематичнее, чем если только прятать, но не шифровать.

Добавлено через 4 минуты
Если такой суммарной разрядности ключей мало, тогда 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97 и 101,
суммарно 1 161 байт=9 288 бит.

Добавлено через 20 часов 53 минуты
При хранении с точки зрения защиты от дизасемблера вообще не имеет значения, что вы сделаете, так как в этом случае секрет и декодер всегда валяются рядом и тот, кто умеет дизасемблировать в любом случае всё прочитает. Единственная надежда, да и то призрачная - спрятать декодер среди миллиардов операций, не имеющих к нему ни какого отношения. Но при передаче и этого фактора нет, так как секрет и декодер могут быть в разных передачах, можно даже декодер передать на диске при личной тайной встрече, а секрет выложить на общедоступном сайте. И крипта ломается на разных машинах параллельно из-за использования единого кода для защиты каждого конкретного секрета, плюс тупо быстродействие машин, а стегану надо искать вручную, последовательно и из-за различий в файловом окружении на каждой машине независимо от самого факта существования остальных.

Добавлено через 8 минут
И при хранении актуальность заведомо постоянна, а при передаче время актуальности в общем случае может меняться от долей секунды до времени существования государств и даже цивилизаций. Задачи одного класса бывают разные, а если данная конкретная информация имеет достаточно краткую актуальность, то и хакер имеет соответственно краткое время для взлома.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
12.05.2011, 08:06 #51
Говорить о способах реализации и необходимости не хочу сейчас. Лучше расскажу сказку:
Жил был дедушка Ленин. И вот "сидел" он за политические преступления и писал молоком на краях страницы свои писания. И никто "не знал" об этом, кроме тех, кто умел держать страницы над свечкой, чтобы текст проявился. А потом царя убили...
Воть.
Если бы он свои планы и агитации и т.п. шифровал в виде абра-кадабры, у него и могло бы ничего не выйти, охранники бы его шифровки могли и не передавать. А так они даже и не знали о передачи информации.
Со стеганографией то же самое, делаешь невинные глаза и всё.
Йа картинко!
0
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
12.05.2011, 08:56 #52
Цитата Сообщение от Deviaphan Посмотреть сообщение
Если бы он свои планы и агитации и т.п. шифровал в виде абра-кадабры, у него и могло бы ничего не выйти, охранники бы его шифровки могли и не передавать. А так они даже и не знали о передачтаи информации.
Во-первых, о наличии в книгах печатного текста, то есть информации, они как раз знали, но считали всю иноформацию разрешённой, так как не знали о наличии ещё одного текста, а чистые листы они бы точно не передали. А во-вторых я сам указал на спецслужбу в качестве возможного применения стеганы при передаче. Ты руководишь убийством Медведева, или служишь в МОССАДе? Если же содержание не преступно, то не имеет значения, будет ли кто нибудь знать о факте передачи и хранения информации, важно только защититься от её подделки и несанкционированного чтения. А сделаешь ты это криптой, или стеганой - вопрос выбора.

Добавлено через 16 минут
Герберт Шилдт:
Зашифруйте два разных файла в один так, чтоб при расшифровкке одним способом читался один текст, а другим способом - другой.
А теперь от себя: выдайте всё это за экзотичный формат, приложите один декодер со вшитым ключом, читающий не секретную информацию. Только как в этом случае обосновать создание формата? И если опубликовать спецификацию, то как скрыть наличие второго кода? Вот здесь то и выплывает графика с кучей смещений для всех палитр, массивов цветности, спектров плоскостей и подчинённых заголовков. Поди потом разбери, зачем в действительности предусмотрены смещения, особенно если они на самом деле имеют ещё какое то назначение, зачем увеличена разрядность, изменена цветовая модель и нафига специфицирована поляризация.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
12.05.2011, 09:17 #53
Опять двадцать-пять. Уже же сказали, смысл этого действа, чтобы никто и НЕ ДОГАДЫВАЛСЯ о передаче некой информации.
Зачем ты так про Медведева, тебя же по IP вычислят... Пичалька будет.
Коммерческие тайны никто не отменял, всем хочется знать секреты переговоров, даты встречи и т.п. Разумеется, для этого другие средства используются, но почему бы и нет. Порой, даже сам факт встречи может быть крайне секретен. Ладно, надоело уже. Я тему апнул только из-за ошибки в нумерации бит, а тут такое...
0
S_hmel
3 / 3 / 1
Регистрация: 14.02.2012
Сообщений: 82
12.04.2012, 13:34 #54
Цитата Сообщение от Erravielle Посмотреть сообщение
СТЕГАНОГРАФИЯ в BMP ИЗОБРАЖЕНИЯХ
C++
1
2
3
4
5
6
7
8
9
10
11
12
BYTE ReadBitToByte (int Bit, BYTE B)
/* Записывает в байт B на последнюю позицию бит Bit */
{
  BYTE A = 00000001;
  BYTE Result = B;
  if (Bit == GetBitValue(B,8)) return B;
  else if (Bit == 1)
    return Result = Result|A;
  else if (Bit == 0)
    return B - A;
  return NULL;
}
Erravielle, в данном случае А - это маска, при помощи которой которой мы меняем байт изображения?

Добавлено через 34 минуты
А, да, уже прочитал пост выше...

Цитата Сообщение от Erravielle Посмотреть сообщение
I
C++
1
2
MAGE_SIZE = WIDTH*HEIGHT;
MAX_TEXT_SIZE = IMAGE_SIZE/8;
Вычисляется количество пикселей. Но ведь на один пиксель приходится 3 сэмпла - 3 цветовых канала. В каждом сэмпле - 8 бит. Я к тому, что может быть надо так сделать:

C++
1
IMAGE_SIZE = WIDTH*HEIGHT*3
Иля что-то путаю?
Тем более, что при открытии файла BMP ставятся настройки - 24 бита на пиксель.

Судя по коду в шапке темы, информация вносится только в канал красного цвета. А если со все каналы по одному биту вносить???

Могу предложить функцию для замены первых двух бит в сэмпле пиксела:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
BYTE WriteTwoBitsToByte(int Bit1, int Bit2, BYTE B)
/* Записывает в байт B на первые две позиции биты Bit1 и Bit2 */ {
    BYTE A1 = 00000011;
    BYTE A2 = 00000010;    //маски возможных ситуаций
    BYTE A3 = 00000001;
    BYTE Result = B;
*       
       //если биты уже в нужном состоянии, то оставить
    if ((Bit1 == GetBitValue(B, 8)) && (Bit2 == GetBitValue(B, 7))) {               
        return B;
    }
 
    //иначе, если 11 - логическое ИЛИ с соответствующей маской
        else if ((Bit1 == 1) &&(Bit2 == 1)) {                                                    
            return Result | A1;
         }
 
        //иначе, если 10 - вычесть соответствующую маску 
    else if ((Bit1 == 1)&& (Bit2 == 0)) {                                                    
            return Result - A2;
         }
 
        //иначе, если 01 - вычесть соответствующую маску
    else if ((Bit1 == 0) &&(Bit2 == 1)) {                                                       
             return Result - A3;
         }
 
        //иначе, если 00 - вычесть  маску A1
    else if ((Bit1 == 0) && (Bit2 == 0)) {                                                     
             return Result - A1;
         }   
    
    return NULL;
}
Но насчет варианта 00 не совсем уверен. Если неправильно, то поправьте меня, пожалуйста.
0
virtuhay266
12 / 11 / 7
Регистрация: 28.05.2009
Сообщений: 56
01.06.2012, 18:43 #56
Если кому интересно выкладываю свой курсач. Используется алгоритм Куттера-Джордана-Боссена, сообщение кодируется по Хеммингу, чтобы избежать ошибок при извлечении сообщения. Потученный массив побитно встраивается в синий канал псевдослучайного пикселя. В качестве генератора псевдослучайной последовательности использовал алгоритм ГОСТ 28147-89 в режиме гаммирования. При более-менее высоких значениях коэфициента встраиваемого сигнала, сообщение можно извлеч даже после 75% сжатия JPEG.
2
Вложения
Тип файла: rar Stego.rar (77.1 Кб, 376 просмотров)
Mand
0 / 0 / 0
Регистрация: 08.05.2015
Сообщений: 4
26.03.2016, 17:10 #57
virtuhay266, привет , пишу на счет твоей программы с использованием алгоритма Куттера - Джордана - Боссена . Скинь пожалуйста полный код программы , если не трудно
0
powermanche
0 / 0 / 1
Регистрация: 12.04.2017
Сообщений: 21
22.11.2017, 23:05 #58
Erravielle, Прошу прощения, делаю все, согласно вашему коду. работает все до:

int Shag = MAX_TEXT_SIZE/TEXT_SIZE;
char *String = new char[RichEdit1->Text.Length()+1];// создаем переменную для хранения кодируемого текста
strcpy(String,RichEdit1->Text.c_str()); // копируем в нее кодируемый текст

Изменил на свое:
int Shag = MAX_TEXT_SIZE/TEXT_SIZE;
AnsiString String = RichEdit1->Text.Length()+1;// создаем переменную для хранения кодируемого текста
RichEdit1->Text=String;

Далее код комплириуется, вставляю изображение, ввожу текст, кликаю "Зашифровать", но возникает ошибка выхода за границы массива. Дешифрование еще не делал, использую среду С++ Builder 10. Не могли бы вы помочь, пожалуйста?
0
Почтальон
Модератор
582 / 520 / 104
Регистрация: 22.03.2015
Сообщений: 3,619
Завершенные тесты: 1
23.11.2017, 07:53 #59
Цитата Сообщение от powermanche Посмотреть сообщение
возникает ошибка выхода за границы массива.
может отладчик поможет ?
0
23.11.2017, 07:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2017, 07:53
Привет! Вот еще темы с решениями:

Где скачать Руководство разработчика C++B6
Подскажите пожалуйста ссылочку, где можно БЕСПЛАТНО скачать "Borland C++...

Краткое руководство по работе с классом TCanvas для начинающих
Вступление Часто на форуме возникают вопросы по поводу рисования той или...

Где найти ответы к самоконтролю в книге Шилдта "С++ руководство для начинающих"
В книге сказано,что ответы есть на сайте осборне ком, но он перенаправляет на...

Стеганография в BMP
Проект выполняющий метод lsb. В коде ошибки. Не могу понять как исправить....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
59
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru