■暗号技術【ROUNDsurea】■at TECH
■暗号技術【ROUNDsurea】■ - 暇つぶし2ch205:デフォルトの名無しさん
10/09/22 06:25:10
ハッシュ関数作りました。評価してみてください。

void hash(int nn){


while(k<nn){
c1.cc[0]=((c1.cc[0]+u.cc[0])&f2)^c1.cc[1];
c1.cc[1]=((c1.cc[1]+u.cc[1])&f2)^c1.cc[2];
c1.cc[2]=((c1.cc[2]+u.cc[2])&f2)^c1.cc[3];
c1.cc[3]=((c1.cc[3]+u.cc[3])&f2)^c1.cc[0];

c2.cc[0]=((c2.cc[0]+u.cc[0])&f2)^c2.cc[1];
c2.cc[1]=((c2.cc[1]+u.cc[1])&f2)^c2.cc[2];
c2.cc[2]=((c2.cc[2]+u.cc[2])&f2)^c2.cc[3];
c2.cc[3]=((c2.cc[3]+u.cc[3])&f2)^c2.cc[0];

z=(c1.dd[0]&&ff)^((c1.dd[1]&ff)>>4);
c1.dd[0]=c1.dd[0]&f; c1.dd[1]=c1.dd[1]&f;
i=c1.cc[0]%64;
c1.dd[0]^=g[i][0]; c1.dd[1]^=g[i][1];
c1.dd[0]^= z; c1.dd[1]^= ~z;
i=c2.dd[0]%64;
zz=(c2.dd[0]&&ff)^((c2.dd[1]&ff)>>4);
c2.dd[0]=c2.dd[0]&f; c2.dd[1]=c2.dd[1]&f;
c2.dd[0]^=g[i][0]; c2.dd[1]^=g[i][1];
c1=s5(c1); c2=s5(c2);
c2.dd[0]^=zz; c2.dd[1]^=~zz;
printf("%04x %04x %04x %04x %04x %04x %04x %04x\n",c1.cc[0],c1.cc[1],c1.cc[2],c1.cc[3],c2.cc[0],c2.cc[1],c2.cc[2],c2.cc[3]);
k++;
}

}


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch