На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
  
> BSCAS
    Все эту тему можно закрывать ::).Так можно разговаривать до бесконечности и толку никакого не будет.Официально шифр носит название BSCAS  :).Вот небольшие тесты:

    ExpandedWrap disabled
      <br> На вход:    0x62 0x62 0x62 0x62 0x62 0x62 0x62 0x62       ("bbbbbbbb")<br> На выходе: 0xF5 0x66 0xF8 0x61 0x60 0x62 0xE1 0x0C<br>

    Это специально для тех кто говорил о частоте повтарения символов и прочую муть. :)  
    А теперь посмотрим что у нас получится если мы изменим один байтик в ключе ::)
    ExpandedWrap disabled
      <br> На вход:    0x62 0x62 0x62 0x62 0x62 0x62 0x62 0x62       ("bbbbbbbb")<br> На выходе: 0x30 0x66 0xF9 0x62 0x70 0x64 0xF5 0x32<br>

    Разница я полагаю чуствуется.Но это так все мелочи.Что касается шифрования не   блока данных а например одного байта. Что ж, тоже не проблема.Дописываем нули  :)
    ExpandedWrap disabled
      <br> На вход:      0x41 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ("A")<br> На выходе :  0xE5 0x4B 0x59 0x05 0x97 0x0B 0x06 0x22 <br>

    Классно правда!?  :D.Так что, парни, счет становится 1:0 в мою пользу.Этот алгоритм вам не взять.И не надо сходу тут делать какие-то высказывания по поводу взлома до конца не вникнув в сам алгоритм.Большинство алгоритмов построены на математике и ломаются с ее же помощью у меня тут ее  как таковой нет :).
     И последнее.Была немного улутшена программная реализация.В частности функция Set_Old_Bits и были повыкинуты ненужные push -и и pop -и  ;D.Оканчательный вариант:
     
    ExpandedWrap disabled
      <br>                                                Copyrights (C) Written by Zveruga,Belarus  Minsk 2003<br>                                                                                                 All rights reserved<br> ;Статус регистров:<br> ;ecx - число входящих блоков к шифрации дешифрации<br> ;edi  -  указатель на ключ<br> ;edx - индекс строк<br> ;ebx - индекс столбцов<br> ;esi  - указатель на входной блок данных<br> ;eax - используется от болды  ;D <br> ;Bit_0              db      0  <br> ;Bit_1              db      0   <br> ;Bit_2              db      0  <br> ;Bit_3              db      0  <br> ;Bit_4              db      0  <br> ;Bit_5              db      0  <br> ;Bit_6              db      0  <br> ;Bit_7              db      0  <br>                                     <br> ;New_Bit_0          db      0  <br> ;New_Bit_1          db      0  <br> ;New_Bit_2          db      0  <br> ;New_Bit_3          db      0  <br> ;New_Bit_4          db      0  <br> ;New_Bit_5          db      0  <br> ;New_Bit_6          db      0  <br> ;New_Bit_7          db      0  <br><br> Right_Offset proc<br> ror byte ptr [esi + edx],01h     ;ротация вправо<br> call Set_Old_Bits                   ;Установка все битов<br> call Vertical_Roter_Up             ;Вертикальная ротация вверх<br> call Set_New_Bits                  ;устанавливаем новые биты<br> ret<br> Right_Offset endp<br> <br> <br> <br> Left_Offset proc<br> rol byte ptr [esi + edx],01h        ;ротация влево<br> call Set_Old_Bits                      ;установка всех битов<br> call Vertical_Roter_Down            ;вертикальное смещение вниз<br> call Set_New_Bits                     ;Устанавливываем новые биты<br> ret<br> Left_Offset endp<br> <br> Set_Old_Bits proc<br> push eax<br> xor eax,eax<br> <br> mov  al,byte ptr [esi]<br> mov Bit_0,0<br> bt   ax,bx<br> adc Bit_0,0<br> <br> mov al,byte ptr [esi + 01h]<br> mov Bit_1,0<br> bt ax,bx<br> adc Bit_1,0<br> <br> mov al,byte ptr [esi + 02h]<br> mov Bit_2,0<br> bt ax,bx<br> adc Bit_2,0<br> <br> mov al,byte ptr [esi + 03h]<br> mov Bit_3,0<br> bt ax,bx<br> adc Bit_3,0<br> <br> mov al,byte ptr [esi + 04h]<br> mov Bit_4,0<br> bt ax,bx<br> adc Bit_4,0<br> <br> mov al,byte ptr [esi + 05h]<br> mov Bit_5,0<br> bt ax,bx<br> adc Bit_5,0<br> <br> mov al,byte ptr [esi + 06h]<br> mov Bit_6,0<br> bt ax,bx<br> adc Bit_6,0<br> <br> mov al,byte ptr [esi + 07h]<br> mov Bit_7,0<br> bt ax,bx<br> adc Bit_7,0<br>   <br> pop eax<br> ret<br> Set_Old_Bits endp<br> <br> <br> Set_New_Bits proc<br> push eax<br> xor eax,eax <br> mov al,byte ptr [esi]                ;Загрузка первого байта из блока<br> <br> cmp New_Bit_0 , 1                   ;Проверка бита <br> je  Set_Bit_0                           ;Да установить<br> btr ax,bx                                ;Сбросить<br> jmp Byte_1                             ;Выход<br> Set_Bit_0:                                <br> bts ax,bx                                ;Установка <br> <br> Byte_1:<br> mov byte ptr [esi],al<br> mov al,byte ptr [esi + 01h]<br> cmp New_Bit_1 , 1<br> je Set_Bit_1<br> btr ax,bx<br> jmp Byte_2<br> Set_Bit_1:<br> bts ax,bx      <br> <br> Byte_2:<br> mov byte ptr [esi + 01h],al<br> mov al,byte ptr [esi + 02h]<br> cmp New_Bit_2 , 1<br> je Set_Bit_2<br> btr ax,bx<br> jmp Byte_3<br> Set_Bit_2:<br> bts ax,bx      <br> <br> Byte_3:<br> mov byte ptr [esi+ 02h],al<br> mov al,byte ptr [esi + 03h]<br> cmp New_Bit_3 , 1<br> je Set_Bit_3<br> btr ax,bx<br> jmp Byte_4<br> Set_Bit_3:<br> bts ax,bx      <br> <br> Byte_4:<br> mov byte ptr [esi + 03h],al<br> mov al,byte ptr [esi + 04h]<br> cmp New_Bit_4 , 1<br> je Set_Bit_4<br> btr ax,bx<br> jmp Byte_5<br> Set_Bit_4:<br> bts ax,bx      <br> <br> Byte_5:<br> mov byte ptr [esi + 04h],al<br> mov al,byte ptr [esi + 05h]<br> cmp New_Bit_5 , 1<br> je Set_Bit_5<br> btr ax,bx<br> jmp Byte_6<br> Set_Bit_5:<br> bts ax,bx      <br> <br> Byte_6:<br> mov byte ptr [esi + 05h],al<br> mov al,byte ptr [esi + 06h]<br> cmp New_Bit_6 , 1<br> je Set_Bit_6<br> btr ax,bx<br> jmp Byte_7<br> Set_Bit_6:<br> bts ax,bx      <br><br><br> Byte_7:<br> mov byte ptr [esi + 06h],al<br> mov al,byte ptr [esi + 07h]<br> cmp New_Bit_7 , 1<br> je Set_Bit_7<br> btr ax,bx<br> jmp Exit<br> Set_Bit_7:<br> bts ax,bx      <br> <br> Exit:<br> mov byte ptr [esi+07h],al<br> pop eax<br> ret<br> Set_New_Bits endp<br> <br> Xor_Blocks proc<br> mov al,byte ptr [esi]             ;операция xor с байтом блока ключа, блок на блок :)<br> xor al,byte ptr [edi]<br> xchg al,[esi]<br> mov al,byte ptr [esi + 01h]<br> xor al,byte ptr [edi + 01h]       <br> xchg al,[esi + 01h]<br> mov al,byte ptr [esi + 02h]<br> xor al,byte ptr [edi + 02h] <br> xchg al,[esi + 02h]<br> mov al,byte ptr [esi + 03h]<br> xor al,byte ptr [edi + 03h] <br> xchg al,[esi + 03h]<br> mov al,byte ptr [esi + 04h]<br> xor al,byte ptr [edi + 04h] <br> xchg al,[esi + 04h]<br> mov al,byte ptr [esi + 05h]<br> xor al,byte ptr [edi + 05h] <br> xchg al,[esi + 05h]<br> mov al,byte ptr [esi + 06h]<br> xor al,byte ptr [edi + 06h]<br> xchg al,[esi + 06h]<br> mov al,byte ptr [esi + 07h]<br> xor al,byte ptr [edi + 07h]  <br> xchg al,[esi + 07h]<br> ret<br> Xor_Blocks endp <br> <br> Deshifr_Down_Offset proc<br> call Set_Old_Bits<br> call Vertical_Roter_Down<br> call Set_New_Bits<br> rol byte ptr [esi + edx],01h<br> ret<br> Deshifr_Down_Offset endp<br> <br> Deshifr_Up_Offset proc<br> call Set_Old_Bits<br> call Vertical_Roter_Up<br> call Set_New_Bits<br> ror byte ptr [esi + edx],01h<br> ret<br> Deshifr_Up_Offset endp<br> <br> Vertical_Roter_Down proc<br> push eax<br> xor eax,eax<br> mov al,Bit_0<br> mov New_Bit_1,al<br> mov al,Bit_1<br> mov New_Bit_2,al<br> mov al,Bit_2<br> mov New_Bit_3,al<br> mov al,Bit_3<br> mov New_Bit_4,al<br> mov al,Bit_4<br> mov New_Bit_5,al<br> mov al,Bit_5<br> mov New_Bit_6,al<br> mov al,Bit_6<br> mov New_Bit_7,al<br> mov al,Bit_7<br> mov New_Bit_0,al<br> pop eax<br> ret<br> Vertical_Roter_Down endp<br> <br> Vertical_Roter_Up proc<br> push eax<br> xor eax,eax<br> mov al,Bit_7<br> mov New_Bit_6,al<br> mov al,Bit_6<br> mov New_Bit_5,al<br> mov al,Bit_5<br> mov New_Bit_4,al<br> mov al,Bit_4<br> mov New_Bit_3,al<br> mov al,Bit_3<br> mov New_Bit_2,al<br> mov al,Bit_2<br> mov New_Bit_1,al<br> mov al,Bit_1 <br> mov New_Bit_0,al<br> mov al,Bit_0<br> mov New_Bit_7,al      <br> pop eax<br> ret<br> Vertical_Roter_Up endp<br> <br> BSCAS_Shifr proc<br> pusha<br> Shifr_Octo_Byte:<br> push edi                           ;Сохранить указател на ключ  <br> push ecx                          ;сахраним число входных блоков <br> <br> xor ebx,ebx                       ;Обнуляем регистры на всякие пожарные<br> xor eax,eax<br> xor edx,edx<br> <br> mov cl,08h                        ;8 блоков подключей <br> Key_Block:<br> push ecx                          ;сохранить число блоков <br> mov cl,08h                        ;число подключей<br> @Loop_Per_Key:                ;цикл по прохаждению подключей<br> push ecx                          ;сохранить число подключей<br> mov al,byte ptr [edi + edx]  ;подключ в al<br> mov cl,08h                        ;пробег по байту<br> @Loop_Per_Byte_Of_Key:<br> bt ax,bx<br> jc _LeftOffset                    ;Бит установлен ? <br> call Right_Offset                 ;Нет не установлен<br> jmp Next_Bit_Of_Key<br> _LeftOffset:<br> call Left_Offset<br> Next_Bit_Of_Key:<br> inc bx                              ;следущий бит ключа   <br> loop @Loop_Per_Byte_Of_Key<br><br> xor ebx,ebx                       ;обнулим индекс столбцов<br> inc edx                            ;увеличим индекс строк<br> pop ecx                           ;восстановим стчечик подключей<br> loop @Loop_Per_Key<br>  <br> call Xor_Blocks                   ;операция xor над блоками<br>      <br> pop ecx                            ;восстановим счетчик блоков<br> xor edx,edx                       ;обнулим индекс строк<br> xor ebx,ebx<br> add edi,08h                       ;переместим указатель на следущий блок ключей<br> loop Key_Block<br>    <br> pop ecx                            ;восстановим число входных блоков<br> pop edi                             ;восстановим указатель на ключ <br> add esi,08h                        ;перейдем к следующему блоку    <br> loop Shifr_Octo_Byte<br> popa      <br> ret<br> BSCAS_Shifr endp<br> <br> BSCAS_Deshifr proc<br> pusha<br> xor eax,eax                          ;очищаем eax,edx,ebx ( мусор нам не нужен :) )<br> xor ebx,ebx<br> xor edx,edx<br> add edi,56                            ;перемещаем указатель на последний блок ключа                      <br> Deshifr_Octo_Byte:<br> push ecx                              ;сохраняем число входных блоков <br> push edi                               ;сохраняем указатель на ключ<br> <br> mov cl,08h                            ;число блоков подключей<br> Deshifr_Loop_Key_Block: <br> push ecx                               ;сохраняем число блоков подключей<br> ;Начальная стадия         -       операции xor шифрованного блока с блоком подключей<br> call Xor_Blocks<br> mov cl,08h                              ;количество подключей в блоке<br> mov dl,07h                              ;начинаем снизу блока подключей <br> Deshifr_Loop_Per_Key:<br> push ecx                                 ;сохраняем количество подключей<br> mov al,byte ptr [edi + edx]         ;подключ   <br> mov cl,08h                               ;пробег по байту <br> mov bl,07h<br> Deshifr_Loop_Per_Byte_Of_Key:<br> bt ax,bx                                   ;Бит установлен ?  <br> jc   _Deshifr_Up_Offset               ;Да установлен<br> call Deshifr_Down_Offset             ;Нет не установлен  <br> jmp _Deshifr_Inc<br> _Deshifr_Up_Offset:<br> call Deshifr_Up_Offset  <br> _Deshifr_Inc:<br> dec  bx                                  ;уменьшаем указатель сталбцов<br> loop Deshifr_Loop_Per_Byte_Of_Key<br><br> xor ebx,ebx                            ;устанавливаем индекс сталбцов в ноль <br> dec edx                                 ;уменьшаем  индекс строк <br> pop ecx                                 ;восстанавливаем количество подключей<br> loop Deshifr_Loop_Per_Key<br>    <br> sub edi,08h                            ;переход к следующему блоку ключей <br> xor edx,edx                            ;устанавливаем индекс строки в ноль<br> pop ecx                                 ;Восстанавливаем количество блоков ключей<br> loop Deshifr_Loop_Key_Block <br>  <br> pop edi                                  ;восстанавливаем указатель на ключ<br> pop ecx                                 ;восстанавливаем количество блоков к дешифрации<br> loop Deshifr_Octo_Byte<br> popa      <br> ret<br> BSCAS_Deshifr endp<br>                                                   ;Автор разрешает использовать данный исходник<br>                                                   ;только при условии указания  авторства<br>
    Сообщение отредактировано: Zveruga -
      ладно с зашифровкой блока разобрался как его теперь расшифровать ?
      в процедуре
      ExpandedWrap disabled
        <br> BSCAS_Deshifr proc <br> pusha <br> xor eax,eax                          ;очищаем eax,edx,ebx ( мусор нам не нужен :) ) <br> xor ebx,ebx <br> xor edx,edx <br> add edi,56                            ;перемещаем указатель на последний блок <br>


      если в edi offset на ключ и ключ я определил как

      key db  'fuck' к чему приведет add edi,56 ?? так что счет становится 99:0 в нашу пользу и Зверюга удаляется переписавать программу так что бы она работала нормально... или приводит куски коду где показывается шифровка дешифровка

        делаю
        ExpandedWrap disabled
          <br>key      db      0<br>block      db      8 dup ('a')<br><br>.code<br>start:      <br>       mov      ecx,1<br>      mov      edi,offset key<br>      mov      esi,offset block       <br>       call      BSCAS_Shifr<br>

        как мне его потом дешифровать ?
          Цитата IX0DeS, 28.03.03, 13:13:18
          ладно с зашифровкой блока разобрался как его теперь расшифровать ?
          в процедуре
          ExpandedWrap disabled
            <br> BSCAS_Deshifr proc <br> pusha <br> xor eax,eax                          ;очищаем eax,edx,ebx ( мусор нам не нужен :) ) <br> xor ebx,ebx <br> xor edx,edx <br> add edi,56                            ;перемещаем указатель на последний блок <br>


          если в edi offset на ключ и ключ я определил как

          key db  'fuck' к чему приведет add edi,56 ?? так что счет становится 99:0 в нашу пользу и Зверюга удаляется переписавать программу так что бы она работала нормально... или приводит куски коду где показывается шифровка дешифровка

          Ключ key db  'fuck'  конечно хорош не спорю  :) .Только он должен быть не 4 байта а 64.Поэтому если хочеш использовать такой ключ предварительно нужно увеличить его размерность до 64 байт
          Неееее 1 : 0 в мою  :P
          байта

            Цитата IX0DeS, 28.03.03, 13:29:58
            делаю
            ExpandedWrap disabled
              <br>key      db      0<br>block      db      8 dup ('a')<br><br>.code<br>start:      <br>       mov      ecx,1<br>      mov      edi,offset key<br>      mov      esi,offset block       <br>       call      BSCAS_Shifr<br>

            как мне его потом дешифровать ?

            ExpandedWrap disabled
              <br> mov esi ,offset Shifr_Text<br> mov edi,offset Key<br> ;в ecx  помещай число  блоков <br> call BSCAS_Deshifr<br> ;Все<br>






              нормально... ключ в 64 байта.... круто... чего скажешь... лосизм... слушай я тут тоже алгоритм придумал а что если в качестве пароля использовать одну из глав из романа 'Преступелене и Наказание'  а чего... алгорит простой xor... ну что ломать будешь ?
              Сообщение отредактировано: IX0DeS -
                продолжаем...
                ExpandedWrap disabled
                  <br> mov  al,byte ptr [esi] <br> mov Bit_0,0 <br> bt   ax,bx <br> adc Bit_0,0 <br>  <br> mov al,byte ptr [esi + 01h] <br> mov Bit_1,0 <br> bt ax,bx <br> adc Bit_1,0 <br>  <br> mov al,byte ptr [esi + 02h] <br> mov Bit_2,0 <br> bt ax,bx <br> adc Bit_2,0 <br>  <br> mov al,byte ptr [esi + 03h] <br> mov Bit_3,0 <br> bt ax,bx <br> adc Bit_3,0 <br>  <br> mov al,byte ptr [esi + 04h] <br> mov Bit_4,0 <br> bt ax,bx <br> adc Bit_4,0 <br>  <br> mov al,byte ptr [esi + 05h] <br> mov Bit_5,0 <br> bt ax,bx <br> adc Bit_5,0 <br>  <br> mov al,byte ptr [esi + 06h] <br> mov Bit_6,0 <br> bt ax,bx <br> adc Bit_6,0 <br>  <br> mov al,byte ptr [esi + 07h] <br> mov Bit_7,0 <br> bt ax,bx <br> adc Bit_7,0 <br><br>

                ты умеешь пользоваться конструкцией loop ?? по моему это в цикле можно написать.... так что давай переписывай нормально прогу свою гыгы  ;D
                Сообщение отредактировано: IX0DeS -
                  Цитата IX0DeS, 28.03.03, 13:40:24
                  нормально... ключ в 64 байта.... круто... чего скажешь... лосизм... слушай я тут тоже алгоритм придумал а что если в качестве пароля использовать одну из глав из романа 'Преступелене и Наказание'  а чего... алгорит простой xor... ну что ломать будешь ?

                  А чем тебе такой ключ не нравится??Ради бога используй хоть 3 хоть 4 байта твае дело.

                    Цитата IX0DeS, 28.03.03, 13:46:37
                    продолжаем...
                    ExpandedWrap disabled
                      <br> mov  al,byte ptr [esi] <br> mov Bit_0,0 <br> bt   ax,bx <br> adc Bit_0,0 <br>  <br> ......  <br> mov al,byte ptr [esi + 07h] <br> mov Bit_7,0 <br> bt ax,bx <br> adc Bit_7,0 <br><br>

                    ты умеешь пользоваться конструкцией loop ?? по моему это в цикле можно написать.... так что давай переписывай нормально прогу свою гыгы  ;D

                    Дааааа.... как говорится : no comments
                      > И не надо сходу тут делать какие-то высказывания по поводу взлома до конца не вникнув в сам алгоритм.

                      Какие высказывания, какой алгоритм... или эта новая фишка описывать принцип работы алгоритма на asm`е. Я конечно понимаю, что ты, как автор этого дивного алгоритма, вжился в него и тебе все очевидно... Просто, если ты хочешь обсуждения алгоритма, а не реализации неизвестно чего на asm`е, будь добр его представить в нормальном подробном однозначно интерпретируемом виде и желательно с пошаговым примером основных моментов. Тебе всеравно придется делать эту работу, если он является таковым, каким ты его представляешь или ты уже сомневаешся ;)
                        и это опять я...
                        задаем себе вопрос? ээ.. назовите одно из основных свойств _хорошего_ алгоритма
                        отвечаем... кто не согласится тут со мной ?

                        любой ключ должен обеспечить одинаковую степень защиты

                        на вход подаем ключ состоящий из 64байт 0xFFh
                        текст для шифрования _fuckoff
                        на выходе получаем...
                        x7Fh,fuckof,x19h те. из восьми букв изменились только две... гыгы ну что крутой алгоритм... все отдыхают, Зверюга уходит опустив голову доделовать алгоритм, счет 99:0 в нашу...  ;D после этого мне дальше уже лень было что-то там считать... да кстати я его чуток переписал еге - с Loop'ами сделал так мне кажется он выглядит меньше :)(такого стиля программироваия я еще давно не видел... детский сад чесс слово)
                        Сообщение отредактировано: IX0DeS -
                          Цитата SVK , 28.03.03, 14:34:48
                          > И не надо сходу тут делать какие-то высказывания по поводу взлома до конца не вникнув в сам алгоритм.

                          Какие высказывания, какой алгоритм... или эта новая фишка описывать принцип работы алгоритма на asm`е. Я конечно понимаю, что ты, как автор этого дивного алгоритма, вжился в него и тебе все очевидно... Просто, если ты хочешь обсуждения алгоритма, а не реализации неизвестно чего на asm`е, будь добр его представить в нормальном подробном однозначно интерпретируемом виде и желательно с пошаговым примером основных моментов. Тебе всеравно придется делать эту работу, если он является таковым, каким ты его представляешь или ты уже сомневаешся ;)

                          SVK я да этого все пытался упорно всем все обьяснить, но почему-то почти никто меня не хотел слушать.
                            Цитата IX0DeS, 28.03.03, 14:37:12
                            любой ключ должен обеспечить одинаковую степень защиты

                            Этот вопрос обсуждался еще в предыдущей теме...
                              да еще забыл твой алгоритм чтото криво кработает...
                              делаю шифровку трех блоков....
                              ExpandedWrap disabled
                                <br>key      db      64 dup (0ffh)<br>block      db      '12345678'<br>      db      '12345678'<br>      db      '12345678'<br>.code<br>start:      <br>       mov      ecx,3<br>      mov      edi,offset key<br>      mov      esi,offset block       <br>      pusha<br>       call      BSCAS_Shifr<br>      popa<br>       call      BSCAS_Deshifr<br>key      db      64 dup (0ffh)<br>block      db      '12345678'<br>      db      '12345678'<br>      db      '12345678'<br>.code<br>start:      <br>       mov      ecx,3<br>      mov      edi,offset key<br>      mov      esi,offset block       <br>      pusha<br>       call      BSCAS_Shifr<br>      popa<br>       call      BSCAS_Deshifr<br>


                              после шифровки
                              block xC5,'234567',x60,xC5,'234567',x60,xC5,'234567',x60
                              каждый блок из 8 байт по моему очень похож на своего соседа :)
                              после дешифровки
                              block x83,'234567',x0B,xC5,'234567',x60,xC5,'234567',x60
                              реализация собственного алгоритма оказалась кривой.... мдя.. может тебе рано придумывать оченб стойкие алгоритмы.. гыгы

                              ;D
                                Цитата SVK , 28.03.03, 14:50:59

                                Этот вопрос обсуждался еще в предыдущей теме...

                                ну дык не обеспечивает же... меняет только первый и последний символ в блоке... ну что тут сказать по поводу алгоритма этого... в Корзину это все там и будем разговаривать  ;D
                                  Цитата IX0DeS, 28.03.03, 14:37:12
                                  и это опять я...
                                  задаем себе вопрос? ээ.. назовите одно из основных свойств _хорошего_ алгоритма
                                  отвечаем... кто не согласится тут со мной ?

                                  любой ключ должен обеспечить одинаковую степень защиты

                                  Охх ну ты туг немного.Скажи мне на милость а ты слышал когда-нибудь об алгоритме генерации ключей??Ты мне не подскажеш зачем он нужен?!  


                                  Цитата

                                  на вход подаем ключ состоящий из 64байт 0xFFh
                                  текст для шифрования _fuckoff
                                  на выходе получаем...
                                  x7Fh,fuckof,x19h те. из восьми букв изменились только две... гыгы ну что крутой ...


                                  На какой вход ты подаеш ключ?? ;D.
                                  А теперь посматри сюда:

                                  ExpandedWrap disabled
                                    <br>  Key2    db  0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh         <br>            db  0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh  <br>            db  0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh  <br>            db  0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh  <br>            db  0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh<br>            db  0FFh,0FFh,0BBh,0FFh,0FFh,0FFh,0FFh,0FFh<br>            db  0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh<br>            db  0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh <br><br> Текст : "_fuckoff" в Hex  0x5F 0x66 0x75 0x63 0x6B 0x6F 0x66 0x66 <br> На выходе :                  0x79 0x62 0x35 0x67 0x6F 0x2F 0x26 0x7F<br>

                                  Улавливаеш разницу ??У тубя что с воображение туго ты что не мог по лучше ключ выбрать??Ты себе хоть представляеш что будет происходить с битовой плоскостью если
                                  у нас будет такой ключ,который ты предложил.


                                  Цитата

                                  переписал еге - с Loop'ами сделал так мне кажется он выглядит меньше :)(такого стиля программироваия я еще давно не видел... детский сад чесс слово)


                                  Не надо меня учить прагроммировать я этому без чьей-либо помощи учился и буду дальше учится.
                                  Надо же он сделал с loop-ми.И что ?Ах да занимает меньше места.Блин да ты крут как я посматрю.А ты о производительности думал?
                                    Цитата Zveruga, 28.03.03, 14:41:56
                                    SVK я да этого все пытался упорно всем все обьяснить, но почему-то почти никто меня не хотел слушать.
                                    Ну вообщем это твое право, а по asm`у востанавливать алгоритм у меня нет желания... По твоим предыдущим объяснениям у меня уже возникали разночтения, так то вот..
                                      Цитата

                                      ;edi  -  указатель на ключ
                                      ;esi  - указатель на входной блок данных

                                      по моему это ты писал...

                                      я делаю
                                      ExpandedWrap disabled
                                        <br>      mov      edi,offset key <br>      mov      esi,offset block        <br>      call      BSCAS_Shifr <br>

                                      что не так ??
                                      зы
                                      мне абсолютно паралельно что у нас или у вас с какойто плоскостью будет... ну не работает же твой алгоритм и все тут
                                      Сообщение отредактировано: IX0DeS -
                                        Цитата IX0DeS, 28.03.03, 15:00:34
                                        да еще забыл твой алгоритм чтото криво кработает...

                                        Страно у меня все работает , а вот у некоторых личностей который его наверно уже
                                        перековыряли нет.Ты хоть смотри что ты там ковыряеш а то ведь сам потом не разгребеш.
                                          Цитата Zveruga, 28.03.03, 15:11:29

                                          Страно у меня все работает , а вот у некоторых личностей который его наверно уже
                                          перековыряли нет.Ты хоть смотри что ты там ковыряеш а то ведь сам потом не разгребеш.


                                          так привожу прогу полностью
                                          compil.bat
                                          ExpandedWrap disabled
                                            <br> tasm32.exe /ml /m /z /z lamo.asm,lamo.obj<br> tlink32.exe -aa -x -c -o -Tpe lamo.obj,,,import32.lib<br>


                                          сама прога....
                                          ExpandedWrap disabled
                                            <br>;_______________________________________________________________________<br>                callW   macro   x<br>                extern  x:PROC<br>                call    x<br>                endm     <br>                p386     <br>                model   flat<br>                locals  __<br>                .data    <br>;_______________________________________________________________________<br>Bit_0           db      0   <br>Bit_1           db      0    <br>Bit_2           db      0   <br>Bit_3           db      0   <br>Bit_4           db      0   <br>Bit_5           db      0   <br>Bit_6           db      0   <br>Bit_7           db      0   <br><br>New_Bit_0       db      0   <br>New_Bit_1       db      0   <br>New_Bit_2       db      0   <br>New_Bit_3       db      0   <br>New_Bit_4       db      0   <br>New_Bit_5       db      0   <br>New_Bit_6       db      0   <br>New_Bit_7       db      0   <br><br><br>key             db      64 dup (0ffh)<br>block           db      3 dup ('12345678')<br>;_______________________________________________________________________<br>                .code    <br>start:                  <br><br> ;ecx - число входящих блоков к шифрации дешифрации <br> ;edi  -  указатель на ключ <br> ;edx - индекс строк <br> ;ebx - индекс столбцов <br> ;esi  - указатель на входной блок данных <br> ;eax - используется от болды    <br><br>                mov     ecx, 3<br>                mov     edi, offset key<br>                mov     esi, offset block  <br>                pusha    <br>                call    BSCAS_Shifr<br>                popa     <br>                call    BSCAS_Deshifr<br><br>                push    0ffh<br>                callW   ExitProcess<br><br>;_______________________________________________________________________<br>Right_Offset    proc     <br>                ror     byte ptr [esi + edx], 01h          ;ротация вправо <br>                call    Set_Old_Bits                       ;Установка все битов <br>                call    Vertical_Roter_Up                  ;Вертикальная ротация вверх <br>                call    Set_New_Bits                       ;устанавливаем новые биты <br>                ret      <br>Right_Offset    endp     <br>;_______________________________________________________________________<br><br>Left_Offset     proc     <br>                rol     byte ptr [esi + edx], 01h          ;ротация влево <br>                call    Set_Old_Bits                       ;установка всех битов <br>                call    Vertical_Roter_Down                ;вертикальное смещение вниз <br>                call    Set_New_Bits                       ;Устанавливываем новые биты <br>                ret      <br>Left_Offset     endp     <br><br>;_______________________________________________________________________<br>;loop optimization :)<br>;Set_Old_Bits       proc <br>;             push       eax <br>;             push       ebp<br>;             xor       eax, eax <br>;             xor       ebp, ebp<br>;<br>;_a:<br>;             mov        al, byte ptr [esi][ebp] <br>;             mov       [byte ptr Bit_0][ebp],0 <br>;             bt        ax, bx <br>;             adc       [byte ptr Bit_0][ebp],0 <br>;             inc       ebp<br>;             cmp       ebp,7<br>;             jle       _a<br>;<br>;             pop ebp    <br>;             pop eax <br>;             ret <br>;Set_Old_Bits       endp <br>;_______________________________________________________________________<br><br>Set_Old_Bits    proc     <br>                push    eax <br>                xor     eax, eax <br><br>                mov     al, byte ptr [esi] <br>                mov     Bit_0, 0 <br>                bt      ax, bx <br>                adc     Bit_0, 0 <br><br>                mov     al, byte ptr [esi + 01h] <br>                mov     Bit_1, 0 <br>                bt      ax, bx <br>                adc     Bit_1, 0 <br><br>                mov     al, byte ptr [esi + 02h] <br>                mov     Bit_2, 0 <br>                bt      ax, bx <br>                adc     Bit_2, 0 <br><br>                mov     al, byte ptr [esi + 03h] <br>                mov     Bit_3, 0 <br>                bt      ax, bx <br>                adc     Bit_3, 0 <br><br>                mov     al, byte ptr [esi + 04h] <br>                mov     Bit_4, 0 <br>                bt      ax, bx <br>                adc     Bit_4, 0 <br><br>                mov     al, byte ptr [esi + 05h] <br>                mov     Bit_5, 0 <br>                bt      ax, bx <br>                adc     Bit_5, 0 <br><br>                mov     al, byte ptr [esi + 06h] <br>                mov     Bit_6, 0 <br>                bt      ax, bx <br>                adc     Bit_6, 0 <br><br>                mov     al, byte ptr [esi + 07h] <br>                mov     Bit_7, 0 <br>                bt      ax, bx <br>                adc     Bit_7, 0 <br><br>                pop     eax <br>                ret      <br>Set_Old_Bits    endp     <br>;_______________________________________________________________________<br><br>Set_New_Bits    proc     <br>                push    eax <br>                xor     eax, eax  <br><br>                mov     al, byte ptr [esi]                 ;Загрузка первого байта из блока <br>                cmp     New_Bit_0 , 1                      ;Проверка бита  <br>                je      Set_Bit_0                          ;Да установить <br>                btr     ax, bx                             ;Сбросить <br>                jmp     Byte_1                             ;Выход <br>Set_Bit_0:              <br>                bts     ax, bx                             ;Установка  <br><br>Byte_1:                 <br>                mov     byte ptr [esi], al <br>                mov     al, byte ptr [esi + 01h] <br>                cmp     New_Bit_1 , 1 <br>                je      Set_Bit_1 <br>                btr     ax, bx <br>                jmp     Byte_2 <br>Set_Bit_1:              <br>                bts     ax, bx       <br><br>Byte_2:                 <br>                mov     byte ptr [esi + 01h], al <br>                mov     al, byte ptr [esi + 02h] <br>                cmp     New_Bit_2 , 1 <br>                je      Set_Bit_2 <br>                btr     ax, bx <br>                jmp     Byte_3 <br>Set_Bit_2:              <br>                bts     ax, bx       <br><br>Byte_3:                 <br>                mov     byte ptr [esi+ 02h], al <br>                mov     al, byte ptr [esi + 03h] <br>                cmp     New_Bit_3 , 1 <br>                je      Set_Bit_3 <br>                btr     ax, bx <br>                jmp     Byte_4 <br>Set_Bit_3:              <br>                bts     ax, bx       <br><br>Byte_4:                 <br>                mov     byte ptr [esi + 03h], al <br>                mov     al, byte ptr [esi + 04h] <br>                cmp     New_Bit_4 , 1 <br>                je      Set_Bit_4 <br>                btr     ax, bx <br>                jmp     Byte_5 <br>Set_Bit_4:              <br>                bts     ax, bx       <br><br>Byte_5:                 <br>                mov     byte ptr [esi + 04h], al <br>                mov     al, byte ptr [esi + 05h] <br>                cmp     New_Bit_5 , 1 <br>                je      Set_Bit_5 <br>                btr     ax, bx <br>                jmp     Byte_6 <br>Set_Bit_5:              <br>                bts     ax, bx       <br><br>Byte_6:                 <br>                mov     byte ptr [esi + 05h], al <br>                mov     al, byte ptr [esi + 06h] <br>                cmp     New_Bit_6 , 1 <br>                je      Set_Bit_6 <br>                btr     ax, bx <br>                jmp     Byte_7 <br>Set_Bit_6:              <br>                bts     ax, bx       <br><br><br>Byte_7:                 <br>                mov     byte ptr [esi + 06h], al <br>                mov     al, byte ptr [esi + 07h] <br>                cmp     New_Bit_7 , 1 <br>                je      Set_Bit_7 <br>                btr     ax, bx <br>                jmp     Exit <br>Set_Bit_7:              <br>                bts     ax, bx       <br><br>Exit:                   <br>                mov     byte ptr [esi+07h], al <br>                pop     eax <br>                ret      <br>Set_New_Bits    endp     <br><br>;_______________________________________________________________________<br>;loop optimization :)<br>;<br>;Xor_Blocks       proc <br>;            push      ebp<br>;            xor      ebp,ebp<br>;_b:<br>;             mov      al, byte ptr [esi][ebp]             <br>;             xor       al, byte ptr [edi][ebp] <br>;             xchg       al,[esi][ebp]<br>;             inc ebp<br>;             cmp ebp,7<br>;             jle _b<br>;            pop ebp<br>;             ret <br>;Xor_Blocks       endp  <br>;_______________________________________________________________________<br>Xor_Blocks      proc     <br>                mov     al, byte ptr [esi]                 ;операция xor с байтом блока ключа, блок на блок :) <br>                xor     al, byte ptr [edi] <br>                xchg    al, [esi] <br>                mov     al, byte ptr [esi + 01h] <br>                xor     al, byte ptr [edi + 01h]        <br>                xchg    al, [esi + 01h] <br>                mov     al, byte ptr [esi + 02h] <br>                xor     al, byte ptr [edi + 02h]  <br>                xchg    al, [esi + 02h] <br>                mov     al, byte ptr [esi + 03h] <br>                xor     al, byte ptr [edi + 03h]  <br>                xchg    al, [esi + 03h] <br>                mov     al, byte ptr [esi + 04h] <br>                xor     al, byte ptr [edi + 04h]  <br>                xchg    al, [esi + 04h] <br>                mov     al, byte ptr [esi + 05h] <br>                xor     al, byte ptr [edi + 05h]  <br>                xchg    al, [esi + 05h] <br>                mov     al, byte ptr [esi + 06h] <br>                xor     al, byte ptr [edi + 06h] <br>                xchg    al, [esi + 06h] <br>                mov     al, byte ptr [esi + 07h] <br>                xor     al, byte ptr [edi + 07h]   <br>                xchg    al, [esi + 07h] <br>                ret      <br>Xor_Blocks      endp     <br>;_______________________________________________________________________<br><br><br>Deshifr_Down_Offset     proc <br>                call    Set_Old_Bits <br>                call    Vertical_Roter_Down <br>                call    Set_New_Bits <br>                rol     byte ptr [esi + edx], 01h <br>                ret      <br>Deshifr_Down_Offset     endp <br>;_______________________________________________________________________<br>Deshifr_Up_Offset       proc <br>                call    Set_Old_Bits <br>                call    Vertical_Roter_Up <br>                call    Set_New_Bits <br>                ror     byte ptr [esi + edx], 01h <br>                ret      <br>Deshifr_Up_Offset       endp <br>;_______________________________________________________________________<br>Vertical_Roter_Down     proc <br>                push    eax <br>                xor     eax, eax <br>                mov     al, Bit_0 <br>                mov     New_Bit_1, al <br>                mov     al, Bit_1 <br>                mov     New_Bit_2, al <br>                mov     al, Bit_2 <br>                mov     New_Bit_3, al <br>                mov     al, Bit_3 <br>                mov     New_Bit_4, al <br>                mov     al, Bit_4 <br>                mov     New_Bit_5, al <br>                mov     al, Bit_5 <br>                mov     New_Bit_6, al <br>                mov     al, Bit_6 <br>                mov     New_Bit_7, al <br>                mov     al, Bit_7 <br>                mov     New_Bit_0, al <br>                pop     eax <br>                ret      <br>Vertical_Roter_Down     endp <br>;_______________________________________________________________________<br><br>Vertical_Roter_Up       proc <br>                push    eax <br>                xor     eax, eax <br>                mov     al, Bit_7 <br>                mov     New_Bit_6, al <br>                mov     al, Bit_6 <br>                mov     New_Bit_5, al <br>                mov     al, Bit_5 <br>                mov     New_Bit_4, al <br>                mov     al, Bit_4 <br>                mov     New_Bit_3, al <br>                mov     al, Bit_3 <br>                mov     New_Bit_2, al <br>                mov     al, Bit_2 <br>                mov     New_Bit_1, al <br>                mov     al, Bit_1  <br>                mov     New_Bit_0, al <br>                mov     al, Bit_0 <br>                mov     New_Bit_7, al       <br>                pop     eax <br>                ret      <br>Vertical_Roter_Up       endp <br>;_______________________________________________________________________<br>BSCAS_Shifr     proc     <br>                pusha    <br>Shifr_Octo_Byte:        <br>                push    edi                           ;Сохранить указател на ключ   <br>                push    ecx                           ;сахраним число входных блоков  <br>                xor     ebx, ebx                      ;Обнуляем регистры на всякие пожарные <br>                xor     eax, eax <br>                xor     edx, edx <br>                mov     cl, 08h                       ;8 блоков подключей  <br>Key_Block:              <br>                push    ecx                           ;сохранить число блоков  <br>                mov     cl, 08h                       ;число подключей <br>@Loop_Per_Key:                                        ;цикл   по прохаждению подключей <br>                push    ecx                           ;сохранить число подключей <br>                mov     al, byte ptr [edi + edx]      ;подключ в al <br>                mov     cl, 08h                       ;пробег по байту <br>@Loop_Per_Byte_Of_Key:   <br>                bt      ax, bx <br>                jc      _LeftOffset                   ;Бит установлен ?  <br>                call    Right_Offset                  ;Нет не установлен <br>                jmp     Next_Bit_Of_Key <br>_LeftOffset:            <br>                call    Left_Offset <br>Next_Bit_Of_Key:        <br>                inc     bx                            ;следущий бит ключа    <br>                loop    @Loop_Per_Byte_Of_Key <br>                xor     ebx, ebx                      ;обнулим индекс столбцов <br>                inc     edx                           ;увеличим индекс строк <br>                pop     ecx                           ;восстановим стчечик подключей <br>                loop    @Loop_Per_Key <br>                call    Xor_Blocks                    ;операция xor над блоками <br>                pop     ecx                           ;восстановим счетчик блоков <br>                xor     edx, edx                      ;обнулим индекс строк <br>                xor     ebx, ebx <br>                add     edi, 08h                      ;переместим указатель на следущий блок ключей <br>                loop    Key_Block <br>                pop     ecx                           ;восстановим число входных блоков <br>                pop     edi                           ;восстановим указатель на ключ  <br>                add     esi, 08h                      ;перейдем к следующему блоку     <br>                loop    Shifr_Octo_Byte <br>                popa     <br>                ret      <br>BSCAS_Shifr     endp     <br>;_______________________________________________________________________<br>BSCAS_Deshifr   proc     <br>                pusha    <br>                xor     eax, eax                     ;очищаем eax, edx, ebx ( мусор нам не нужен :) ) <br>                xor     ebx, ebx <br>                xor     edx, edx <br>                add     edi, 56                      ;перемещаем указатель на последний блок ключа                       <br>Deshifr_Octo_Byte:       <br>                push    ecx                          ;сохраняем число входных блоков  <br>                push    edi                          ;сохраняем указатель на ключ <br><br>                mov     cl, 08h                      ;число блоков подключей <br>Deshifr_Loop_Key_Block:  <br>                push    ecx                          ;сохраняем число блоков подключей <br>                                                     ;Начальная стадия         -       <br>                                         ;операции xor шифрованного блока с блоком подключей <br>                call    Xor_Blocks <br>                mov     cl, 08h                      ;количество подключей в блоке <br>                mov     dl, 07h                      ;начинаем снизу блока подключей  <br>Deshifr_Loop_Per_Key:    <br>                push    ecx                          ;сохраняем количество подключей <br>                mov     al, byte ptr [edi + edx]     ;подключ    <br>                mov     cl, 08h                      ;пробег по байту  <br>                mov     bl, 07h <br>Deshifr_Loop_Per_Byte_Of_Key:  <br>                bt      ax, bx                       ;Бит установлен ?   <br>                jc      _Deshifr_Up_Offset           ;Да установлен <br>                call    Deshifr_Down_Offset          ;Нет не установлен   <br>                jmp     _Deshifr_Inc <br>_Deshifr_Up_Offset:      <br>                call    Deshifr_Up_Offset   <br>_Deshifr_Inc:           <br>                dec     bx                           ;уменьшаем указатель сталбцов <br>                loop    Deshifr_Loop_Per_Byte_Of_Key <br><br>                xor     ebx, ebx                     ;устанавливаем индекс сталбцов в ноль  <br>                dec     edx                          ;уменьшаем  индекс строк  <br>                pop     ecx                          ;восстанавливаем количество подключей <br>                loop    Deshifr_Loop_Per_Key <br><br>                sub     edi, 08h                     ;переход к следующему блоку ключей  <br>                xor     edx, edx                     ;устанавливаем индекс строки в ноль <br>                pop     ecx                          ;Восстанавливаем количество блоков ключей <br>                loop    Deshifr_Loop_Key_Block  <br><br>                pop     edi                          ;восстанавливаем указатель на ключ <br>                pop     ecx                          ;восстанавливаем количество блоков к дешифрации <br>                loop    Deshifr_Octo_Byte <br>                popa     <br>                ret      <br>BSCAS_Deshifr   endp     <br>;_______________________________________________________________________<br>                                                     ;Автор разрешает использовать данный исходник <br>                                                     ;только при условии указания  авторства <br>                end     start<br><br><br>


                                          ничего не менял оставил все как есть... теперь возвращаемся к ключу 64 dup (0ffh)
                                          и твоему шифрованию... пожалуйста посмотри а то я может о великий теоретик Зверюга что-то перепутал...

                                          -----------
                                          тут я процитирую vot'а с небольшими изменениями... думаю он не будет против...
                                          -----------
                                          О Великий и Ужасный Zveruga!
                                          Падаем на колени перед тобой и просим милосердно простить нас,
                                          ламеров позорных! Прости, о Великий! Бес нас попутал!  

                                          Никогда больше мы и не подумаем ломать и ставить под сомнения твой божественый алгоритм шифрования.

                                          Мы очень сожалеем, что он оказался кривой....
                                          Слезно просим - больше не надо придумывать таких сложных алгоритмов...  

                                          Посыпаем голову пеплом,
                                            икренне потрясенные твоим могуществом,
                                            ламеры.
                                          -----------
                                            Цитата IX0DeS, 28.03.03, 15:46:01


                                            так привожу прогу полностью
                                            ExpandedWrap disabled
                                              <br>              pusha    <br>              call    BSCAS_Shifr<br>              popa     <br>              call    BSCAS_Deshifr<br>              .......<br>

                                            Я вот только понять не могу причем здесь pusha popa ??Здесь они нужны также как и собаке пятая нага.

                                            Цитата

                                            ничего не менял оставил все как есть... теперь возвращаемся к ключу 64 dup (0ffh)
                                            и твоему шифрованию... пожалуйста посмотри а то я может о великий теоретик Зверюга что-то перепутал...

                                            Deos я в принципе уже давно догадывался что ты полное трепло.Для чего ты клянчил у меня эти исходники что бы перековырять их и потом на весь форум кричать какой я полный ламер не умею пользаваться loop-ми.Так не делают.Или ты чуствуеш себя деловым и крутым  сидя у себя там в кресле в конторки и лажая то что сделали другие.
                                               
                                            Цитата

                                            -----------
                                            тут я процитирую vot'а с небольшими изменениями... думаю он не будет против...
                                            -----------


                                            Ты слишком много думаеш за других а еще больше п.. без дела на других не отвечая за треп.
                                              Цитата Zveruga, 28.03.03, 16:14:48

                                              Deos я в принципе уже давно догадывался что ты полное трепло.Для чего ты
                                              клянчил у меня эти исходники что бы перековырять их и потом на весь форум кричать

                                              я его "клянчил" чтобы посмотреть алгоритм...
                                              и нифига я не лажаю не надо наезжать...
                                              потом ты скажи я правильно пользуюсь твоим алгоритмом ? если да то почему не работает тогда ? если нет то покажи ошибку.
                                              Цитата

                                              какой я полный ламер не умею пользаваться loop-ми.Так не делают.Или ты чуствуеш
                                              себя деловым и крутым  сидя у себя там в кресле в конторки и лажая то что сделали другие.
                                              Ты слишком много думаеш за других а еще больше п.. без дела на других не отвечая за треп.

                                              и такого я тоже не говорил... а то что ты там навоображал это твои проблемы....

                                              Цитата



                                              Ты слишком много думаеш за других а еще больше п.. без дела на других не отвечая за треп.



                                              по моему я не переходил на личности  и не ругался на тебя матом!

                                              я еще раз спрашиваю КАК МНЕ расшифровать ТРИ БЛОКА. и почему когда я использую ключ состоящий из 0xFF изменяются только первый и последний символ ? можешь нормально ответить? прогу я привел с которой я провожу все махинации... что нет так ПОКАЖИ plz!
                                              1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                              0 пользователей:


                                              Рейтинг@Mail.ru
                                              [ Script execution time: 0.1193 ]   [ 14 queries used ]   [ Generated: 25.10.26, 14:44 GMT ]