Aes

計數器生成的 AES-GCM 隨機數

  • October 24, 2020

我正在嘗試為 AES-GCM 生成隨機數。我知道人們通常通過 Counters 和 LFSRs 生成它。我對計數器的含義感到困惑。那是指計數器(CTR)嗎?為什麼它可以生成唯一的 nonce?

計數器儲存值,通常具有清除、設置和遞增功能。通過使用具有足夠大小的整數或使用 JavaBigInteger或用於 C/C++ 的 Gnu/GMP 之類的庫,可以非常輕鬆地在軟體中實現計數器。

  • clear()使所有位為零:unsigned int counter=0
  • set(y)將計數器值設置為ycounter = y
  • increment()將目前值增加 1;counter++

對於 GCM,需要 32 位計數器和總共 128 位的 CTR 模式計數器和 96 位隨機數。

取一個 128 位無符號整數並初始化為零。然後GCM會像這樣使用它 $ J_0 = IV || 0^{31} ||1 $ 所以在執行過程中,你需要複製計數器,將 32 左移,然後與0x01.

引用自:https://crypto.stackexchange.com/questions/79890