Шифрование файлов случайными байтами (Защита информации)

Тема в разделе "Hi Tech", создана пользователем nik-andrejchikov, 18 июн 2005.

Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
  1. nik-andrejchikov

    nik-andrejchikov Новичок

    Изобретен и реализован в виде программы способ шифрования файлов случайными байтами. Каждый байт файла пользователя замещается случайным байтом из множества, насчитывающего свыше 10 в степени миллион (1 и миллион нулей) элементов. Пароли - произвольные по размеру и содержанию файлы. Произвольные сочетания открытых и закрытых паролей. Каждый закрытый пароль имеет три произвольных открытых пароля: гимн, герб и флаг пользователя. Файлы, зашифрованные открытыми пароля, расшифровываются только соответствующими закрытыми паролями. Иерархия паролей (до 6 уровней). Отвечу на любые вопросы.
     
    Метки:
  2. nik-andrejchikov

    nik-andrejchikov Новичок

    Алгоритм шифрования. Для шифрования нужно найти источник, откуда можно брать байты для замены байтов файла пользователя. Возникла идея: создавать строки случайных байтов и их использовать для шифрования. Для однозначности используются строки длиной 256 байт, состоящие из всех 256 байт. Строки различаются взаимным расположением одних и тех же 256 байт. Количество таких строк исчисляется как факториал от 256, что превышает 10 в степени 506. Каждый байт в файле пользователя имеет две координаты: место расположения в файле и величину от 0 до 255. Процесс зашифровки состоит в следующем: из случайной строки берется байт по номеру, равному величине исходного байта плюс 1, и вставляется на место исходного байта. Процесс расшифровки состоит в следующем: в строке, использованной для зашифровки, ищется байт, равный байту в зашифрованном файле. Номер этого байта, уменьшенный на 1, есть исходный байт. Поскольку в случайных строках все байты обязательно встречаются ровно по одному разу, то процессы шифрования и расшифровки однозначны.
    Подсчет количества вариантов. Строки, используемые для шифрования, различаются взаимным расположением одних и тех же 256 байт. Количество таких строк исчисляется как факториал от 256, что превышает 10 в степени 506. Количество применяемых строк достигает 2000 (можно и более). Строки генерируются случайным образом. Поэтому общее количество вариантов исчисляется в виде биноминального коэффициента, в числителе которого 10 в степени 506, а в знаменателе факториал от 2000. Числитель вычисляется в виде произведения 2000 чисел вида (10 в степени 506 – 0, 1, 2, …, 199). Каждый сомножитель можно считать приближенно равным числу 10 в степени 506. Тогда числитель равен 10 в степени 1 012 000. Знаменатель – факториал от 2000 равен 10 в степени 6000. Таким образом, общее количество вариантов 10 в степени 1006000, то есть превышает 1 и миллион нулей.
    Привожу исходный код процедуры на языке Visual Basic 6.00, осуществляющей зашифровку и расшифровку. Кстати, процессы зашифровки и расшифровки симметричны и используются программой случайно в каждом процессе шифрования. Попробуйте сами уложить Ваши знания в приведенный процесс шифрования (расшифровки).
    Public Sub cs591(cs244 As Integer, cs351 As String, Optional cs236 As String, Optional cs389 As String)
    Dim cs261 As Integer, cs042 As Integer, cs101 As Integer, cs009 As Long
    Dim cs394 As Integer, cs110 As Integer, cs326 As Integer, cs149 As Integer, cs086 As Integer
    Select Case cs244
    Case 0, 1
    cs394 = UBound(cs875)
    cs042 = LenB(cs351)
    cs261 = LenB(cs236)
    For cs326 = 1 To cs042
    cs149 = cs326 Mod cs261 + 1
    cs110 = AscB(MidB(cs236, cs149, 1))
    cs009 = CLng(cs110 + 1)
    cs110 = AscB(MidB(cs389, cs149, 1))
    cs009 = cs009 * CLng(cs110 + 1)
    cs101 = cs009 Mod cs394 + 1
    Select Case cs244
    Case 0
    cs086 = InStrB(cs875(cs101), MidB(cs351, cs326, 1))
    MidB(cs351, cs326, 1) = ChrB(cs086 - 1)
    Case Else
    cs086 = AscB(MidB(cs351, cs326, 1))
    MidB(cs351, cs326, 1) = MidB(cs875(cs101), cs086 + 1, 1)
    End Select
    Next cs326
    Case Else
    End Select
    End Sub
    Случайная величина генерируется по следующему алгоритму:
    Randomize Timer
    cs001 = Int(20000*Rnd) + 10000
    cs001 = cs001 Mod 256
    Попробуйте дважды сгенерировать одинаковые случайные строки.

     
  3. Alexey

    Alexey Аксакал

    2 nik-andrejchikov
    Попробуйте сравнить Ваш алгоритм шифровния с существующими симметричными алгоритмами. Например, AES или DES (3DES)
    Докажите что Ваш лучше по критерию "стойкость ко взлому"/"вычислительные затраты".

    Пока же это все напоминает "изобретение" трехколесного велосипеда сработанного из чугуна с деревянными гайками. Который хочет соревноваться с автомобилями.


    p.s
    данный фрагмент показывает существенные пробелы в образовании. Особенно последняя строка.
    Прежде чем "изобретать" неплохо бы подучиться в области изобретения.
     

Поделиться этой страницей

Загрузка...