Changes between Version 7 and Version 8 of PythonCamellia


Ignore:
Timestamp:
05/09/06 10:06:01 (13 years ago)
Author:
sgk
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PythonCamellia

    v7 v8  
    7878特にこのように、Pythonの2.3と2.4とでは、32ビット整数の場合の`MSB`が`1`であるような整数の取り扱いが異なります。2.4では、小さい整数(32ビット整数)と長整数の区別が無く、必要に応じて使い分けられるそうです。アセンブラとか`C`とかからこの業界に入った者としては、どうも居心地が悪いですが、仕方ありません。ごちゃごちゃ考えてややこしい計算で高速化しようという悪あがきは、Pythonでは無駄というより逆効果です。具体的な対策は、全ての定数に`L`をつけるだけです。Python 2.4では無意味ですが、Python 2.3では必要です。 
    7979 
    80 鍵生成(`Ekeygen()`)での、定数表を使ったループ演算は、べた書きに変更しました。この方が見通しが明るい。ただ、タプルの足し算をたくさんやっているのが、効率の点で気になります。たぶん、タプルのオブジェクトを作ってはを繰り返してるんですよ。鍵生成はそんなにたくさんやることではないから、許してください。 
     80鍵生成(`Ekeygen()`)での、定数表を使ったループ演算は、べた書きに変更しました。この方が見通しが明るい。ただ、タプルの足し算をたくさんやっているのが、効率の点で気になります。たぶん、タプルのオブジェクトを作っては壊すを繰り返してるんですよ。鍵生成はそんなにたくさんやることではないから、許してください。 
    8181 
    8282暗号化と複合化のややこしいループも、べた書きに展開しました。かなりわかりやすくなったはずです。暗号の仕組みがちょっと見えた気がします。`feistel`の「-2オフセット」なんてのは`C`ならではであって、Pythonではできないので、`feistel1()`と`feistel2()`の二つを作って使い分けています。