Шифрование Vim: как повредить его?

Другой возможный подход заключается в использовании функций LAG() и LEAD(), которые возвращают данные из предыдущей и последующей строк, формирующих один и тот же результат.

-- Table
DECLARE @OrderDetail TABLE (
    Id int primary key,
    OrderId int,
    ItemId int,
    OrderDate DateTime2,
    Lookup varchar(15)
)
INSERT INTO @OrderDetail 
VALUES  
   (1, 10, 1, '2018-06-11', 'A'), 
   (2, 10, 2, '2018-06-11', 'BE'), --this
   (3, 2, 1, '2018-06-04', 'DR'),
   (4, 2, 2, '2018-06-04', 'D'),  --this
   (5, 3, 2, '2018-06-14', 'DD'), --this
   (6, 4, 2, '2018-06-14', 'R');

-- Item and order
DECLARE 
    @ItemId int = 2,
    @orderid int = 10

-- Statement    
-- Get previois and next ID for every order, grouped by ItemId, ordered by OrderDate
;WITH cte AS (
   SELECT
      Id,
      LAG(Id, 1) OVER (PARTITION BY ItemId ORDER BY OrderDate) previousId,
      LEAD(Id, 1) OVER (PARTITION BY ItemId ORDER BY OrderDate) nextId,
      ItemId,
      OrderId,
      Lookup
   FROM @OrderDetail   
)
-- Select current, previous and next order
SELECT od.*
FROM cte
CROSS APPLY (SELECT * FROM @OrderDetail WHERE Id = cte.Id) od
WHERE (cte.OrderId = @orderId) AND (cte.ItemId = @ItemId)
UNION ALL
SELECT od.*
FROM cte
CROSS APPLY (SELECT * FROM @OrderDetail WHERE Id = cte.previousId) od
WHERE (cte.OrderId = @orderId) AND (cte.ItemId = @ItemId)
UNION ALL
SELECT od.*
FROM cte
CROSS APPLY (SELECT * FROM @OrderDetail WHERE Id = cte.nextId) od
WHERE (cte.OrderId = @orderId) AND (cte.ItemId = @ItemId)

Выход:

Id  OrderId ItemId  OrderDate           Lookup
2   10      2       11/06/2018 00:00:00 BE
4   2       2       04/06/2018 00:00:00 D
5   3       2       14/06/2018 00:00:00 DD
31
задан Bill the Lizard 18 June 2010 в 12:40
поделиться

4 ответа

От документация VIM :

  • используемый алгоритм вскрываем. 4 клавиши символа приблизительно за один час, 6 клавиш символа за один день (на Pentium 133 пк). Это требует, чтобы Вы знали некоторый текст, который должен появиться в файле. Эксперт может повредить его для любого ключа. Когда текст был дешифрован, это также означает, что ключ может быть показан, и могут быть дешифрованы другие файлы, зашифрованные с тем же ключом.

, Если это было выполнимо на Pentium 133, я думаю, что у Вас есть очень хороший шанс. :)

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

23
ответ дан 27 November 2019 в 22:30
поделиться

Не уверенный, если это может помочь:

Нарушителя Склепа Объясняет, как повредить файл, зашифрованный со "склепом", мог бы дать Вам начальную точку (по крайней мере, с более старыми версиями vi, шифрование было основано на склепе).

7
ответ дан 27 November 2019 в 22:30
поделиться

Действительно ли возможно, что у Вас могли быть проблемы повреждения данных в дополнение к Вашим проблемам шифрования?

, Если бы я шел в грубую силу это, я думаю, что записал бы алгоритм, который начал бы пробовать все изменения паролей, которые я, возможно, привык перед хождением дальше для атак с подбором по словарю. Все же после слушания Вашей истории - у меня есть это нытье, чувствуя, что Вы не забыли своего пароля, а скорее была проблема повреждения данных где-нибудь по пути, которая испортила Ваш password/crypttext/cryptokey/whatever.

10
ответ дан 27 November 2019 в 22:30
поделиться

Это древнее сообщение группы новостей имело подобную проблему к Вашему:

Моя проблема состояла в том, что я случайно зашифровал сценарий с помощью vi и не мог вспомнить ключ. большое спасибо всем те, кто ответил.

Предложения были следующие:

  • использование vi-x и предположение ключ (я попробовал это без успеха)
  • пишут программу, которая выполняет вызов склепа и пробует вероятные сочетания клавиш. человек, который предложил это, счел, что потребуется приблизительно 5 минут для взламывания
  • загрузка, CWB (инструментальные средства прерывателей склепа) формируют архивы, которые помогут расколоться
  • , отправляют проблему на sci.crypt.newsgroup включая первые 128 байтов файла после шифрования и этих байтов перед шифрованием (если я мог бы помнить), и кто-то в группе мог бы расколоться, это для меня
  • перепечатывает сценарий

Один хлев, который Вы имеете к повреждению, это - Вы, знают, каков пароль "должен" был быть. Так, даже если бы у Вас была случайная опечатка, то она все еще немного напомнила бы Ваш намеченный пароль. Возможно, Вы могли запустить там, записать программу для генерации всех возможных комбинаций намеченного пароля с 1 или 2 символьными mispellings-дополнениями.

В любом случае, какое аккуратное осуществление / диверсия!

5
ответ дан 27 November 2019 в 22:30
поделиться