• 大小: 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


评论

共有 条评论

相关资源