Pull to refresh
31
0
Александр @Nostr

Защита информации

Send message
Можно не считать XOR последовательности от 1 до N, а воспользоваться следующим выражением:
int xor(int n)
{
    if (n % 4 == 0)
        return n;
 
    if (n % 4 == 1)
        return 1;
 
    if (n % 4 == 2)
        return n + 1;
 
    return 0;
}


Подробнее: stackoverflow

Или можно ещё проще: 1 ^ ... ^ n = (n >> 1) & 1 ^ (n&1 ? 1 : n)
А, вот вы о чем. Я понял. Да, хранить придется видимо…
Числа нужно брать большие, чтобы получить криптостойкий результат. Почему мы не сможем восстановить оригинальный номер? В данном алгоритме последовательность получается из одного или нескольких наименее значащих бит каждого из чисел.
Есть еще замечательные алгоритмы, наподобие Blum Blum Shub.
Он просто красив в своем исполнении. Доказано его сведение к Quadratic residuosity problem, что позволяет считать его криптографически стойким. + обладает возможностью получения произвольного элемента последовательности по номеру без вычисления предыдущих.
Скорость только не радует, но все-равно он шикарен.
В одном абзаце пол меняется по 3-4 раза.
Я извлёк… я решила… Я выбрал… Я применила ...
Может быть мой монитор не очень передает контраст, но на последней картинке синий-темнее и синий-светлее сложноразличимы.
Не имею отношения ни к организаторам SibirCTF ни к участникам, но могу высказать свое мнение по использованию жюрейки хакердома на региональных соревнованиях.
Дело в том, что формат начисления баллов через SLA, который дает огоньку на крупных турнирах вроде RuCTFE, не очень себя показывает на маленьких турнирах (порядка 10 команд) и особенно с командами новичками.
Проблемы динамики набора баллов и обнулений для команд с низким уровнем подготовки приводят к тому, что они «не понимают что происходит». Старая схема с attack+defence в этом контексте более применима.
Мы недавно писали им по поводу проблемы с капчей внутри виджетов. Исправили довольно оперативно.
Видимо зависит от разных факторов.
«входящая в десятку лучших мировых команд и в тройку мировых лидеров»

Что-то тут путаница какая-то. Может быть в тройку российских лидеров?
Перебирая все 256 вариантов C1'[16], мы натолкнемся гарантированно на такое значение, что P2'[16] будет равно 0x01.
Т.к. любой текст, заканчивающийся 0x01 является корректным — нам придет ответ 200.
Мы это детектируем и найдем I2[16]. Все это для того, чтобы I2 восстановить.
Мы пытаемся подобрать такой искусственный C1', что результат I2[16] ^ C1'[16] будет равен 0x01. ( ^ — это XOR)
Я про него и говорю. На coursera сейчас стоит сессия с 6 апреля по 22 мая. До этого стояло начало января, до этого ноябрь, до этого сентябрь, до этого июнь и.т.п.
Переносят уже года два.
Этих режимов огромное множество. Я выделил бы GCM или OCB (но на него вроде патент есть).
Замечательный курс. Очень жаль, что его продолжение уже два года задерживают.
Можно еще скрывать TXT файлы во вредоносном коде :)
Не вижу в этом ничего предосудительного в рамках данной задачи.
Решение
''.join([chr(int(c,16)) for c in base64.b64decode("NDggNjEgNzAgNzAgNzkgMjAgNDMgNmYgNmQgNzAgNzUgNzQgNjUgNzIgMjAgNTMgNjUgNjMgNzUgNzIgNjkgNzQgNzkgMjAgNDQgNjEgNzkgMjE=").split(' ')])
Если так дальше пойдет…

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity