

ある開発者が、AppleのCSAM検出に使用されているNeuralHashアルゴリズムをリバースエンジニアリングしたと主張しています。このアルゴリズムによって児童性的虐待コンテンツ検出システムを破ることができるかどうかについては、相反する意見が出ています…
開発者のAsuhariet Ygvar氏がGitHubにコードを投稿しました。
- 画像をRGBに変換します。
- 画像のサイズを に変更します
360x360
。 - RGB 値を
[-1, 1]
範囲に正規化します。 - NeuralHash モデルで推論を実行します。
- 行列のドット積
96x128
と、その結果得られる 128 個の浮動小数点数のベクトルを計算します。 - 結果の 96 浮動小数点ベクトルにバイナリ ステップを適用します。
- 1.0 と 0.0 のベクトルをビットに変換し、96 ビットのバイナリ データを生成します。
Redditのスレッドにコメントした人が、それが正しいとどうして確信できるのかと質問し、Ygvar 氏はその証拠を説明した。
まず、モデル ファイルには、NeuralHashv3b- というプレフィックスが付いています。これは、Apple のドキュメントと同じ用語です。
第二に、この文書の「テクノロジー概要」の「NeuralHash」セクションでAppleはアルゴリズムの詳細を説明しており、これは私が発見したものと全く同じです。例えば、Appleの文書では以下のように説明されています。
「記述子はハッシュスキームに渡され、N個の浮動小数点数をMビットに変換します。ここで、MはN個の浮動小数点数を表すのに必要なビット数よりもはるかに小さいです。」
こことここからわかるように、N=128、M=96 です。
さらに、このスクリプトによって生成されるハッシュは、画像のサイズを変更したり圧縮したりしてもほとんど変化しません。これも Apple のドキュメントに記載されているとおりです。
また、ハッシュが数ビットずれている理由についても説明しています。
これは、ニューラルネットワークが浮動小数点演算に基づいているためです。精度はハードウェアに大きく依存します。小規模なネットワークであれば、違いはないでしょう。しかし、NeuralHashは200層以上のレイヤーを持つため、累積誤差が大きくなります。実際には、Appleがハッシュ比較を数ビットの許容誤差で実装する可能性が高いでしょう。
このアルゴリズムを知ることで、偽陰性(データベースに存在するにもかかわらず検出されない CSAM 画像)と偽陽性(無害な画像を Apple の人間の審査員に大量に送りつける可能性がある)の両方を生成できるようになると指摘する人もいる。
しかし、Apple が使用しているブラインド システムでは、どちらも不可能になると主張する人もいます。
Appleがハッシュを改変するためにブラインドアルゴリズムを使用する重要なステップが1つあります。デコーダーにこの処理を学習させるには、Appleだけがアクセスできるブラインドアルゴリズムにアクセスする必要があります。
セキュリティ専門家がすぐに意見を述べることは間違いないだろう。
写真: ジョン・タイソン/Unsplash
havebin.com を Google ニュース フィードに追加します。
FTC: 収益を生み出す自動アフィリエイトリンクを使用しています。詳細はこちら。
