0Pricing
Cryptology Academy · レッスン

ビット演算の復習

AND、OR、XOR、NOT、ビットシフト演算を視覚的に学びます。

「ビット演算の復習」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。

ようこそ

ビット演算は、数値の2進表現を直接操作します。これらは、あらゆる共通鍵暗号、ハッシュ関数、MACの内部で使われる基本的な演算です。

AND演算

ANDは、両方のビットが1の場合にのみ1を返します。 0101 AND 0011 = 0001 使用例: マスキング — 特定のビットを抽出します。 mask = 0xFF; low_byte = value & mask

OR演算

ORは、少なくとも一方のビットが1の場合に1を返します。 0101 OR 0011 = 0111 使用例: 特定のビットをセットします。 flags = flags | 0x04 # set bit 2

XOR演算

XORは、ビットが異なる場合に1を返します。 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(2の補数による結果です) 符号なし整数の場合: ~x & 0xFF で8ビットにマスクします

左シフト (<<)

左シフトはすべてのビットをn個左へ移動し、右側を0で埋めます。 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のquarter-roundで使用されます。

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')`はセットされているビット数(ハミング重み)を数えます。2つのワード間のハミング距離は、異なるビットの数です。これは誤り訂正や差分解析で重要です。

確認問題

0b1010 XOR 0b1100を2進数で表すといくつになりますか?

まとめ

ビット演算を習得しました。次はXORを使って暗号方式を構築し、ワンタイムパッドの完全秘匿性について学びます。

よくある質問

「ビット演算の復習」レッスンは無料ですか?

はい。「ビット演算の復習」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。

「ビット演算の復習」で何を学びますか?

AND、OR、XOR、NOT、ビットシフト演算を視覚的に学びます。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cryptology Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「ビット演算の復習」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCryptology Academyレッスンでコードを書いて実行できますか?

はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ビット演算の復習
  2. XOR暗号とワンタイムパッド
  3. XORだけでは安全でない理由
  4. AESとストリーム暗号におけるXOR
← Cryptology Academyに戻る