In nomine Patris, et Filii, et Spiritus Sancti. Amen.
Алгоритм синусоидального шифрования Yozhix-6969

Артемьев Эдуард Иосифович
Чебоксары, 2013.


КРАТКОЕ ОПИСАНИЕ ПРОГРАММЫ YOZHIX
(ДЛЯ ВСЕХ ПОЛЬЗОВАТЕЛЕЙ)

Чтобы хоть как-то обезопасить свою переписку по открытым каналам сети Интернет,
её надо хорошо шифровать. Программы для шифрования часто бывают недоступны сторонам,
ведущим переписку, в таком случае очень может помочь программа Yozhix.

Браузерная реализация системы шифрования yozhix.html

Yozhix - это браузерная программа, предназначенная для шифрования сообщений прямо
в браузере пользователя. Т.е., имея любой популярный интернет-браузер
(FireFox, Chrome, Opera, Netscape Navigator, Internet Explorer и др.),
Вы можете шифровать свои сообщения и после размещать их на любом открытом
сетевом сервисе. Теперь их сможет прочитать только адресат, знающий ключевое слово
(пароль), а не агенты матрицы и админы серверов.

ВНИМАНИЕ! Yozhix - это алгоритм шифрования с закрытым ключом! Это значит, что ключ
ни в коем случае не должен пересылаться по сети, чтоб не стать известным посторонним
лицам. Ключ можно заранее шёпотом оговорить при личной встрече или использовать
в качестве ключа какие-то секретные факты. Например, "пятое слово из нашего любимого
стихотворения", но ни в коем случае "номер моего дома" или "твоя фамилия" - это
слишком очевидные ключи.

Многие сетевые сервисы не позволяют размещать слишком длинные наборы букв,
поэтому в программе предусмотрена возможность разбивки шифровок на короткие строки.
Инструмент "Разбить зашифрованный текст на строки" Вы можете найти в боковом
выпадающем меню.



ПОДРОБНОЕ ОПИСАНИЕ АЛГОРИТМА СИНУСОИДАЛЬНОГО ШИФРОВАНИЯ YOZHIX-6969
(ДЛЯ СПЕЦИАЛИСТОВ)

Yozhix-6969 - симметричный метод шифрования, заключающийся в увеличении UTF-кодов
шифруемых символов на величины соответствующих значений гармонической функции.

Для описания метода шифрования введём обозначения.
M - количество символов в шифруемом сообщении.
0, 1, ... , N - нумерация символов в сообщении. Здесь N=M-1.
p0, p1, ... , pN - это коды символов исходного текста.
r0, r1, ... , rN - это изменённые коды символов, которые будут записаны в шифровке.

Вычисление изменённых кодов происходит по формулам:
r0=(p0 + round(abs(f(0)))%65536) % 65536,
r1=(p1 + round(abs(f(1)))%65536) % 65536,
...
rN=(pN + round(abs(f(N)))%65536) % 65536.
Здесь "%" - операция арифметическая операция вычисления остатка от целочисленного деления,
round(x) - функция вычисления округлённого значения x,
abs(x) - вычисление модуля x.
Функцию f(x) рассмотрим подробнее, т.к. она является нестандартной жемчужиной всего алгоритма.

Функция f(x) - это "высокочастотная" гармоническая функция,
состояшая из 8 волновых составляющих:
f(x)=A0*sin(B0*x+C0)+A1*sin(B1*x+C1)+...+A7*sin(B7*x+C7).

Коэффициенты Ai, Bi, Ci функции f(x) задают её сложность и секретность для оппонента,
пытающегося разгадать шифровку. Рассмотрим, каковы значения этих коэффициентов.

Bi - частотные коэффициенты. Эти коэфиициенты не являются секретными.
В качестве частотных коэффициентов я взял первые 8 простых чисел,
которые содержат в своей записи цифровую последовательность "6969"
(отсюда и название алгоритма "Yozhix-6969"). Вот эти коэффициенты:
B0=69691, B1=69697, B2=86969, B3=116969, B4=169691, B5=169693, B6=296969, B7=356969.

Ai - амплитудные коэффициенты. Эти коэффициенты являются секретными,
т.к. их значения получаются из ключа (секретного слова).
Вкратце о вычислении Ai:
1) Вычисляем MD5-образ ключа. Это 16-байтовая последовательность.
2) Полученный MD5 разбиваем на 8 двубайтовых целых чисел.
Это и будут коэффициенты Ai.

Таким образом коэффициенты Ai являются целыми числами,
изменяющимися в диапазоне от 0 до 65535.

Пример вычисления Ai.
Пусть ключом является цифровая последовательность "1234".
MD5 ключа: 81dc9bdb52d04dc20036dbd8313ed055   
Разбиваем на 2-байтовые целые числа:
81dc --> A0=33244
9bdb --> A1=39899
52d0 --> A2=21200
4dc2 --> A3=19906
0036 --> A4=54
dbd8 --> A5=56280
313e --> A6=12606
d055 --> A7=53333

Ci - фазовые коэффициенты. Эти коэффициенты не являются секретными.
Они вычисляются аналогично Ai, но на основе MD5-образа исходного текста.
К слову, MD5-код исходного текста, открыто записывается в шифровку.
Это необходимо для обратной расшифровки и проверки её правильности.

Рассмотрим пример формирования шифрованного сообщения.

Ключ: "1234"
Исходный текст: "Мама мыла раму" (14 символов)
Программа создаёт шифровку:
058612fb51737ad91f285e746d1ae5b9
ea3460a778af882f530679621096a459
5f301aa023951aae2385dd7e

Рассмотрим шифровку подробнее:
058612fb51737ad91f285e746d1ae5b9 - MD5-образ текста "Мама мыла раму"
ea34 - r0 (шестнадцатеричная запись)
60a7 - r1
78af - r2
882f - r3
5306 - r4
7962 - r5
1096 - r6
a459 - r7
5f30 - r8
1aa0 - r9
2395 - r10
1aae - r11
2385 - r12
dd7e - r13

Как видим, первые 32 символа шифровки являются MD5-кодом исходного текста.
Остальная часть шифровки отводится под 4-значные 16-теричные записи
изменённых кодов.

Остаётся добавить, что процесс шифрования обратим.
Расшифровка производится следующим обратным преобразованием:
p0=(r0 + 65536 -round(abs(f(0)))%65536) % 65536,
p1=(r1 + 65536 -round(abs(f(1)))%65536) % 65536,
...
pN=(rN + 65536 -round(abs(f(N)))%65536) % 65536.


                                                                 

                          ""JJwwkk;;                              

                      JJMMMMMMMMRRMMZZRRRR""                      

                  ""MMMMMMMMMMMMMMMMMMRRRRMMww                    

                JJMMMMMMMMMMMMMMRRRRMMMMRRMMMMMM                  

              ;;MMMMMMMMMMMMMMMMMMRRRRMMRRMMMMMMMM""              

              MMMMMMMMMMMMMMMMMMMMZZkkRRRRMMMMMMMMMM              

            MMMMMMMMMMRRkktt""""tt;;  ;;""kkRRMMMMMMww            

          MMMMMMMMMMJJ                        JJMMMMMM""          

        ttMMMMMMkk                                ZZMMRR          

        MMMMMMww                                  kkMMMMJJ        

      ttMMMMMMkk                                  JJRRMMMM        

      RRMMMMMMww                                  kkMMMMMMtt      

      ZZMMMMMMww                                  wwMMMMMMZZ      

      ZZMMMMMMww                                  kkMMMMMMMM      

    ;;ttMMMMMMJJ;;                                ""MMMMMMMM      

      ;;MMMMMM""""JJkkkkwwJJ          JJwwkkJJJJ"";;MMMMMMMM      

    ;;  RRMMMM;;kktt;;kkwwZZJJ      ;;wwRRMMkk;;tt;;RRMMRRMM;;    

      ""ZZRRMM;;"";;ZZJJRR  tt      ;;  ;;tt""kk  ;;wwZZttMM      

      JJwwkkMM;;                                    kk""""MM      

      ""MMttRR""                                    kk""wwMM      

        MMttRRtt;;                                  wwttMMMM      

        MMkkRRkk;;                                ;;RRJJMMRR      

        kkRRwwZZ""                  ;;            JJMMwwMMZZ      

        ""MMZZMMJJ;;          tttt;;kk            ZZZZRRMMZZ      

          MMMMMMww;;          ""kkJJZZ""          MMMMMMRRtt      

          RRMMMMMM""      ""ttwwww""kkwwkktt    kkMMMMMMRR;;      

          ZZMMMMMMww    ;;ZZwwkk"";;""tt""ww  ttZZMMMMRRww        

          RRMMMMMMRRJJ  tt""              ;;""kkMMMMMMZZkk        

        ;;MMMMMMMMMMZZtt""        JJ        ttZZMMMMMMRRkk        

        MMMMMMMMMMMMRRwwtt                  ttRRMMMMMMMMww;;      

      ZZMMMMMMMMMMMMMMZZZZ;;          """"JJRRMMMMMMMMMMRRtt      

    ttMMMMMMMMMMMMRRMMMMRRZZJJJJtt  JJkkZZRRMMMMMMMMMMMMRRZZ      

    MMMMZZ;;RRMMMMZZMMMMMMRRRRZZZZwwZZRRRRMMMMRRMMMMRRRRRRZZ      

    MMRR    RRMM""kkZZMMMMMMMMMMMMMMMMMMMMMMRRwwMMMMRRRRRRRR      

    MMZZZZ  ""tt  ""JJwwZZMMMMMMMMMMMMMMMMRRkktt  kkwwwwRRRR;;    

    ZZJJ        "";;  ""JJkkZZRRRRRRRRZZJJ;;  ;;ww  ;;ZZRRZZ""    

                          ;;;;;;""""tt""        tt;;    ;;ttRRtt  

                                                ;;            ;;  

                                                                  









                                                                                                            

                                            ;;""kkJJ                                                        

                                        wwMMMMMMMMMMMMZZ                                                    

                                    RRMMMMMMMMMMMMMMMMMMMMMMRRMMZZJJ                                        

                                ;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM                                        

                              JJMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMkk                                    

                            ZZMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM                                  

                          RRMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM                                

                        ttMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM                              

                        MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM                            

                      wwMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMww                          

                      MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMRRZZRRMMMMMMMMMMMMMMMMMMMMMMtt                        

                    RRMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMZZttwwRRMMMMMMMMMMMMMMMMMMMMZZ                        

                  RRMMMMMMMMMMMMMMMMMMRRZZZZwwkkwwwwkk""tt;;ttttJJZZMMMMMMMMMMMMMMMM                        

                wwMMMMMMMMMMMMMMMMMM;;""                          ""ttZZMMMMMMMMMMMMRR                      

              ;;MMMMMMMMMMMMMMMMZZ;;;;                                ""kkMMMMMMMMMMMM;;                    

              RRMMMMMMMMMMMMMMJJ;;                                        ;;kkMMMMMMMMww                    

              MMMMMMMMMMMMww;;                                                ""MMMMMMMM                    

            kkMMMMMMMMMMkk                                                    ""MMMMMMMMtt                  

            MMMMMMMMMMMM""                                                    ;;ZZMMMMMMMM                  

          ""MMMMMMMMMMZZ;;                                                      RRMMMMMMMMww                

          RRMMMMMMMMMMwwJJ                                                    ;;ZZZZMMMMMMMM                

          MMMMMMMMMMMMZZtt                                                    ""wwMMMMMMMMMM                

        JJMMMMMMMMMMMMRRtt                                                    ""kkMMMMMMMMMMZZ              

        ZZRRMMMMMMMMMMZZ""                                                    ;;wwMMMMMMMMMMMM              

        RRMMMMMMMMMMMMRRtt                                                    JJZZZZMMMMMMMMMM              

      ;;wwMMMMMMMMMMMMZZtt;;                                                  kkZZMMMMMMMMMMMMtt            

      ;;JJMMMMMMMMMMMMZZ""                                                    ""RRMMMMMMMMMMMMkk            

      ""kkMMMMMMMMMMMMRRtt""                                                ;;""wwMMMMMMMMMMMMww            

      ttkkMMMMMMMMMMMMZZtt""                                                  ""JJMMMMMMMMMMMMZZ            

      ;;;;ZZMMMMMMMMRRJJ"";;;;  ;;;;                                  ""tt    ;;""RRMMMMMMMMMMRR            

      JJ  wwMMMMMMMMRR""tt"";;wwwwJJRRwwww""                ""wwZZMMwwwwwwkk;;"";;ZZMMMMMMMMMMMM            

          ttMMMMMMMMMMttttJJRRwwJJkkwwwwRRZZtt;;          ttZZMMMMwwwwJJkkZZZZJJ""ZZMMMMMMMMMMMM            

      ""  wwMMMMMMMMRR;;JJwwkkkk;;""ttMMRRZZZZ""          ;;ZZMMMMMMMMkkJJ  JJkk;;kkMMMMMMMMMMMM;;          

      tt  kkMMZZMMMMRRttJJZZJJ;;JJRRMMRRMMRRww;;          JJJJ;;MMRRMMZZMM"";;JJ  kkMMMMwwZZMMMM;;          

      ""  ZZZZZZMMMMZZ""""tt""JJMMkkMMMMJJ;;JJJJ          tttt  ttMMJJ""RRww  """"""MMMMwwwwMMMM            

          RRMMwwMMMMRR;;;;  ""kkww;;JJZZ  ;;;;tt          ""  ;;    ;;JJtttt  ""  ;;MMZZ;;JJMMMM            

          RRMMkkRRMMww""    "";;""tt  ""      ""              ;;  ;;            ;;ttMMJJ;;""MMRR            

          MMRRZZkkMMZZ;;                  ;;  ;;            ;;                  ;;  MMJJ  kkMMZZ            

        ;;RRMMwwttMMkk""                    ;;                                "";;  MMJJ  MMMMww            

          RRMMwwwwMMww"";;                                                      ;;;;MMkk  MMMMRR            

          JJMMZZJJMMwwJJtt                                                      ;;""MMJJwwMMMMRR            

          ""MMMM;;MMMMttttJJ                                                    ;;kkMMttZZMMMMww            

            MMMMJJRRMMkk""                                                      ;;wwMMJJMMMMMMkk            

            MMMMkkRRMMZZJJtt                    ;;                              ""MMMMJJMMMMMMww            

            kkMMwwwwMMRRJJ                                                      JJMMMMttMMMMMMkk            

            JJMMMMJJMMMMkktt                ;;  tt      JJJJ                  ;;RRRRMMwwMMMMMMkk            

            ""MMMMwwMMMMkktt;;;;              ;;wwww  ""ZZww                  ;;MMMMwwRRMMMMMMJJ            

              MMMMMMMMMMRRtt""                ""ttkk""  wwJJ                  JJMMMMMMMMMMRRMMkk            

              MMMMMMMMMMMMkk""                  ttwwkkJJRRZZ""                JJMMMMMMMMMMMMRR;;            

              RRMMMMMMMMMMRR;;                  ZZZZZZJJZZMMRRtt""          ""ZZMMMMMMMMMMMMkk              

              wwMMMMMMMMMMZZJJ""          ;;;;JJwwwwRRkkttRRZZRRkkww        JJMMMMMMMMMMMMMMJJ              

              kkMMMMMMMMMMRRww;;        ""ttttRRRRww;;;;ttJJRRwwZZZZJJ    ""ZZMMMMMMMMMMMMMMtt              

              JJMMMMMMMMMMMMZZ;;        kkMMkkJJwwkkkk;;kkwwwwRRZZwwZZ;;  kkRRMMMMMMMMMMMMMM                

              wwMMMMMMMMMMMMMMww        RRwwwwMMZZJJ""JJ;;;;      ""MM;;  MMRRMMMMMMMMMMMMww                

              ttMMMMMMMMMMMMMMRR;;;;  JJRRtt;;  ;;                  JJ"";;ZZRRMMMMMMMMMMMMww                

              ZZMMMMMMMMMMMMMMMMkk    ;;kk              ;;          """"JJMMMMMMMMMMMMMMMMtt                

              kkMMMMMMMMMMMMMMMMRRJJ  ttkk          ttwwJJ            wwZZMMMMMMMMMMMMMMMMkk                

              MMMMMMMMMMMMMMMMMMMMww;;""""          ttww              ttMMMMMMMMMMMMMMMMMMww                

            ttMMMMMMMMMMMMMMMMMMMMRRttJJ              JJ                ZZMMMMMMMMMMMMMMMMkk""              

          ttMMMMMMMMMMMMMMMMMMMMMMMMkkZZ                            ;;JJRRMMMMMMMMMMMMMMMMRRZZ              

          MMMMMMMMMMMMMMMMMMMMMMMMMMRRRRtt                  """"  ;;kkRRMMMMMMMMMMMMMMMMMMMMJJ              

        ttMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMRR;;    ;;          ZZttZZttMMMMMMMMMMMMMMMMMMMMMMMMZZ;;            

        RRMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMwwtttt""kk    ;;JJwwkkRRMMRRMMMMMMMMMMMMMMMMMMMMMMMMJJ            

      ttMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMkkkkwwkkkk  kkkkRRwwMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMtt            

      MMMMMMMMMMMMMMMMMMMMMMRRMMMMMMMMMMMMMMMMRRMMRRJJZZZZMMRRRRMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMkk            

      MMMMMMMMkk  wwMMMMMMMMRRMMMMMMMMMMMMMMMMMMRRMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMRRMMMMMMRRww            

    ""MMMMMMtt    kkMMMMMMMMZZMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMRRMMMMMMZZ            

    JJMMMMMM""    JJMMMM;;kkwwRRMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMRRkkRRMMMMMMRRMMMMMMMMMM            

    kkMMMMMMww      MMMM    ttkkRRwwMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMRRRRJJ  wwMMRRwwMMMMMMMMMM;;          

    JJMMMMkkMMJJ    tt;;  """"""kkZZwwRRMMMMMMMMMMMMMMMMMMMMMMMMMMMMZZwwkkJJkk  ""MMwwwwMMMMZZMM            

    ;;MMMMMMwwtt          JJtt"";;wwkkkkMMMMMMMMMMMMMMMMMMMMMMMMMMkkkkJJ;;ttMMtt    MMRRMMMMkkMM""          

      MMJJtt              tt  ;;tt;;JJwwkkttRRMMMMMMMMMMMMMMMMZZZZtt    ;;""wwww      ZZMMRRwwMMtt          

      kk                  tt  ""      ;;""ttttkkwwwwZZRRZZkkRRJJ;;          kkww;;      JJZZ;;MMMMtt        

                          ;;              ;;;;  ;;;;;;""ttww"";;            ""tt;;            ttMMZZJJ      

                                                                            ;;tt                  kkJJ      

                                                                              ""                            

=== Hidden Content === Артемьев Эдуард Иосифович shadow.php sitemap.html sitemap.txt sitemap.xml Яндекс.Метрика HotLog