Development of StegoStream decorator for associative protection of byte stream
Authors: Гибадуллин Р.Ф. , Гашигуллин Д.А. , Вершинин И.С. 
Published: July 2024

Потоковая архитектура .NET основана на трех концепциях: опорные хранилища, декораторы и адаптеры. Опорное хранилище представляет собой конечную точку, такую как файл на накопителе, массив в оперативной памяти или сетевое подключение. Опорное хранилище не может использоваться, если программисту не открыт к нему доступ. Стандартным классом .NET, который предназначен для такой цели, является Stream (поток); он предоставляет стандартный набор методов, позволяющих выполнять побайтовое чтение, запись и позиционирование. Потоки делятся на две категории: потоки с опорными хранилищами и потоки с декораторами. Потоки с опорными хранилищами и потоки с декораторами имеют дело исключительно с байтами. Это гибко и эффективно, однако приложения часто работают на более высоких уровнях, таких как текст или XML. Адаптеры преодолевают такой разрыв, помещая поток в оболочку класса со специализированными методами, которые типизированы для конкретного формата. В статье представлен разработанный авторами декоратор StegoStream, основанный на ассоциативном механизме защиты данных. Данный декоратор обладает следующими преимуществами: он обеспечивает взаимодействие с адаптером; освобождает потоки с опорными хранилищами от необходимости самостоятельной реализации таких возможностей, как сокрытие и раскрытие; потоки, декорированные StegoStream, не страдают от изменения интерфейса; StegoStream можно использовать при соединении в цепочки с другими декораторами (например, декоратор сжатия можно соединить с декоратором сокрытия). Практическое использование декоратора StegoStream представлено на примере разработанного мультиклиентного защищенного чата с централизованным сервером.
The .NET streaming architecture is based on three concepts: reference repositories, decorators, and adapters. A reference repository represents an endpoint, such as a file on a storage device, an array in RAM, or a network connection. It cannot be used unless the programmer has access to it. The standard .NET class designed for this purpose is Stream; it provides a standard set of methods that allow byte-by-byte reading, writing, and positioning. Streams fall into two categories: streams with reference repository and streams with decorators. Streams with reference repositories and streams with decorators deal exclusively with bytes. While flexible and efficient, applications often operate at higher levels, such as text or XML. Adapters bridge this gap by putting a stream into a class shell with specialized methods that are typified for a specific format. The paper presents the StegoStream decorator developed by the authors, which is based on associative data protection mechanism. This decorator has the following advantages: it provides interaction with the adapter; it releases streams with reference repositories from the necessity of independent implementation of such features as hiding and unhiding; streams decorated with StegoStream do not suffer from interface changes; StegoStream may be used when chaining with other decorators (for example, the compression decorator may be combined with the hiding decorator). Practical use of StegoStream decorator is presented drawing on the example of the developed multi-client secure chat with a centralized server. Keywords:associative steganography, cryptography, streaming architecture, decorator, information security.