Skip to content

peihongch/crypto-cuda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

crypto-cuda

Crypto implementation in NVIDIA CUDA, including block cipher, shash and xts_hmac so far.

Getting Started

Block Cipher

# build project
make gaes_xts # or make gaes_xts_debug for debug

# run test
./gaes_xts

output:

key_bit 128: 
	input  :   0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01
	encrypt  :   0x05 0xdc 0x9d 0x42 0x81 0x81 0x01 0xe2 0x93 0x93 0xec 0xb3 0xb4 0xbb 0xd0 0x54
	decrypt  :   0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01
key_bit 192: 
	input  :   0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01
	encrypt  :   0x8e 0xca 0x96 0xf2 0x26 0xf4 0x69 0x59 0xdd 0xb3 0x1e 0xa2 0x97 0x0f 0x7c 0x6f
	decrypt  :   0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01
key_bit 256: 
	input  :   0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01
	encrypt  :   0xf0 0xd9 0x22 0x24 0x1b 0xb0 0xef 0xe6 0x44 0x6b 0x6c 0xef 0x63 0x68 0x4c 0x13
	decrypt  :   0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01

XTS-HMAC

# build project
make gxts_hmac

# run test
./gxts_hmac

output:

input    :   01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
encrypt  :   f0 d9 22 24 1b b0 ef e6 44 6b 6c ef 63 68 4c 13
  └─mac  :   d3 ae 9a b9 78 70 0a 61 2a 15 67 d2 ae 3f 02 05 f9 06 dd 97 58 7c 91 de 2a fd 9f 5a bc 8f f2 86
decrypt  :   01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
  └─mac  :   d3 ae 9a b9 78 70 0a 61 2a 15 67 d2 ae 3f 02 05 f9 06 dd 97 58 7c 91 de 2a fd 9f 5a bc 8f f2 86

Shash

# build project
make ghmac_sha 

# run test
./ghmac_sha

output:

Test 1: 
        HMAC-SHA1 test: 
                expect: B617318655057264E28BC0B6FB378C8EF146BE00
                actual: B617318655057264E28BC0B6FB378C8EF146BE00
        HMAC-SHA224 test: 
                expect: 896FB1128ABBDF196832107CD49DF33F47B4B1169912BA4F53684B22
                actual: 896FB1128ABBDF196832107CD49DF33F47B4B1169912BA4F53684B22
        HMAC-SHA256 test: 
                expect: B0344C61D8DB38535CA8AFCEAF0BF12B881DC200C9833DA726E9376C2E32CFF7
                actual: B0344C61D8DB38535CA8AFCEAF0BF12B881DC200C9833DA726E9376C2E32CFF7
        HMAC-SHA384 test: 
                expect: AFD03944D84895626B0825F4AB46907F15F9DADBE4101EC682AA034C7CEBC59CFAEA9EA9076EDE7F4AF152E8B2FA9CB6
                actual: AFD03944D84895626B0825F4AB46907F15F9DADBE4101EC682AA034C7CEBC59CFAEA9EA9076EDE7F4AF152E8B2FA9CB6
        HMAC-SHA512 test: 
                expect: 87AA7CDEA5EF619D4FF0B4241A1D6CB02379F4E2CE4EC2787AD0B30545E17CDEDAA833B7D6B8A702038B274EAEA3F4E4BE9D914EEB61F1702E696C203A126854
                actual: 87AA7CDEA5EF619D4FF0B4241A1D6CB02379F4E2CE4EC2787AD0B30545E17CDEDAA833B7D6B8A702038B274EAEA3F4E4BE9D914EEB61F1702E696C203A126854

Test 2: 
        HMAC-SHA1 test: 
                expect: EFFCDF6AE5EB2FA2D27416D5F184DF9C259A7C79
                actual: EFFCDF6AE5EB2FA2D27416D5F184DF9C259A7C79
        HMAC-SHA224 test: 
                expect: A30E01098BC6DBBF45690F3A7E9E6D0F8BBEA2A39E6148008FD05E44
                actual: A30E01098BC6DBBF45690F3A7E9E6D0F8BBEA2A39E6148008FD05E44
        HMAC-SHA256 test: 
                expect: 5BDCC146BF60754E6A042426089575C75A003F089D2739839DEC58B964EC3843
                actual: 5BDCC146BF60754E6A042426089575C75A003F089D2739839DEC58B964EC3843
        HMAC-SHA384 test: 
                expect: AF45D2E376484031617F78D2B58A6B1B9C7EF464F5A01B47E42EC3736322445E8E2240CA5E69E2C78B3239ECFAB21649
                actual: AF45D2E376484031617F78D2B58A6B1B9C7EF464F5A01B47E42EC3736322445E8E2240CA5E69E2C78B3239ECFAB21649
        HMAC-SHA512 test: 
                expect: 164B7A7BFCF819E2E395FBE73B56E0A387BD64222E831FD610270CD7EA2505549758BF75C05A994A6D034F65F8F0E6FDCAEAB1A34D4A6B4B636E070A38BCE737
                actual: 164B7A7BFCF819E2E395FBE73B56E0A387BD64222E831FD610270CD7EA2505549758BF75C05A994A6D034F65F8F0E6FDCAEAB1A34D4A6B4B636E070A38BCE737

Test 3: 
        HMAC-SHA1 test: 
                expect: 125D7342B9AC11CD91A39AF48AA17B4F63F175D3
                actual: 125D7342B9AC11CD91A39AF48AA17B4F63F175D3
        HMAC-SHA224 test: 
                expect: 7FB3CB3588C6C1F6FFA9694D7D6AD2649365B0C1F65D69D1EC8333EA
                actual: 7FB3CB3588C6C1F6FFA9694D7D6AD2649365B0C1F65D69D1EC8333EA
        HMAC-SHA256 test: 
                expect: 773EA91E36800E46854DB8EBD09181A72959098B3EF8C122D9635514CED565FE
                actual: 773EA91E36800E46854DB8EBD09181A72959098B3EF8C122D9635514CED565FE
        HMAC-SHA384 test: 
                expect: 88062608D3E6AD8A0AA2ACE014C8A86F0AA635D947AC9FEBE83EF4E55966144B2A5AB39DC13814B94E3AB6E101A34F27
                actual: 88062608D3E6AD8A0AA2ACE014C8A86F0AA635D947AC9FEBE83EF4E55966144B2A5AB39DC13814B94E3AB6E101A34F27
        HMAC-SHA512 test: 
                expect: FA73B0089D56A284EFB0F0756C890BE9B1B5DBDD8EE81A3655F83E33B2279D39BF3E848279A722C806B485A47E67C807B946A337BEE8942674278859E13292FB
                actual: FA73B0089D56A284EFB0F0756C890BE9B1B5DBDD8EE81A3655F83E33B2279D39BF3E848279A722C806B485A47E67C807B946A337BEE8942674278859E13292FB

Test 4: 
        HMAC-SHA1 test: 
                expect: 4C9007F4026250C6BC8414F9BF50C86C2D7235DA
                actual: 4C9007F4026250C6BC8414F9BF50C86C2D7235DA
        HMAC-SHA224 test: 
                expect: 6C11506874013CAC6A2ABC1BB382627CEC6A90D86EFC012DE7AFEC5A
                actual: 6C11506874013CAC6A2ABC1BB382627CEC6A90D86EFC012DE7AFEC5A
        HMAC-SHA256 test: 
                expect: 82558A389A443C0EA4CC819899F2083A85F0FAA3E578F8077A2E3FF46729665B
                actual: 82558A389A443C0EA4CC819899F2083A85F0FAA3E578F8077A2E3FF46729665B
        HMAC-SHA384 test: 
                expect: 3E8A69B7783C25851933AB6290AF6CA77A9981480850009CC5577C6E1F573B4E6801DD23C4A7D679CCF8A386C674CFFB
                actual: 3E8A69B7783C25851933AB6290AF6CA77A9981480850009CC5577C6E1F573B4E6801DD23C4A7D679CCF8A386C674CFFB
        HMAC-SHA512 test: 
                expect: B0BA465637458C6990E5A8C5F61D4AF7E576D97FF94B872DE76F8050361EE3DBA91CA5C11AA25EB4D679275CC5788063A5F19741120C4F2DE2ADEBEB10A298DD
                actual: B0BA465637458C6990E5A8C5F61D4AF7E576D97FF94B872DE76F8050361EE3DBA91CA5C11AA25EB4D679275CC5788063A5F19741120C4F2DE2ADEBEB10A298DD

Test 5: 
        HMAC-SHA1 test: 
                expect: 4C1A03424B55E07FE7F27BE1
                actual: 4C1A03424B55E07FE7F27BE1
        HMAC-SHA224 test: 
                expect: 0E2AEA68A90C8D37C988BCDB9FCA6FA8
                actual: 0E2AEA68A90C8D37C988BCDB9FCA6FA8
        HMAC-SHA256 test: 
                expect: A3B6167473100EE06E0C796C2955552B
                actual: A3B6167473100EE06E0C796C2955552B
        HMAC-SHA384 test: 
                expect: 3ABF34C3503B2A23A46EFC619BAEF897
                actual: 3ABF34C3503B2A23A46EFC619BAEF897
        HMAC-SHA512 test: 
                expect: 415FAD6271580A531D4179BC891D87A6
                actual: 415FAD6271580A531D4179BC891D87A6

Test 6: 
        HMAC-SHA1 test: 
                expect: AA4AE5E15272D00E95705637CE8A3B55ED402112
                actual: AA4AE5E15272D00E95705637CE8A3B55ED402112
        HMAC-SHA224 test: 
                expect: 95E9A0DB962095ADAEBE9B2D6F0DBCE2D499F112F2D2B7273FA6870E
                actual: 95E9A0DB962095ADAEBE9B2D6F0DBCE2D499F112F2D2B7273FA6870E
        HMAC-SHA256 test: 
                expect: 60E431591EE0B67F0D8A26AACBF5B77F8E0BC6213728C5140546040F0EE37F54
                actual: 60E431591EE0B67F0D8A26AACBF5B77F8E0BC6213728C5140546040F0EE37F54
        HMAC-SHA384 test: 
                expect: 4ECE084485813E9088D2C63A041BC5B44F9EF1012A2B588F3CD11F05033AC4C60C2EF6AB4030FE8296248DF163F44952
                actual: 4ECE084485813E9088D2C63A041BC5B44F9EF1012A2B588F3CD11F05033AC4C60C2EF6AB4030FE8296248DF163F44952
        HMAC-SHA512 test: 
                expect: 80B24263C7C1A3EBB71493C1DD7BE8B49B46D1F41B4AEEC1121B013783F8F3526B56D037E05F2598BD0FD2215D6A1E5295E64F73F63F0AEC8B915A985D786598
                actual: 80B24263C7C1A3EBB71493C1DD7BE8B49B46D1F41B4AEEC1121B013783F8F3526B56D037E05F2598BD0FD2215D6A1E5295E64F73F63F0AEC8B915A985D786598

Test 7: 
        HMAC-SHA1 test: 
                expect: E8E99D0F45237D786D6BBAA7965C7808BBFF1A91
                actual: E8E99D0F45237D786D6BBAA7965C7808BBFF1A91
        HMAC-SHA224 test: 
                expect: 3A854166AC5D9F023F54D517D0B39DBD946770DB9C2B95C9F6F565D1
                actual: 3A854166AC5D9F023F54D517D0B39DBD946770DB9C2B95C9F6F565D1
        HMAC-SHA256 test: 
                expect: 9B09FFA71B942FCB27635FBCD5B0E944BFDC63644F0713938A7F51535C3A35E2
                actual: 9B09FFA71B942FCB27635FBCD5B0E944BFDC63644F0713938A7F51535C3A35E2
        HMAC-SHA384 test: 
                expect: 6617178E941F020D351E2F254E8FD32C602420FEB0B8FB9ADCCEBB82461E99C5A678CC31E799176D3860E6110C46523E
                actual: 6617178E941F020D351E2F254E8FD32C602420FEB0B8FB9ADCCEBB82461E99C5A678CC31E799176D3860E6110C46523E
        HMAC-SHA512 test: 
                expect: E37B6A775DC87DBAA4DFA9F96E5E3FFDDEBD71F8867289865DF5A32D20CDC944B6022CAC3C4982B10D5EEB55C3E4DE15134676FB6DE0446065C97440FA8C6A58
                actual: E37B6A775DC87DBAA4DFA9F96E5E3FFDDEBD71F8867289865DF5A32D20CDC944B6022CAC3C4982B10D5EEB55C3E4DE15134676FB6DE0446065C97440FA8C6A58

About

Crypto implementation in NVIDIA CUDA

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published