0Pricing
Cryptology Academy · Урок

Повторение побитовых операций

Наглядно изучите операции AND, OR, XOR, NOT и побитового сдвига

«Повторение побитовых операций» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Добро пожаловать

Побитовые операции работают непосредственно с двоичными представлениями чисел. Это фундаментальные операции внутри каждого симметричного шифра, хеш-функции и MAC.

Операция AND

Операция AND возвращает 1 только в случае, когда BOTH бита равны 1. 0101 AND 0011 = 0001 Применение: маскирование — извлечение определённых битов. mask = 0xFF; low_byte = value & mask

Операция OR

Операция OR возвращает 1, когда AT LEAST ONE бит равен 1. 0101 OR 0011 = 0111 Применение: установка определённых битов. flags = flags | 0x04 # set bit 2

Операция XOR

Операция XOR возвращает 1, когда биты DIFFERENT. 0101 XOR 0011 = 0110 Ключевое свойство: A XOR A = 0, A XOR 0 = A. XOR является сам обратной операцией: (A XOR B) XOR B = A

Операция NOT

Операция NOT инвертирует каждый бит. NOT 0101 = 1010 (в контексте 4 бит) Python: ~5 == -6 (из-за дополнительного кода) Для беззнаковых чисел: ~x & 0xFF ограничивает значение 8 битами

Сдвиг влево (<<)

Сдвиг влево перемещает все биты на n позиций влево, заполняя освободившиеся позиции справа нулями. 0001 << 3 = 1000 (= 8) a << n эквивалентно a × 2^n Используется в развёртывании ключа и операциях перемешивания.

Сдвиг вправо (>>)

Сдвиг вправо перемещает биты вправо, отбрасывая младшие биты. 1000 >> 2 = 0010 (= 2) a >> n эквивалентно a ÷ 2^n (с округлением вниз) Используется для извлечения полубайтов: (byte >> 4) & 0x0F

Вращение (ROTL/ROTR)

При вращении биты циклически перемещаются, а не отбрасываются. ROTL32(x, n) = (x << n) | (x >> (32-n)) Используется в SHA-256, AES MixColumns и четвертьраунде ChaCha20.

Приём с обменом через XOR

XOR позволяет обмениваться значениями без временной переменной: a ^= b b ^= a a ^= b Теперь значения a и b поменялись местами. Используется в некоторых реализациях шифров для повышения эффективности.

Примеры побитовых операций в Python

a = 0b10110011 b = 0b11001100 print(bin(a & b)) # 0b10000000 print(bin(a | b)) # 0b11111111 print(bin(a ^ b)) # 0b01111111 print(bin(~a & 0xFF)) # 0b01001100

Подсчёт битов

bin(n).count('1') подсчитывает установленные биты (вес Хэмминга). Расстояние Хэмминга между двумя словами — это количество различающихся битов; оно играет важную роль в исправлении ошибок и анализе различий.

Быстрая проверка

Чему равно 0b1010 XOR 0b1100 в двоичной системе?

Итоги

Вы освоили побитовые операции! Далее Вы используете XOR для построения схемы шифрования и узнаете о совершенной секретности одноразового блокнота.

Часто задаваемые вопросы

Урок «Повторение побитовых операций» бесплатный?

Да — полный текст урока «Повторение побитовых операций» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «Повторение побитовых операций»?

Наглядно изучите операции AND, OR, XOR, NOT и побитового сдвига Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Повторение побитовых операций»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Повторение побитовых операций
  2. Шифрование XOR и одноразовый блокнот
  3. Почему одного XOR недостаточно для безопасности
  4. XOR внутри AES и потоковых шифров
← Назад к Cryptology Academy