NaCl (ソフトウェア)

セキュア通信及び暗号化のためのライブラリ

NaCl (Networking and Cryptography library、[ˈsɒlt]) は、セキュア通信暗号化、復号及びデジタル署名のための高速なライブラリである[3]パブリックドメインソフトウェアとして配布されている。

NaCl
作者
初版 2008年 (16年前) (2008)
最新版
20110221 / 2011年2月21日 (13年前) (2011-02-21)[1]
プログラミング
言語
対応OS Unix系
種別 暗号化ライブラリ
ライセンス パブリックドメイン[2]
公式サイト nacl.cr.yp.to ウィキデータを編集
テンプレートを表示

NaClはqmailCurve25519の開発で知られているイリノイ大学シカゴ校数学及び暗号学教授プログラマダニエル・バーンスタインによって開発された。 その他の主な開発者はタニア・ラング英語版[4]及びペーター・シュワーベ[5]である。 論文によると、NaClの開発時の主な目標は「以前の暗号化ライブラリが被った様々な種類の暗号災害を回避すること。」であった[2]

基本的な機能

編集

公開鍵暗号

編集
デジタル署名
Ed25519
鍵共有
Curve25519

共通鍵暗号

編集
認証付き暗号
Salsa20及びPoly1305
暗号化
Salsa20又はAES
認証
HMAC-SHA-512-256
ワンタイム認証
Poly1305

低レベルの機能

編集

実装

編集

リファレンス実装C言語で書かれており、インラインアセンブラも度々使用されている。 C++及びPythonはラッパーとして扱われる[9]

NaClにはPHP[10]などの様々なプログラミング言語向けの言語バインディングが存在する。 NaClは2013年に開発されたクロスプラットフォームの暗号化ライブラリであるlibsodiumの基盤であり、API互換性がある。

代替実装

編集
libsodium
作者 フランク・デニス
初版 2014年9月24日 (10年前) (2014-09-24)[11]
最新版
1.0.20 / 2024年5月25日 (5か月前) (2024-05-25)[12]
リポジトリ github.com/jedisct1/libsodium
プログラミング
言語
C言語
対応OS
種別 暗号化ライブラリ
ライセンス ISCライセンス[13]
公式サイト doc.libsodium.org
テンプレートを表示

脚注

編集
  1. ^ Installation”. nacl.cr.yp.to. 2020年12月1日閲覧。
  2. ^ a b The security impactof a new cryptographic library”. cr.yp.to (2012年7月25日). 2020年12月1日閲覧。
  3. ^ NaCl: Networking and Cryptography library”. nacl.cr.yp.to. 2020年12月1日閲覧。
  4. ^ Tanja Lange's homepage”. www.hyperelliptic.org. 2020年12月1日閲覧。
  5. ^ Peter Schwabe”. cryptojedi.org. 2020年12月1日閲覧。
  6. ^ Hashing: crypto_hash”. nacl.cr.yp.to. 2020年12月1日閲覧。
  7. ^ Algorithm details”. doc.libsodium.org. 2020年12月1日閲覧。
  8. ^ Bernstein, Daniel J. (2009年3月10日). “Cryptography in NaCl”. cr.yp.to. 2020年12月1日閲覧。
  9. ^ Internals”. nacl.cr.yp.to. 2020年12月1日閲覧。
  10. ^ pecl-nacl - GitHub
  11. ^ 1.0.0”. GitHub (2014年9月24日). 2020年12月1日閲覧。
  12. ^ Releases”. GitHub. 2024年10月4日閲覧。
  13. ^ License”. doc.libsodium.org. 2020年12月1日閲覧。

関連項目

編集

外部リンク

編集