wiki:PythonCamellia

Version 2 (modified by sgk, 13 years ago) (diff)

--

Camellia暗号Python版

 NTTと三菱電機が開発したCamellia暗号がオープンソースになったので、Pythonに移植してみました。Pure Pythonなので、そんなに速くないです。

  • BSD風ライセンス。
  • APIはほぼオリジナルどおりです。若干、Python風に変更しました。
  • オリジナルのC版から移植しました(Java版は鍵長が128ビットに固定なんです)。
  • 鍵長は128、192、256ビット。
  • だいぶ作りを変えましたが、簡単なテストは行ってあります。
  • オリジナルどおりのAPIなので、単に128ビット(16バイト)ブロックの暗号化復号化ができるだけです。
  • ある程度は処理速度を考えてありますが、全部Pythonなのでそれほど速くないでしょう。
  • ベンチマークやってません。
  • 簡単なテストしかやってありません。

ダウンロード

すみません。パッケージはこれから準備します。

Camelliaそのものについて

詳しくは Camelliaのサイトをご覧下さい。

  • NTTと三菱電機が開発し、特許を保有している。
  • 2006/4/13より、特許使用契約不要、リファレンス実装がオープンソースに。
  • ブロック暗号。ブロック長は128ビット。鍵長は128、192、256ビットから選べる。
  • 速い、らしい。
  • AESと同等の速度、安全性。
  • S/MIME、XML、SSL/TLS、IPsec用標準暗号

ライセンスについて

BSD風ライセンスです。詳しくはソース自体をご覧下さい。オリジナルはBSD風、GPL、MPL風、OpenSSL風から選べるという贅沢ななものですが、今回はBSD風版のCのソースを見ながら書いたので、BSD風に固定です。オリジナル、なぜかライセンスごとにソースファイルが別々なんですよ。コード自体は同じ物のようなんですが。1つのソースの頭に複数のライセンスを書いておけばいいのに。

このあとやること

  • 暗号化モード(CBCとか)
  •  PyCrypto互換API
  • チューニング
  • C版をそのままネイティブモジュール化してみる

リンク