WiMAX Bootstrap Security 中用到的 AES-CCM 演算法 C 語言源碼

來源:互聯網
上載者:User

http://www.deadhat.com/wmancrypto/index.html


802.16 AES-CCM Algorithms David Johnston

The files on this page contain simple ANSI C implementations of algorithms related to the 802.16 and 802.16e security protocols. They are not designed for efficiency, they are designed to be clear, simple and useful as unambiguous documentation for the algorithms in the specifications. Please feel free to use them as you see fit.

They are all stand alone C files. I compile them on Linux using 'gcc {filename}.c'.

These are all independent implementations, derived directly from the algorithm specifications. Hence they may be used as independent verification of other implementations.

If there appears to be only a very small number of programs, its because I haven't written any others yet. I might never get around to it. AES 128 bit Key, 128 bit Data Block Cipher Algorithm

This code contains a fixed key size (128 bit), fixed data size (128 bit) AES block cipher with test vectors.

It takes a 128 bit data block, a 128 bit key and produces a ciphertext block according to the NIST AES standard. This is the block cipher that is used in 802.11i.

aes128k128d.c 802.16-2004 style AES-CCM Encryption and decryption

V0.2 alters the nonce construction to match 802.16-2004. The PN and ICV is still little endian, contrary to the changes in Corr1-D1. Corr1-D1 is wrong and the changes need to be removed, so I've declined to make a Corr1-D1 version. It's about time I checked against the final Corrigendum, but I haven't .

ieee_dot16_ccm_0.2.c

This code generates example vectors of MPDUs being encrypted and decrypted according to the 802.16 AES-CCM based link cipher. The Nonce construction is as I originally conceived it.

ieee_dot16_ccm_0.1.c AES_KEY_WRAP

This code is just the basic AES Key Wrap algorithm. I need to do one running over a TEK exchange response packet.

aes_key_wrap_0.1.c CMAC

This code is the CMAC (formerly known as OMAC) algorithm used in the PKMv2 dot16KDF function. It appears to match the NIST specs.

cmac_0.1.c dot16KDF

This code implements the PKMv2 dot16KDF function and runs vectors through it that appear to match Samsung's vectors. It reverses the definition of 'rightmost' as used in the 0.1 version below.

dot16kdf_0.2.c

This code implements the old and wrong interpretation of the PKMv2 dot16KDF function and runs three example vectors through it.

dot16kdf_0.1.c

TBD: CMAC used in the CMAC tuple, HMAC, HMAC used in HMAC tuple, dot16KDF-HMAC, AK derivation, DES stuff. I'm not doing the public key stuff. It's already fairly generic.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.