Класс позволяет выбрать режим работы криптографического алгоритма, тип операции шифрования и номер блока данных для методов GrdTransformEx и GrdCryptEx
Пространство имен: Guardant
Синтаксис
Режимы использования GSII64 в Guardant Stealth:
bit 0-5 - режим использования
bit 7 - шифрование/расшифрование
bit 8-9 - позиция шифруемого блока
...
Code Block | ||
---|---|---|
| ||
public class GrdAM |
...
Конструкторы
Code Block | ||||||
---|---|---|---|---|---|---|
| public static GrdAM ECB
| |||||
public static GrdAM operator +(GrdAM op1, GrdAM op2)
public static GrdAM operator +(GrdAM op1, GrdSC op2)
public static GrdAM operator +(GrdSC op1, GrdAM op2) |
Методы
Code Block | ||
---|---|---|
| ||
public int Value |
Возвращает значение константы статического объекта.
Константы
Класс содержит предопределенные статические объекты, которые соответствуют режимам работы криптографического алгоритма и типу операции шифрования.
Имя | Значение | Описание |
---|---|---|
ECB | 0 | Режим электронной кодовой книги |
...
(режим простой замены). Каждый блок открытого текста заменяется блоком шифротекста. Шифрование двух одинаковых блоков даст идентичный результат. |
...
Скорость обработки блоков в режиме ЕСВ фиксирована. Недостаток ECB, в сравнении c другими режимами шифрования, — сохранение статистических особенностей открытого текста. | ||
CBC | 1 | Режим сцепления блоков шифротекста. Каждый блок открытого текста (кроме первого) побитово складывается по модулю 2 (операция XOR) с предыдущим результатом шифрования. Таким образом, каждый блок зашифрованного текста зависит от всех блоков открытого текста, обработанных до него. Режим CBC лишён недостатка алгоритма ECB, но всё же имеет ряд недостатков с точки зрения безопасности. |
CFB | 2 | Режим обратной связи по шифротексту (режим гаммирования с обратной связью). Для шифрования следующего блока открытого текста он складывается по модулю 2 с перешифрованным (блочным шифром) результатом шифрования предыдущего блока. Криптостойкость СFВ определяется криптостойкостью используемого шифра. |
OFB | 3 | Режим обратной связи по выходу. В этом режиме открытый текст используются только для конечного сложения. Операции блочного шифра могут быть выполнены заранее, позволяя выполнить заключительное шифрование параллельно с открытым текстом. |
Encode | 0 | Зашифровать блок данных. |
Decode | 0x80 | Расшифровать блок данных. |
Encrypt | 0 | Синоним Encode. |
Decrypt | 0x80 | Синоним Decode. |
Описание
Класс служит для одновременной передачи методам Guardant API режима работы криптографического алгоритма, типа операции шифрования и номера блока данных (см. описание класса GrdSC). Например, чтобы программно зашифровать один блок в режиме электронной кодовой книги, методу GrdCryptEx в параметре method достаточно передать GrdAM.ECB + GrdAM.Encrypt + GrdSC.ALL .
См. методы: GrdCryptEx , GrdTransformEx
Значение константы: 0
Code Block | ||||
---|---|---|---|---|
| ||||
public static GrdAM CBC |
Режим сцепления кодированных блоков: В режиме CBC, как и в ECB, каждый 8-байтовый блок преобразуется в 8-байтовый блок. Преобразование в режиме CBC для всех блоков осуществляется с одним и тем же определителем. Режим CBC чаще используется и лучше подходит для преобразования блоков данных, превышающих по длине 8 байтов.
Значение константы: 1
Code Block | ||||
---|---|---|---|---|
| ||||
public static GrdAM CFB |
Режим с кодированной обратной связью: Режим CFB позволяет преобразовывать блоки данных произвольного размера, не обязательно кратного 8 байтам. Это избавляет от необходимости дополнять исходные данные до целого количества 8-байтовых блоков. В этом режиме длина закодированной последовательности будет равна длине исходной.
Примечание: Если при декодировании указан неверный вектор инициализации, все данные, кроме первых 8 байт, все равно декодируются правильно. Если это критично для приложения, предпочтительно использовать режим OFB.
Значение константы: 2
Code Block | ||||
---|---|---|---|---|
| ||||
public static GrdAM OFB |
Режим с обратной связью по выходу: Этот режим имеет много общего с режимом CFB.Главное отличие состоит в том, что для кодирования следующего блока используется не закодированный предыдущий блок, а результат преобразования вектора инициализации IV.
Значение константы: 3
Code Block | ||||
---|---|---|---|---|
| ||||
public static GrdAM Encode |
Кодирование
Значение константы: 0
Code Block | ||||
---|---|---|---|---|
| ||||
public static GrdAM Decode |
Декодирование
Значение константы: 0x80
Code Block | ||||
---|---|---|---|---|
| ||||
public static GrdAM Encrypt |
Кодирование
Значение константы: Encode.mValue
Code Block | ||||
---|---|---|---|---|
| ||||
public static GrdAM Decrypt |
Декодирование
Значение константы: Decode.mValue