NaCl (ソフトウェア)
セキュア通信及び暗号化のためのライブラリ ウィキペディアから
NaCl (Networking and Cryptography library、[ˈsɒlt]) は、セキュア通信、暗号化、復号及びデジタル署名のための高速なライブラリである[3]。 パブリックドメインソフトウェアとして配布されている。
![]() | この項目「NaCl (ソフトウェア)」は翻訳されたばかりのものです。不自然あるいは曖昧な表現などが含まれる可能性があり、このままでは読みづらいかもしれません。(原文:英語版 "NaCl (software)" 2020年11月20日 (金) 18:33 (UTC)) 修正、加筆に協力し、現在の表現をより自然な表現にして下さる方を求めています。ノートページや履歴も参照してください。(2020年12月) |
NaClはqmailやCurve25519の開発で知られているイリノイ大学シカゴ校の数学及び暗号学の教授、プログラマのダニエル・バーンスタインによって開発された。 その他の主な開発者はタニア・ラング[4]及びペーター・シュワーベ[5]である。 論文によると、NaClの開発時の主な目標は「以前の暗号化ライブラリが被った様々な種類の暗号災害を回避すること。」であった[2]。
基本的な機能
公開鍵暗号
- デジタル署名
- Ed25519
- 鍵共有
- Curve25519
共通鍵暗号
低レベルの機能
実装
リファレンス実装はC言語で書かれており、インラインアセンブラも度々使用されている。 C++及びPythonはラッパーとして扱われる[9]。
NaClにはPHP[10]などの様々なプログラミング言語向けの言語バインディングが存在する。 NaClは2013年に開発されたクロスプラットフォームの暗号化ライブラリであるlibsodiumの基盤であり、API互換性がある。
代替実装
- libsodium - クロスコンパイル、インストール、パッケージ化が可能な移植性の高いNaClのフォーク。
- TweetNaCl - 僅か100ツイートに収まる小さなC言語のライブラリだが、全てのNaClの関数に対応している。
- TweetNaCl.js - NaCl/TweetNaClをJavaScriptへ移植したバージョン。
- SPARKNaCl - TweetNaClをSPARKで再実装したバージョン。
- Crypt::NaCl::Sodium - Perl向けのlibsodiumの言語バインディング。
脚注
関連項目
外部リンク
Wikiwand - on
Seamless Wikipedia browsing. On steroids.