3

/proc/crypto を確認すると、次のように表示されます。

abhi@ubuntu:/proc$ cat crypto 
name         : stdrng
driver       : krng
module       : kernel
priority     : 200
refcnt       : 1
selftest     : passed
type         : rng
seedsize     : 0

name         : md5
driver       : md5-generic
module       : kernel
priority     : 0
refcnt       : 1
selftest     : passed
type         : shash
blocksize    : 64
digestsize   : 16

プロジェクトの 1 つに aes256 を使用する必要があります。

このアルゴを暗号APIに追加する方法を誰かが指摘できますか、またはこれを達成できる他の方法がありますか(ubuntu 10.4、2.6.32-35)。

カーネル 2.6 の cryptoapi で実装されている (デフォルトで) サポートされているアルゴリズムのリストはありますか?

4

2 に答える 2

6

Abhi、カーネル暗号 APIは、2002 年にプロトコル用に作成されました。これには、カーネル内での暗号化が必要です (ユーザー空間の暗号を使用する信頼できる方法がない場合、カーネル モードで):

当初は IPSec をサポートすることを目的としていましたが、API は汎用機能として設計されており、暗号化されたファイル、暗号化されたファイルシステム、強力なファイルシステムの整合性、ランダム キャラクター デバイス (/dev/random)、ネットワーク ファイルシステム セキュリティ (たとえば、 、CIFS) および暗号化を必要とするその他のカーネル ネットワーキング サービス。

したがって、ユーザー空間で作業していて、新しい FS またはネットワーク スタックの新しい部分としてカーネルに移行する計画がない場合は、暗号化にユーザー空間ライブラリを使用する方が簡単で移植性が高くなります。ユーザー空間 lib は、一部の暗号にカーネル API を使用する場合と使用しない場合がありますが、ユーザー空間の実装を使用する可能性があります。そのようなライブラリはたくさんあります。例えば、openssl、Libgcryptなどです。Qt のような一部の巨大なフレームワークには、人気のある暗号も含まれている場合があります。

新しいアルゴを使用してカーネルで cryptoapi を拡張するには、このアルゴをカーネル用に (モジュールとして、またはカーネル バイナリの一部として) 実装およびコンパイルする必要があります。カーネル用にコンパイルされたモジュールの名前を見つけるには、次を試してくださいls /lib/modules/*/*/arch/*/crypto/ /lib/modules/*/*/crypto/。次に、たとえば呼び出しmodprobe aes_genericたりmodprobe aes-x86_64、API で追加の暗号モジュールをロードしたりできます。

私が持っている後modprobe aes-x86_64

# cat /proc/crypto |grep aes
name         : aes
driver       : aes-asm
module       : aes_x86_64
name         : aes
driver       : aes-generic
module       : aes_generic
于 2012-04-29T13:51:52.730 に答える
-1

例として aes-generic.c を取ることができます

于 2013-03-08T08:25:23.847 に答える