-
大小: 169.62 KB文件類型: .rar金幣: 1下載: 0 次發布日期: 2024-09-21
- 語言: 其他
- 標簽:
資源簡介
本程序包括了一個頭文件kasumi.h和4個.c文件
代碼片段和文件信息
/*-------------------------------------------------------------------
*F8-Confidentiality?Algorithm
*-------------------------------------------------------------------
*
*A?sample?implementation?of?f8the?3GPP?Confidentiality?algorithm.
*
*This?has?been?coded?for?claritynot?necessarily?for?efficiency.
*
*This?will?compile?and?run?correctly?on?both?Intel(little?endian)
*and?Sparc(big?endian)machines.(Compilers?used?supported?32-bit?ints)
*
*Version?1.0?05?November?1999
*
*-------------------------------------------------------------------*/
#include“kasumi.h“
#include
/*---------------------------------------------------------
*f8()
*Given?keycountbearerdirectiondata
*and?bit?length?encrypt?the?bit?stream
*---------------------------------------------------------*/
void?f8(u8*keyint?countint?bearerint?diru8*dataint?length)
{
REGISTER64?A;/*the?modifier*/
REGISTER64?temp;/*The?working?register*/
int?in;
u8?ModKey[16];/*Modified?key*/
u16?blkcnt;/*The?block?counter*/
/*Start?by?building?our?global?modifier*/
temp.b32[0]=temp.b32[1]=0;
A.b32[0]=A.b32[1]=0;
/*initialise?register?in?an?endian?correct?manner*/
A.b8[0]=(u8)(count>>24);
A.b8[1]=(u8)(count>>16);
A.b8[2]=(u8)(count>>8);
A.b8[3]=(u8)(count);
A.b8[4]=(u8)(bearer<<3);
A.b8[4]|=(u8)(dir<<2);
/*Construct?the?modified?key?and?then“kasumi“A*/
for(n=0;n<16;++n)
ModKey[n]=(u8)(key[n]^0x55);
KeySchedule(ModKey);
Kasumi(A.b8);/*First?encryption?to?create?modifier*/
/*Final?initialisation?steps*/
blkcnt=0;
KeySchedule(key);
/*Now?run?the?block?cipher*/
while(length>0)
{
/*First?we?calculate?the?next?64-bits?of?keystream*/
/*XOR?in?A?and?BLKCNT?to?last?value*/
temp.b32[0]^=A.b32[0];
temp.b32[1]^=A.b32[1];
temp.b8[7]^=(u8)blkcnt;
temp.b8[6]^=(u8)(blkcnt>>8);
/*KASUMI?it?to?produce?the?next?block?of?keystream*/
Kasumi(temp.b8);
/*Setto?the?number?of?bytes?of?input?data*
*we?have?to?modify.(=8?if?length<=64)*/
if(length>=64)
n=8;
else
n=(length+7)/8;
/*XOR?the?keystream?with?the?input?data?stream*/
for(i=0;i *data++^=temp.b8[i];
length-=64;/*done?another?64?bits*/
++blkcnt;/*increment?BLKCNT*/
}
}
/*-----------------------------------------------------------
*e?n?d?o?f?f?8.c
*-----------------------------------------------------------*/
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2805??2009-07-02?15:32??算法源碼\Debug\f8.obj
?????文件???????3461??2009-07-02?15:40??算法源碼\Debug\f9.obj
?????文件???????8547??2009-07-02?15:25??算法源碼\Debug\kasumi.obj
?????文件?????159834??2009-07-02?15:58??算法源碼\Debug\main.exe
?????文件?????179352??2009-07-02?15:58??算法源碼\Debug\main.ilk
?????文件???????4469??2009-07-02?15:58??算法源碼\Debug\main.obj
?????文件?????164560??2009-07-02?15:32??算法源碼\Debug\main.pch
?????文件?????435200??2009-07-02?15:58??算法源碼\Debug\main.pdb
?????文件??????41984??2009-07-02?15:58??算法源碼\Debug\vc60.idb
?????文件??????53248??2009-07-02?15:58??算法源碼\Debug\vc60.pdb
?????文件???????2390??2009-07-02?15:26??算法源碼\f8.c
?????文件???????3272??2009-07-02?15:40??算法源碼\f9.c
?????文件???????7717??2009-07-02?15:22??算法源碼\kasumi.c
?????文件????????592??2009-07-02?15:04??算法源碼\kasumi.h
?????文件????????509??2009-07-02?15:58??算法源碼\main.c
?????文件???????3611??2009-07-02?15:26??算法源碼\main.dsp
?????文件????????533??2009-07-02?15:23??算法源碼\main.dsw
?????文件??????50176??2009-07-02?15:58??算法源碼\main.ncb
?????文件??????54784??2009-07-02?15:58??算法源碼\main.opt
?????文件????????242??2009-07-02?15:58??算法源碼\main.plg
?????目錄??????????0??2009-07-02?15:58??算法源碼\Debug
?????目錄??????????0??2009-07-02?15:58??算法源碼
-----------?---------??----------?-----??----
??????????????1177286????????????????????22
- 上一篇:Iris數據集分類,查看幾種分類方法的效率
- 下一篇:VC 實現三維旋轉(源碼)
評論
共有 條評論