コード例 #1
0
ファイル: SEED_test_KISA.c プロジェクト: cocojk/major
void main()
{
	DWORD pdwRoundKey[32];														// Round keys for encryption or decryption
	BYTE pbUserKey[16] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 		// User secret key
                        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
	BYTE pbData[16]    = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 		// input plaintext to be encrypted
                        0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F};
	int i;

// Print user secret key
	printf ("Key        : ");
	for (i=0;i<16;i++)	
		printf("%02X ",pbUserKey[i]);

// Print plaintext to be encrypted
	printf ("\nPlaintext  : ");
	for (i=0;i<16;i++)	
		printf("%02X ",pbData[i]);
		
// Derive roundkeys from user secret key
	SeedRoundKey(
		pdwRoundKey, 
		pbUserKey);
	
// Encryption
	printf ("\n\nEncryption....\n");
	SeedEncrypt(
		pbData, 
		pdwRoundKey);

// print encrypted data(ciphertext)
	printf ("Ciphertext : ");
	for (i=0;i<16;i++)	
		printf("%02X ",pbData[i]);

// Decryption
	printf ("\n\nDecryption....\n");
	SeedDecrypt(
		pbData, 
		pdwRoundKey);

// Print decrypted data(plaintext)
	printf ("Plaintext  : ");
	for (i=0;i<16;i++)	
		printf("%02X ",pbData[i]);

// Print round keys at round i
	printf ("\n\nRound Key  : \n");
	for (i=0;i<16;i++) {
		printf("K%2d,0 : %08X\t", i+1, pdwRoundKey[2*i]);
		printf("K%2d,1 : %08X\n", i+1, pdwRoundKey[2*i+1]);
	}
}
コード例 #2
0
void CMessageDispatcher::InitSEEDEncrypt()
{
	SeedRoundKey(pdwRoundKey, pbUserKey);
}