├── .github └── workflows │ └── ci.yml ├── .gitignore ├── .vscode └── settings.json ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── benchmark ├── .gitignore ├── README.md ├── _clang-format ├── cross-tools │ ├── adb-exe-wrapper │ ├── android-aarch64.xcompile │ ├── qemu-aarch64.xcompile │ └── setup-build ├── gen_graph.py ├── meson.build └── src │ ├── aarch64 │ └── polyval-ce-core.S │ ├── aes.c │ ├── aes.h │ ├── asm_common.h │ ├── cipher_benchmark_template.h │ ├── cipherbench.c │ ├── cipherbench.h │ ├── hash_benchmark_template.h │ ├── hctr2.c │ ├── hctr2_testvecs.h │ ├── polyval.c │ ├── polyval.h │ ├── testvec.h │ ├── util.h │ ├── x86_64 │ └── polyval-clmulni_asm.S │ ├── xctr.c │ ├── xctr.h │ └── xts.c ├── paper ├── .gitignore ├── algorithm.tex ├── bib.bib ├── build.sh ├── casetable.tex ├── defines.tex ├── design.tex ├── hctr2.tex ├── hctr2fig.tex ├── hctrissues.tex ├── implementation.tex ├── injective.tex ├── introduction.tex ├── mainlemma.tex ├── polyvalimpl.tex ├── security.tex ├── slides.tex ├── specification.tex └── tikzlibrarygroupops.code.tex ├── python ├── .gitignore ├── cipherlist.py ├── ciphers │ ├── aes.py │ ├── cipher.py │ ├── gf.py │ ├── hctr2.py │ ├── polyval.py │ └── xctr.py ├── hexjson.py ├── inputgen.py ├── parsers │ └── polyval.py ├── testvec_tool ├── tvgen.py ├── tvstore.py ├── writers │ └── cstruct.py └── xminusn ├── test_vectors ├── converted │ ├── .gitignore │ └── cstruct │ │ ├── hctr2_testvecs.c │ │ ├── hctr2_testvecs.h │ │ ├── polyval_testvecs.c │ │ ├── polyval_testvecs.h │ │ ├── xctr_testvecs.c │ │ └── xctr_testvecs.h ├── external │ ├── polyval.txt │ └── sources └── ours │ ├── HCTR2 │ ├── HCTR2_AES128.json │ ├── HCTR2_AES192.json │ └── HCTR2_AES256.json │ ├── Polyval │ └── Polyval.json │ └── XCTR │ ├── XCTR_AES128.json │ ├── XCTR_AES192.json │ └── XCTR_AES256.json └── third_party └── linux-kernel ├── COPYING ├── LICENSE ├── aarch64 ├── aes-ce.S └── aes-modes.S ├── aes_linux.h ├── aes_ti.c ├── gf128.c ├── gf128.h └── x86_64 ├── aes_ctrby8_avx-x86_64.S └── aesni-intel_asm.S /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | scratch 2 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/README.md -------------------------------------------------------------------------------- /benchmark/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/.gitignore -------------------------------------------------------------------------------- /benchmark/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/README.md -------------------------------------------------------------------------------- /benchmark/_clang-format: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/_clang-format -------------------------------------------------------------------------------- /benchmark/cross-tools/adb-exe-wrapper: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/cross-tools/adb-exe-wrapper -------------------------------------------------------------------------------- /benchmark/cross-tools/android-aarch64.xcompile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/cross-tools/android-aarch64.xcompile -------------------------------------------------------------------------------- /benchmark/cross-tools/qemu-aarch64.xcompile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/cross-tools/qemu-aarch64.xcompile -------------------------------------------------------------------------------- /benchmark/cross-tools/setup-build: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/cross-tools/setup-build -------------------------------------------------------------------------------- /benchmark/gen_graph.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/gen_graph.py -------------------------------------------------------------------------------- /benchmark/meson.build: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/meson.build -------------------------------------------------------------------------------- /benchmark/src/aarch64/polyval-ce-core.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/src/aarch64/polyval-ce-core.S -------------------------------------------------------------------------------- /benchmark/src/aes.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/src/aes.c -------------------------------------------------------------------------------- /benchmark/src/aes.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/src/aes.h -------------------------------------------------------------------------------- /benchmark/src/asm_common.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/src/asm_common.h -------------------------------------------------------------------------------- /benchmark/src/cipher_benchmark_template.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/src/cipher_benchmark_template.h -------------------------------------------------------------------------------- /benchmark/src/cipherbench.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/src/cipherbench.c -------------------------------------------------------------------------------- /benchmark/src/cipherbench.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/src/cipherbench.h -------------------------------------------------------------------------------- /benchmark/src/hash_benchmark_template.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/src/hash_benchmark_template.h -------------------------------------------------------------------------------- /benchmark/src/hctr2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/src/hctr2.c -------------------------------------------------------------------------------- /benchmark/src/hctr2_testvecs.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/src/hctr2_testvecs.h -------------------------------------------------------------------------------- /benchmark/src/polyval.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/src/polyval.c -------------------------------------------------------------------------------- /benchmark/src/polyval.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/src/polyval.h -------------------------------------------------------------------------------- /benchmark/src/testvec.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/src/testvec.h -------------------------------------------------------------------------------- /benchmark/src/util.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/src/util.h -------------------------------------------------------------------------------- /benchmark/src/x86_64/polyval-clmulni_asm.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/src/x86_64/polyval-clmulni_asm.S -------------------------------------------------------------------------------- /benchmark/src/xctr.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/src/xctr.c -------------------------------------------------------------------------------- /benchmark/src/xctr.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/src/xctr.h -------------------------------------------------------------------------------- /benchmark/src/xts.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/benchmark/src/xts.c -------------------------------------------------------------------------------- /paper/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/.gitignore -------------------------------------------------------------------------------- /paper/algorithm.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/algorithm.tex -------------------------------------------------------------------------------- /paper/bib.bib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/bib.bib -------------------------------------------------------------------------------- /paper/build.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/build.sh -------------------------------------------------------------------------------- /paper/casetable.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/casetable.tex -------------------------------------------------------------------------------- /paper/defines.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/defines.tex -------------------------------------------------------------------------------- /paper/design.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/design.tex -------------------------------------------------------------------------------- /paper/hctr2.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/hctr2.tex -------------------------------------------------------------------------------- /paper/hctr2fig.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/hctr2fig.tex -------------------------------------------------------------------------------- /paper/hctrissues.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/hctrissues.tex -------------------------------------------------------------------------------- /paper/implementation.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/implementation.tex -------------------------------------------------------------------------------- /paper/injective.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/injective.tex -------------------------------------------------------------------------------- /paper/introduction.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/introduction.tex -------------------------------------------------------------------------------- /paper/mainlemma.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/mainlemma.tex -------------------------------------------------------------------------------- /paper/polyvalimpl.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/polyvalimpl.tex -------------------------------------------------------------------------------- /paper/security.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/security.tex -------------------------------------------------------------------------------- /paper/slides.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/slides.tex -------------------------------------------------------------------------------- /paper/specification.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/specification.tex -------------------------------------------------------------------------------- /paper/tikzlibrarygroupops.code.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/paper/tikzlibrarygroupops.code.tex -------------------------------------------------------------------------------- /python/.gitignore: -------------------------------------------------------------------------------- 1 | **/__pycache__ -------------------------------------------------------------------------------- /python/cipherlist.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/python/cipherlist.py -------------------------------------------------------------------------------- /python/ciphers/aes.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/python/ciphers/aes.py -------------------------------------------------------------------------------- /python/ciphers/cipher.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/python/ciphers/cipher.py -------------------------------------------------------------------------------- /python/ciphers/gf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/python/ciphers/gf.py -------------------------------------------------------------------------------- /python/ciphers/hctr2.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/python/ciphers/hctr2.py -------------------------------------------------------------------------------- /python/ciphers/polyval.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/python/ciphers/polyval.py -------------------------------------------------------------------------------- /python/ciphers/xctr.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/python/ciphers/xctr.py -------------------------------------------------------------------------------- /python/hexjson.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/python/hexjson.py -------------------------------------------------------------------------------- /python/inputgen.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/python/inputgen.py -------------------------------------------------------------------------------- /python/parsers/polyval.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/python/parsers/polyval.py -------------------------------------------------------------------------------- /python/testvec_tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/python/testvec_tool -------------------------------------------------------------------------------- /python/tvgen.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/python/tvgen.py -------------------------------------------------------------------------------- /python/tvstore.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/python/tvstore.py -------------------------------------------------------------------------------- /python/writers/cstruct.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/python/writers/cstruct.py -------------------------------------------------------------------------------- /python/xminusn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/python/xminusn -------------------------------------------------------------------------------- /test_vectors/converted/.gitignore: -------------------------------------------------------------------------------- 1 | linux 2 | -------------------------------------------------------------------------------- /test_vectors/converted/cstruct/hctr2_testvecs.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/test_vectors/converted/cstruct/hctr2_testvecs.c -------------------------------------------------------------------------------- /test_vectors/converted/cstruct/hctr2_testvecs.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/test_vectors/converted/cstruct/hctr2_testvecs.h -------------------------------------------------------------------------------- /test_vectors/converted/cstruct/polyval_testvecs.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/test_vectors/converted/cstruct/polyval_testvecs.c -------------------------------------------------------------------------------- /test_vectors/converted/cstruct/polyval_testvecs.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/test_vectors/converted/cstruct/polyval_testvecs.h -------------------------------------------------------------------------------- /test_vectors/converted/cstruct/xctr_testvecs.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/test_vectors/converted/cstruct/xctr_testvecs.c -------------------------------------------------------------------------------- /test_vectors/converted/cstruct/xctr_testvecs.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/test_vectors/converted/cstruct/xctr_testvecs.h -------------------------------------------------------------------------------- /test_vectors/external/polyval.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/test_vectors/external/polyval.txt -------------------------------------------------------------------------------- /test_vectors/external/sources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/test_vectors/external/sources -------------------------------------------------------------------------------- /test_vectors/ours/HCTR2/HCTR2_AES128.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/test_vectors/ours/HCTR2/HCTR2_AES128.json -------------------------------------------------------------------------------- /test_vectors/ours/HCTR2/HCTR2_AES192.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/test_vectors/ours/HCTR2/HCTR2_AES192.json -------------------------------------------------------------------------------- /test_vectors/ours/HCTR2/HCTR2_AES256.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/test_vectors/ours/HCTR2/HCTR2_AES256.json -------------------------------------------------------------------------------- /test_vectors/ours/Polyval/Polyval.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/test_vectors/ours/Polyval/Polyval.json -------------------------------------------------------------------------------- /test_vectors/ours/XCTR/XCTR_AES128.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/test_vectors/ours/XCTR/XCTR_AES128.json -------------------------------------------------------------------------------- /test_vectors/ours/XCTR/XCTR_AES192.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/test_vectors/ours/XCTR/XCTR_AES192.json -------------------------------------------------------------------------------- /test_vectors/ours/XCTR/XCTR_AES256.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/test_vectors/ours/XCTR/XCTR_AES256.json -------------------------------------------------------------------------------- /third_party/linux-kernel/COPYING: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/third_party/linux-kernel/COPYING -------------------------------------------------------------------------------- /third_party/linux-kernel/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/third_party/linux-kernel/LICENSE -------------------------------------------------------------------------------- /third_party/linux-kernel/aarch64/aes-ce.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/third_party/linux-kernel/aarch64/aes-ce.S -------------------------------------------------------------------------------- /third_party/linux-kernel/aarch64/aes-modes.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/third_party/linux-kernel/aarch64/aes-modes.S -------------------------------------------------------------------------------- /third_party/linux-kernel/aes_linux.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/third_party/linux-kernel/aes_linux.h -------------------------------------------------------------------------------- /third_party/linux-kernel/aes_ti.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/third_party/linux-kernel/aes_ti.c -------------------------------------------------------------------------------- /third_party/linux-kernel/gf128.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/third_party/linux-kernel/gf128.c -------------------------------------------------------------------------------- /third_party/linux-kernel/gf128.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/third_party/linux-kernel/gf128.h -------------------------------------------------------------------------------- /third_party/linux-kernel/x86_64/aes_ctrby8_avx-x86_64.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/third_party/linux-kernel/x86_64/aes_ctrby8_avx-x86_64.S -------------------------------------------------------------------------------- /third_party/linux-kernel/x86_64/aesni-intel_asm.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/hctr2/HEAD/third_party/linux-kernel/x86_64/aesni-intel_asm.S --------------------------------------------------------------------------------