Курсовая работа

Нейронная сеть как генератор псевдослучайных чисел
    Программы

Курсовая работа
Генератор случайных чисел с нейронной сетью


PRNG с нейронной сетью


    Разработаем генератор псевдослучайных чисел (PRNG) на основе нейронной сети - Курсовой проект.
    Для первого варианта используем нейронную сеть без обучения. Это упростит приложение. Но используем обратную связь по входу для увеличения нелинейности преобразования.
    Создадим примитивную нейронную сеть из 6 нейронов и 3-х слоёв.
    


    В первом слое три нейрона с двумя входами каждый.
    Во втором слое - два нейрона. Их выходы - входы нейрона в третьем слое, выход которого есть выход нейронной сети.
    Для каждого нейрона при инициализации сети от генератора случайных чисел задаются вес и смещение. При использовании нейронной сети в качестве СИНХРОННОГО PRNG никакой генератор случайных чисел при инициализации использоваться не будет.
    NOTES Под синхронностью здесь понимается следующее. При одинаковых входных значениях нейронной сети (мастер-ключ) любое количество экземпляпов приложения должно генерировать одинаковые последовательности псевдослучайных чисел.
    Без всякой свяхи между приложениями.
    
    Есои почитать литературу, то в качестве базы для генераторов асевдослучайных чисел используют нейронные сети с обучением. Не зная датасетов вычислить алгоритм преобразования очень не просто. Может и не возможно.
    Но мы в нашем проекте пока испробуем другую идею - нелинейное изменение коэффициентов (формулы преобразования) после каждого вычисления битов.
    А потом добавим еше некоторые интересные штучки. Если криптографы не будут иметь экземпляры такого приложения для анализа, то им очень не понравится это взламывать.
    

Нейронный генератор псевдослучайных чисел 1024 бит


    Приведенный ниже Android Java проект реализует простую нейронную сеть без обучения (вполовину проще код, чем с обучением)
    
    
  Нейронная Сеть на JAVA >>  
    
    
Полный Android JAVA проект SimpleNNeuron. Проект простейшей Нейронной Сети на Android JAVA (Часть 1). Проект компилируется в Android Studio и работает. Выводит данные в Log i.
    Это проект начального прототипа нейронной сети (работающая заготовка, шаблон) из 6 нейронов. Прототип создает нейронную сеть, инициализирует ее, показывается передача данных из слоя в слой, использование весов и смещения. Одучение нейронной сети не используется для упрощения проекта на этом этапе. В части 2 проекта реализована обратная связь по входу для увеличения нелинейности.
    Проект создан для начинающих программистов. Использован максимально простой JAVA код. Много комментариев.
    
    



    
Курсовая РАБОТА
    
    Разработаем программный генератор случайных чисел (PRNG) на основе нейронной сети.
    Разделим все работы на несколько этапов, каждый из которых может быть курсовой работой по программированию на Android Java
    Сначала напишем на Java простую нейронную сеть из 6 нейронов (без обучения) и сделаем на ней самый простой генератор псевдослучайных чисел.
    - будем генерировать биты и накапливать псевдослучайное число
    - создадим обратную связь по входу и сделаем работу нейронной сети резко нелинейной
    
    Затем используем исходный вариант нейронной сети (без обратной связи и без обучения) и допишем возможность обучения (тренировки)
    Затем добавим уже отлаженный модуль генерирования бит и накопления псевдослучайного числа
    А потом испробуем обратную связь по входу и еще некоторые интересные штучки.
    
    А пока можно посмотреть полный Android Java проект прграммного генератора псевдослучайных чисел "классического" вида с фантазией на тему алгоритма Blum-Blum-Shub
    В проекте есть все файлы. Просто запускаете его а Android Studio. Компилируете и инсталлируете.
    
    
  JAVA ПРОЕКТ PRNG 1024 bit >>  
    Без нейронной сети
    
    
Курсовой проект Полный Android JAVA проект весьма качественного генератора псевдослучайных чисел большой размерности 1024 бит BigIntPRNG1024bit. Компилируется, инсталлируестся, работает В проекте есть много комментариев и LOG сообщений. JAVA код проекта не оптимизировался, не "причёсывался" и соответствует студенческому проекту. В проекте есть файлы README.txt и Android_Java_PRNG.docx с кратким описанием. Для работы приложения необходимо ввести в самое верхнее текстовое поле английский текст и/или цифры больше 100 знаков - исходные данные для генерирования (мастер-ключ). В приложении реализовано несколько уровней последовательной генерации с использованием алгоритма Blum-Blum-Shub. ZIP архив - 24 249 699 байт.
    Приложение генерирует массив из 50 случайных чисел размера 1024 бит. Первое показывается на экране. Весь массив можно поместить в стандартный буфер обмена смартфона. Приложение работает с числами формата Big Int и легко может быть модернизировано для генерации чисел размерности 2048 или 4096 бит и больше.
    Это хороший курсовой проект, который будет интересен преподавателю. В принципе, качество генерируемых чтсел с огромным запасом достаточно для эффективного XOR шифрования деловой переписки, хрпнения паролей, номеров телефонов и т.д.

    
    Android Developer
    
    Этот генератор хорош тем, что Вы можете его легко модернизировать и создавать псевдослучайные числа любой размерности. Если надо зашифровать 10К текста, генерируете число размером 10.000 байт и вуа ля - XOR и еще раз XOR.
    При желании генератор не так и сложно улучшить. Добавить более продвинутую постобработку, тщательнее реализовать алгоритм Blum-Blum-Shub, использовать свои простые числа.
    
    Но PRNG на основе нейронных сетей позволяют серьёзнее усложнять жизнь криптоаналитикам.
    
    
    
    
    
Neural PRNG >>
    
    
Valery Shmelev Android Developer
    

Portable Freeware - Ucoder - Программа для перекодировки Cyrillic символов в Unicode

Курсовая работа