<commit_before># 課題
ChaCha20による平文の暗号化を行います。
平文を64バイトのブロックに分割し、それぞれのブロックに対してカウンター値(初期値1)を上げながら、それぞれのChaCha20 Stateを計算します。

出来上がった ChaCha20 State の４バイト各要素のLittle Endianでつなげて KeyStream を生成します。

例えば、

ChaCha20 State
03020100 07060504 0b0a0908 0f0e0d0c
13121110 17161514 1b1a1918 1f1e1d1c
23222120 27262524 2b2a2928 2f2e2d2c
33323130 37363534 3b3a3938 3f3e3d3c

のKeyStreamは、

<KEY>

になります。

以下の初期パラメータで生成したChaCha state について

Key = <KEY>
Nonce = 000000000000004a00000000
Counter = 1

20 Round して状態変更した ChaCha20 Stateを計算して KeyStream を求めなさい。

KeyStreamは、16進数の文字列にして標準出力に出力しなさい。<commit_msg>fix description of KeyStream problem<commit_after># 課題
ChaCha20による平文の暗号化を行います。
平文を64バイトのブロックに分割し、それぞれのブロックに対してカウンター値(初期値1)を上げながら、それぞれのChaCha20 Stateを計算します。

出来上がった ChaCha20 State の４バイト各要素のLittle Endianでつなげて KeyStream を生成します。

例えば、

ChaCha20 State
03020100 07060504 0b0a0908 0f0e0d0c
13121110 17161514 1b1a1918 1f1e1d1c
23222120 27262524 2b2a2928 2f2e2d2c
33323130 37363534 3b3a3938 3f3e3d3c

のKeyStreamは、

000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f

になります。

以下の初期パラメータで生成したChaCha state について

Key = <KEY>
Nonce = 000000000000004a00000000
Counter = 1

20 Round の状態と初期状態の剰余和を取った ChaCha20 final Stateを計算して KeyStream に変換しなさい。

KeyStreamは、16進数の文字列にして標準出力に出力しなさい。
{'fraction_non_alphanumeric': 0.03476946334089191, 'fraction_numerical': 0.29931972789115646, 'mean_word_length': 9.030303030303031, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 6, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 4, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4927720', 'n_tokens_mistral': 1075, 'n_tokens_neox': 813, 'n_words': 106}