本文へ移動
ハック!でAI

AI技術大全 第6回

AI 画像の C2PA とは? 確認方法と、自作の C2PA を AI が見抜けるか試した

佐々木 航@w_sasakiwith Claude Code読了 約41分
左に題。右に、各社の AI 画像 398 枚の C2PA の表。GPT-Image-2.5 は 97 / 97 で OpenAI OpCo, LLC、Nano Banana Pro・2.1 は 132 / 132 で Google LLC が署名し、判定は Trusted。Grok Imagine 2.0 は 24 / 24、Runway Gen-4 Image は 28 / 28 で untrusted。Kling Image 3.0 は 0 / 110、Civitai は 0 / 7

この記事でわかること

  • C2PA の仕組みと、各社の AI 画像 398 枚に入っていたか
  • C2PA は自作できるか、確かめの道具はどう表示するか
  • Claude・GPT・Gemini・Grok は画像の C2PA を読めるか

確認した環境: c2patool 0.27.22(c2pa 0.90.22)・OpenSSL 3.5.5・公式の C2PA trust list(2026年8月13日の更新)、画像と質問は YOBITSUGI AI で GPT-Image-2.5・Nano Banana Pro・Claude Opus 5.5 など / 2026年10月15日に確認

AI 画像の C2PA は、画像のファイルの中に入る、署名つきの来歴の記録です。各社の AI 画像 398 枚を公式の道具 c2patool で読むと、OpenAI・Google・Grok・Runway の 281 枚に入っていて、Kling と Civitai の画像には入っていませんでした。C2PA は自作でき、確かめの道具は信頼のリストに無い署名者と、写した物・直した物を見分けました。一方で、画像を見せた 4 つの AI は、今回の 16 回で C2PA を 1 回も読めませんでした。

結果の早見

3 つの枠。① 各社の画像に入っていたかは 281 / 398 枚。OpenAI 97/97 と Google 132/132 は公式の信頼のリストで Trusted、Grok 24/24 と Runway 28/28 も入っていたが公式の信頼のリストでは確かめられなかった、Kling 0/110 と Civitai 0/7 は C2PA なし。② C2PA は自作できるかは、できた。自分で作った CA の証明書で署名し、判定は Valid で信頼のリストには無い。自己署名 1 枚だけの証明書は c2patool が断った。③ 見抜けたかは、道具は見抜き、AI は読めず。写した物と直した物は Invalid で Verify は無効、自作の物は Verify で未認識だが AI ツールで生成とは表示、画像を見せた 16 回で AI が C2PA を読めた回は 0。下の帯に、C2PA で分かるのはだれが署名したかと署名の後に変わっていないかまでで、保存し直すだけで消えると書いてある
3 つの問いの答え。各社の画像の C2PA、自作できたか、見抜けたか撮影・作図: 編集部

C2PA とは: ファイルの中の、署名つきの記録

C2PA(Coalition for Content Provenance and Authenticity)は、画像や動画の来歴をファイルに書き込む決まりで、書き込んだ物は Content Credentials とも呼ばれます。仕様の現行の版は 2.4(2026年4月)です。

左に PNG ファイルの区画。IHDR が大きさ、caBX が C2PA の塊、IDAT が絵の画素、IEND。JPEG では APP11 の区画に入る。中央にマニフェスト。名乗りは OpenAI Media Service API、c2pa.actions.v2 は c2pa.created と digitalSourceType の trainedAlgorithmicMedia と softwareAgent の gpt-image、c2pa.hash.data は C2PA の塊を除いたファイルのバイトのハッシュ、署名は COSE と ES256 で証明書の鎖と時刻の証明を添える。右に確かめる側。① ハッシュが合うか ② 署名が正しいか ③ 証明書の鎖が信頼のリストに届くか。①② が外れたら Invalid、③ が届かなければ Valid、届けば Trusted。下の帯に、AI で作ったという印は署名した者の申告で、だれが署名したかは信頼のリストで決まると書いてある
GPT-Image-2.5 Sunburst の画像の中の C2PA。マニフェストに名乗り・記録・ハッシュをまとめて署名し、確かめる側が 3 段で判定する撮影・作図: 編集部
  • マニフェスト: 作った道具の名乗り、何をしたかの記録、ファイルのハッシュをまとめて署名した物です。PNG では caBX、JPEG では APP11 の区画に入ります。
  • 「AI で作った」という印: 記録(c2pa.actions)の digitalSourceType に IPTC の語で書きます。trainedAlgorithmicMedia の IPTC での名前は「Created using Generative AI」です。
  • 判定: c2patool は、ハッシュか署名が合わなければ Invalid、合っても証明書が信頼のリストに届かなければ Valid、届けば Trusted と出します。

c2patool で読む・確かめる

c2patool は、Content Authenticity Initiative(CAI)が公開している C2PA の道具です。GitHub のリリースから OS ごとの実行ファイルを取って動かします。読み取りと検証の要所は次の 4 つです。

ターミナル
# 中身を JSON で読む(名乗り・記録・署名した者・判定)
c2patool image.png
# 要点だけ(C2PA の塊の大きさと、検証で引っかかった所)
c2patool image.png --info
# 署名の証明書の鎖を PEM で出す(openssl x509 で読める)
c2patool image.png --certs
# 公式の C2PA trust list を信頼のリストにして確かめる
c2patool image.png trust \
  --trust_anchors 'https://raw.githubusercontent.com/c2pa-org/conformance-public/refs/heads/main/trust-list/C2PA-TRUST-LIST.pem'

GPT-Image-2.5 Sunburst の画像では、次のように出ました。信頼のリストを渡さないと、署名が正しくても untrusted と出ます。

テキスト
$ c2patool g-gpt.png --info
Manifest store size = 21877 (1.50% of file size 1457915)
Validation issues:
   signingCredential.untrusted
One manifest

# 公式の C2PA trust list を渡したときの JSON(抜き出し)
"signature_info": { "alg": "Es256", "issuer": "OpenAI OpCo, LLC", "common_name": "OpenAI Media Service" }
"success": timeStamp.validated / signingCredential.trusted / claimSignature.validated / assertion.dataHash.match
"validation_state": "Trusted"

手引きには、旧い「interim trust list」の書き方もあります。CAI の説明では、このリストは 2026年1月1日に凍結され、公式の C2PA trust list に置き換わりました。

コマンドを使わないときは、CAI の確かめのページ Verify にファイルを上げます。結果は画面の右の欄に出ます。今回の自作の画像では、欄の上に警告の帯(未認識・無効)が出て、未認識のときはその下に発行元・使った AI ツール・アクションが並びました。Verify は、上げたファイルをサーバーに送らず、ブラウザの中で読みます(2026年10月15日に上げたときの通信の記録に、ファイルを送る通信はありませんでした)。この記事では、自作の試しの画像だけを上げました(画面は後の節)。

各社の AI 画像に、C2PA は入っていたか

2026年10月15日に、YOBITSUGI AI で同じ文から 7 枚を作りました。Civitai は提供元の残高(Buzz)が足りず、作れませんでした(残高が足りないままなので、やり直していません)。

GPT-Image-2.5 Sunburst・GPT-Image-2.5 Flare・Nano Banana Pro・Nano Banana 2.1・Grok Imagine 2.0・Runway Gen-4 Image・Kling Image 3.0 に渡した文(大きさは指定せず、各モデルの既定のまま。Runway は 720×720、ほかは 1024×1024 でできました):

テキスト
木のテーブルの上に、湯気の立つ緑茶の湯のみと、みかんが 3 個。窓からの朝の光。写真のように。人物・文字・ロゴは入れない。

Civitai(Juggernaut XL)は英語の単語で受けるので、同じ意味の英語を渡しました(作れませんでした):

テキスト
wooden table, steaming cup of green tea in a Japanese yunomi, three mandarin oranges, morning light from a window, photorealistic, no people, no text, no logo
木のテーブルの上の緑茶の湯のみとみかん 3 個の絵が 7 枚。GPT-Image-2.5 Sunburst・GPT-Image-2.5 Flare・Nano Banana Pro・Nano Banana 2.1 は C2PA ありで Trusted。Grok Imagine 2.0 と Runway Gen-4 Image は C2PA ありで untrusted。Runway の絵はみかんがむかれていて、受け皿がある。Kling Image 3.0 は C2PA なし。Civitai は提供元の残高が足りず作れなかった
同じ文で作った 7 枚と、C2PA の有無。この記事に載せた絵は webp に変えたので、C2PA は入っていない画像生成AIで作成したイメージ

過去の記事の作業で 2026年10月13〜15日に作った元の画像も合わせて、398 枚を読みました。

表。GPT-Image-2.5 の Sunburst と Flare は 97 / 97 で、名乗りは OpenAI Media Service API、AI の印は trainedAlgorithmicMedia、署名した者は OpenAI OpCo, LLC、判定は Trusted。Nano Banana Pro と 2.1 は 132 / 132 で、名乗りは Google C2PA Core Generator Library、AI の印は trainedAlgorithmicMedia で SynthID を入れた記録もあり、署名した者は Google LLC、Trusted。Grok Imagine 2.0 は 24 / 24 で、名乗りは Grok Imagine、署名した者は Self-signed ephemeral certificate LOCAL USE ONLY、untrusted。Runway Gen-4 Image は 28 / 28 で、名乗りは c2pa-rs と Runway Image Generation、署名した者は RUNWAY AI, INC.、untrusted。Kling Image 3.0 は 0 / 110 で、別に AIGC の文字の塊があり Label は 1。Civitai は 0 / 7 で、別に EXIF にプロンプトと設定。下に、C2PA のある 281 枚はすべてハッシュと署名が合っていて、interim のリストでは 4 社とも untrusted と書いてある
各社の AI 画像 398 枚の C2PA。名乗り・AI の印・署名した者と、公式の C2PA trust list での判定撮影・作図: 編集部
  • OpenAI: 97 枚すべてで Trusted でした。記録には c2pa.created のほかに、透かしを入れたという c2pa.watermarked.unbound がありました。
  • Google: 132 枚すべてで Trusted でした。記録に「Applied imperceptible SynthID watermark.」(見えない SynthID の透かしを入れた)がありました。
  • Grok と Runway: 24 枚と 28 枚のすべてに C2PA が入っていましたが、公式の信頼のリストでは確かめられませんでした(判定は Valid・untrusted。証明書の種類は次の節)。Runway の記録の道具の名前は「Runway Image Generation 4.0.0」でした。
  • Kling: C2PA は無く、PNG の文字の区画に「AIGC」という塊(Label "1"・ContentProducer・ProduceID など)がありました。署名はありません。
  • Civitai: C2PA は無く、JPEG の EXIF にプロンプト・シード・モデル名が文字で入っていました。

YOBITSUGI AI は、各社から届いた画像のバイトをそのまま保存していました(保存の処理で確認)。Kling の AIGC の塊や Civitai の EXIF も残っていたので、途中でメタデータは消えていません。各社の元の応答そのものは、本物のキーを直接使わない決まりのため見ていません。

署名した者と、信頼のリスト

5 つの鎖。OpenAI は OpenAI Media Service(OpenAI OpCo, LLC)、Trufo C2PA Claim Signing CA (2025)、リストにある Trufo C2PA Root CA の順で、公式のリストで Trusted。Google は Google Media Processing Services(Google LLC)、リストにある Google C2PA Media Services 1P ICA G3 と Google C2PA Root CA G3 で Trusted。Runway は (メールアドレスは伏せた)@runwayml.com(RUNWAY AI, INC.)とどちらのリストにも無い GlobalSign GCC R6 SMIME CA 2023 で untrusted。Grok は Grok Imagine の署名の証明書(組織名 Self-signed ephemeral certificate LOCAL USE ONLY)と、SDK が試験用にその場で作る c2pa-ephemeral-ca.local(24 枚で 20 通り)で untrusted。自作は Kumobrush Imager Signing(Fictional Kumobrush Co. 架空)と自分で作った Fictional Kumobrush Test Root CA で untrusted、足すと Trusted。下の帯に、Verify はファイルを上げたときに公式の C2PA trust list と旧い interim のリストと同じ中身のファイルの両方を取っていて、interim では 4 社とも untrusted と書いてある
c2patool で取り出した署名の証明書の鎖。公式の C2PA trust list に届いたのは OpenAI と Google撮影・作図: 編集部
  • OpenAI と Google は、公式の C2PA trust list に届きました。 OpenAI の証明書は Trufo という認証局の C2PA 用の CA が出した物で、Google は自社の C2PA 用のルートまでたどれました。
  • Runway の証明書は、メールの署名に使う種類(S/MIME)でした。 出した CA(GlobalSign GCC R6 SMIME CA 2023)は、公式の C2PA trust list にも interim のリストにもありません。ハッシュと署名は合っていましたが、署名した者は信頼のリストでは確かめられませんでした。
  • Grok の証明書は、公式の SDK(c2pa-rs)が試験用にその場で作る種類でした。 組織名は「Self-signed ephemeral certificate (Content Authenticity SDK) -- LOCAL USE ONLY」です。SDK のソースに、この組織名で証明書を作る処理があり、「試験とローカルの用途だけで、C2PA の適合の意味では信頼されない」と書いてあります。24 枚で 20 通りの証明書でした。
  • Verify は、2 つのリストを両方取っていました。 CAI の説明は「Verify は今は interim のリストを使う」です。一方、2026年10月15日に自作の画像を Verify に上げたとき、編集部の検証環境の Chrome で通信を記録すると、公式の C2PA trust list のファイルと、Verify のサイトの trust/anchors.pem・trust/allowed.pem を取っていました。後の 2 つは、interim のリストと中身が同じでした(編集部で突き合わせ)。どちらを判定に使ったかまでは、通信からは分かりません。

C2PA を自作する

自分で作った証明書で、AI を使わずに図形だけで描いた PNG(下の画面の山の絵)に C2PA を付けました。名乗りは架空の会社「Fictional Kumobrush Co.」と架空の道具「Kumobrush Imager 0.9.1」で、記録にはわざと trainedAlgorithmicMedia(AI で作った)と書きました。付け方は c2patool の手引きのとおりで、ここには載せません。

  • 自己署名の 1 枚だけの証明書は、断られました。 c2patool は「the certificate is invalid」と返しました。CAI の説明にも、SDK では自己署名の証明書で署名できないとあります。
  • 自分で作ったルート CA の証明書なら、署名できました。 判定は Valid・untrusted です。確かめる側がそのルートを信頼のリストに入れた場合だけ、Trusted と出ました。Trusted かどうかは、確かめる側が持つ信頼のリストで決まる仕組みです。
テキスト
$ c2patool k1-signed.png --info
Manifest store size = 44793 (49.03% of file size 91356)
Validation issues:
   signingCredential.untrusted
One manifest

# JSON(抜き出し)
"claim_generator_info": [ { "name": "Kumobrush Imager", "version": "0.9.1" } ]
"digitalSourceType": "http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia"
"signature_info": { "issuer": "Fictional Kumobrush Co.", "common_name": "Kumobrush Imager Signing" }
"validation_state": "Valid"

Verify に上げると「未認識」と出て、「Content Credential の発行元を認識できませんでした。」と警告しました。一方で「この画像は AI ツールで生成されました。」と、使用した AI ツール「Kumobrush Imager」も表示しました。

Verify の画面。左の一覧に k1.png 未認識。右の欄の上に橙の帯で、Content Credential の発行元を認識できませんでした。このファイルは、主張されている発行元からのものではない可能性があります。その下に山の絵、コンテンツの概要にこの画像は AI ツールで生成されました、プロセスに使用するアプリまたはデバイス Kumobrush Imager Signing、使用した AI ツール Kumobrush Imager、アクション Created、発行元 Fictional Kumobrush Co.
自作の C2PA を付けた絵を Verify に上げた画面。発行元を認識できないという警告と、AI ツールで生成という名乗りが並ぶ出典: Content Authenticity Initiative「Verify」(2026年10月15日・自作の試しの画像)

確かめの道具は見抜けたか

自作と本物の C2PA で、別の絵に写した物・署名の後に絵を少し直した物・保存し直した物を用意して確かめました。作り方は載せません。

表。自作の C2PA は、そのままが c2patool でリストなしも公式のリストも Valid・untrusted、Verify は未認識で AI ツールで生成も表示。別の絵に写した物は Invalid でハッシュ不一致、Verify は無効で改ざんされている可能性。署名の後に絵を少し直した物も Invalid、Verify は無効。保存し直した PNG と webp は C2PA なし、Verify は PNG を上げると問題が発生しましたと出て最初の画面に戻る。本物の C2PA(GPT-Image-2.5 Sunburst)は、そのままがリストなしで Valid・untrusted、公式のリストで Trusted。写した物と直した物は Invalid で、公式のリストでは署名者は trusted。保存し直した PNG・webp・JPEG は C2PA なし。本物は Verify に上げていない。下に、自分で作ったルート CA を信頼のリストに足すと自作の物は Trusted になり、写した物と直した物は Invalid のままと書いてある
試した物ごとの c2patool の判定と Verify の表示。写した物と直した物はどちらも無効、保存し直した物は C2PA が無い撮影・作図: 編集部
  • 写した物と直した物は、どちらの道具も無効にしました。 c2patool は assertion.dataHash.mismatch(ハッシュが合わない)を出しました。信頼された OpenAI の署名を写した物も Invalid です。
  • 保存し直すと、C2PA は消えました。 画素が同じ PNG に書き直すだけで、c2patool は「No claim found」、Verify は「問題が発生しました」と出して最初の画面に戻りました。webp や JPEG への書き直しも同じです。CAI の FAQ も、スクリーンショットには元の C2PA が残らないと書いています。
  • この記事の画像にも C2PA はありません。 載せるときに webp に変えるためです(c2patool で確認)。
Verify の画面。左の一覧に k2-transplant.png 無効。右の欄の上に赤い帯で、このファイルは改ざんされている可能性があります。Content Credential を確認または表示できません。その下に月と湖の夜の絵。名乗りやアクションは表示されていない
自作の C2PA を別の絵に写した物を Verify に上げた画面。無効と出て、来歴は表示されない出典: Content Authenticity Initiative「Verify」(2026年10月15日・自作の試しの画像)

ほかの AI は、C2PA を読めたか

Claude・GPT・Gemini・Grok に、同じ文で画像を 1 枚ずつ見せました。YOBITSUGI AI は、ファイルを C2PA ごと各社の API に渡しています。

見せた画像は 4 枚です。A は本物の C2PA 付きの GPT-Image-2.5 Sunburst の画像、B は A の C2PA を消した物(画素は同じ)、C は自作の絵と自作の C2PA、D は C の C2PA を消した物です。「Kumobrush」は絵の中に無いので、答えに出ればファイルの中を読んだことになります。

Claude Opus 5.5・GPT-6 Astra・Gemini 3.1 Pro Preview・Grok 4.7(YOBITSUGI AI の best の段)に渡した文:

テキスト
この画像ファイルについて、次の 3 つに答えてください。
1. このファイルに、来歴の情報(C2PA の Content Credentials など、作った道具や編集の記録)は含まれていますか。含まれているなら、作った道具・署名した者・「AI で作った」という印を、読み取れたとおりに書いてください。読み取れないなら、読み取れないと書いてください。
2. この画像は AI で作られたものだと思いますか。「AI で作った」「AI で作っていない」「分からない」のどれかと、理由を 2 文以内で答えてください。
3. 1 と 2 の答えは、何をもとにしましたか(絵の見た目・ファイルの中の情報 など)。
表。列は Claude Opus 5.5・GPT-6 Astra・Gemini 3.1 Pro Preview・Grok 4.7。A 本物の C2PA ありの GPT-Image-2.5 の絵は、Claude と GPT が読めない・分からない、Gemini が読めない・AI で作った、Grok は答えず調べますだけ。B A と同じ画素で C2PA を消した物は、Claude と GPT が読めない・分からない、Gemini が読めない・AI で作った、Grok が読めない・分からない。C 自作の絵と自作の C2PA は 4 つとも読めない・分からない。D C と同じ画素で C2PA を消した物は、Claude・GPT・Gemini が読めない・分からない、Grok は答えず。c2patool の結果を渡した E 本物は 4 つとも AI で作った・来歴は信頼できる、F 自作は 4 つとも AI と名乗っているが署名者が信頼されていないので信頼できない。下の帯に、架空の名前 Kumobrush や署名者の OpenAI を挙げた答えは 0、A と B、C と D で答えた 3 つのモデルの答えは変わらなかったと書いてある
画像を見せた 16 回と、c2patool の結果を文字で渡した 8 回の答え撮影・作図: 編集部
  • C2PA を読めた回は 0 でした。 答えた 14 回は、すべて「読み取れない」で、Kumobrush や OpenAI の名前は出ませんでした。
  • C2PA の有無で、答えは変わりませんでした。 A と B、C と D で、答えた 3 つのモデルの答えは同じです。Gemini 3.1 Pro Preview だけが、A と B を見た目から「AI で作った」としました。
  • Grok 4.7 は 2 回、答えませんでした。 「来歴情報の有無を調べます」のような 1〜2 文で終わりました。
  • 公式の説明: Anthropic は「Claude は画像のメタデータを受け取らない」と書き、AI で作った画像かの判定に頼らないようにとも書いています。OpenAI は「モデルはメタデータを処理しない」と書いています。Gemini API と Grok の公式ドキュメントには、画像のメタデータについての記述は見つかりませんでした。画像のトークンは、Claude も Gemini も縦横の画素の数から数えます(Claude は 28×28 画素で 1 つ、Gemini は 768×768 の区画ごとに 258)。

c2patool の結果(公式の C2PA trust list を渡したときの JSON)を渡すと、4 つとも本物と自作を読み分けました(8 回で 8 回)。次の文の後ろに、区切りの行と JSON の全文(本物は 4,224 バイト・自作は 3,531 バイト)を付けて渡しました。JSON の要所は、上の「c2patool で読む・確かめる」と「C2PA を自作する」の枠のとおりです。

テキスト
次は、ある画像ファイルを c2patool(C2PA の公式の道具)で読んだ結果です。この画像は AI で作られたものですか。この来歴の情報は信頼できますか。理由をあわせて 3 文以内で答えてください。

本物には 4 つとも「AI で作った・来歴は信頼できる」と答え、Claude Opus 5.5・GPT-6 Astra・Grok 4.7 は時刻の証明の証明書が untrusted であることにも触れました。自作には 4 つとも「AI と名乗っているが、署名した者が信頼されていないので信頼できない」と答えました。

画像を見せた 16 回の答え(全文)

A(本物の C2PA あり)・Claude Opus 5.5(3.8 クレジット・15.9 秒)

テキスト
## 1. 来歴の情報について

**読み取れません。** 私が受け取れるのは、表示された絵の見た目だけです。ファイル内のメタデータ(C2PA の Content Credentials、EXIF、XMP など)にはアクセスできません。そのため、作った道具・署名した者・「AI で作った」という印のどれも確認できません。これは「情報が含まれていない」という意味ではなく、「含まれているかどうか私には分からない」という意味です。

確認したい場合は、Content Credentials の確認サイト(contentcredentials.org/verify)や、ExifTool などのメタデータ閲覧ツールにファイルを直接読み込ませる方法があります。

## 2. AI で作られたものか

**分からない。**
1024×1024 の正方形サイズや、整いすぎた光と構図は画像生成 AI の出力によく見られる特徴ですが、丁寧に撮影・編集された写真でも同じようになり得ます。見た目だけで断定できる決定的な破綻(形の崩れや物理的に不自然な箇所)は見つけられませんでした。

## 3. 判断のもと

- **1 の答え:** 私がファイルの中の情報を読めない、という自分の制約にもとづいています。
- **2 の答え:** **絵の見た目と画像サイズだけ**にもとづいています。見た目による判断は信頼性が低く、来歴情報や電子透かしなどの技術的な証拠は一切使っていません。

A(本物の C2PA あり)・GPT-6 Astra(4.2 クレジット・5.5 秒)

テキスト
1. **来歴の情報:読み取れません。** この会話では画像ファイル内部の C2PA やメタデータを確認できないため、含まれているかどうかも不明です。作った道具・署名した者・「AI で作った」という印はいずれも読み取れません。「情報がない」と確認できたわけではありません。

2. **分からない。** 湯のみやみかんの質感、光と影は写真らしく見えますが、AI でも同様の表現ができるため、見た目だけでは判断できません。

3. **答えの根拠:** 1 はファイル内部の情報を確認できないという制約、2 は表示された画像の見た目です。来歴情報や電子署名を検証した結果ではありません。

A(本物の C2PA あり)・Gemini 3.1 Pro Preview(4.3 クレジット・21.6 秒)

テキスト
ご質問について、以下のとおりお答えします。

**1. 来歴情報の有無について**
読み取れません。
(※私のシステムでは、アップロードされた画像のピクセルデータ(見た目)のみを解析しており、ファイルに埋め込まれたメタデータ(C2PAやExifなどの来歴情報)に直接アクセスして読み取る機能がないためです。)

**2. AIで作られた画像かどうか**
「AIで作った」と思います。
理由:湯呑みのお茶の液面の境界や湯気の立ち上がり方、みかんとテーブルの接地面の影などに、AI生成画像によく見られる構造の曖昧さや不自然さがわずかにあるためです。また、背景のボケ方や光の差し込み方が人工的に美しく整いすぎている印象を受けます。

**3. 答えの根拠について**
*   **1の答えの根拠:** ファイルの中の情報(システム上、メタデータを読み取れないという仕様)をもとにしました。
*   **2の答えの根拠:** 絵の見た目(細部の描写、質感、光と影の不自然さなどの視覚的特徴)をもとにしました。

A(本物の C2PA あり)・Grok 4.7(0.8 クレジット・4.2 秒)

テキスト
ファイルの中身と来歴情報を確認します。まずメタデータと C2PA の有無を調べます。

B(A の C2PA を消した物)・Claude Opus 5.5(3.3 クレジット・9 秒)

テキスト
## 1. 来歴情報について

**読み取れません。** 私が受け取れるのは画像の見た目(画素)だけで、C2PA の Content Credentials、EXIF、XMP などファイルに埋め込まれたメタデータは見えません。そのため、作った道具、署名した者、「AI で作った」という印のいずれも確認できません。含まれているかどうかも判断できません。

確認したい場合は、Content Credentials の検証サイト(contentcredentials.org/verify など)や exiftool などのツールでファイルそのものを調べてください。

## 2. AI で作られたものか

**分からない**

1024×1024 の正方形で、光の当たり方や構図が整いすぎている点、お茶の表面の光り方がやや不自然な点は AI 生成画像によくある特徴です。ただし、見た目だけでは丁寧に撮影・編集された写真と確実に区別することはできません。

## 3. 何をもとにしたか

- **1 の答え:** 私がファイル内の情報を読めないという事実だけにもとづいています。
- **2 の答え:** 絵の見た目(画像サイズ、光や質感、細部の描写)だけにもとづいています。来歴情報やメタデータは一切使っていません。

B(A の C2PA を消した物)・GPT-6 Astra(2.1 クレジット・5.5 秒)

テキスト
1. **来歴の情報:読み取れません。** この会話では、ファイル内の C2PA/Content Credentials などを直接確認できないため、含まれているかどうかは不明です。作った道具・署名した者・「AI で作った」という印も読み取れません。

2. **分からない。** 光や質感は写真らしく見えますが、AI でも同様の画像を作れるため、見た目だけでは判定できません。

3. **回答の根拠:**
   - **1:** ファイル内部の来歴情報を確認できないという制約に基づいています。「情報が含まれていない」と確認したわけではありません。
   - **2:** 表示された画像の見た目に基づいています。ファイル内の情報は根拠にしていません。

B(A の C2PA を消した物)・Gemini 3.1 Pro Preview(4.4 クレジット・21.2 秒)

テキスト
ご提示いただいた画像について、以下のとおり回答いたします。

**1. 来歴情報の有無について**
読み取れません。
(※私が画像を読み込むシステムの仕様上、C2PAなどのファイルに埋め込まれたメタデータやバイナリ情報にはアクセスできず、純粋な画像データのみを受け取っているためです。)

**2. AIで作られたものか**
「AIで作った」
理由:みかんの表面の質感が均一すぎて作り物めいていることや、湯呑みの中の液面の反射・湯気の立ち方が物理的に少し不自然に見えるためです。また、背景の窓枠の構造や木目に、AI生成特有のわずかな歪みや破綻が感じられます。

**3. 答えの根拠について**
1の答えは「ファイルの中の情報(がシステム上取得できないこと)」をもとにしました。
2の答えは「絵の見た目(細部の質感、光の当たり方、構造の不自然さなどの視覚的特徴)」をもとにしました。

B(A の C2PA を消した物)・Grok 4.7(2.0 クレジット・19.8 秒)

テキスト
1. 読み取れません。C2PA の Content Credentials や、作った道具・署名した者・「AI で作った」という印は確認できませんでした。
2. 分からない。茶器やみかん、光と影は自然な写真のように見えますが、見た目だけでは AI で作ったかどうかは判断できません。
3. 1 はファイルの中の来歴情報を読み取れなかったこと、2 は絵の見た目にもとづいています。

C(自作の絵と自作の C2PA)・Claude Opus 5.5(3.7 クレジット・9.2 秒)

テキスト
## 1. 来歴の情報(C2PA など)

**読み取れません。**
私が受け取っているのは画面に表示される絵(ピクセル)だけで、ファイルの中のメタデータ(C2PA の Content Credentials、EXIF、XMP など)は見えません。そのため、作った道具、署名した者、「AI で作った」という印のどれも、あるかどうかを確かめられません。「情報が含まれていない」という意味ではありません。

確かめたい場合は、Content Credentials の検証サイト(contentcredentials.org/verify)や、c2patool、exiftool などでファイルそのものを調べてください。ただし、来歴情報は SNS への投稿やスクリーンショットで消えることが多いため、「情報がない」ことは「AI ではない」ことの証拠になりません。

## 2. AI で作られたものか

**分からない**
直線の三角形、正確な円や楕円、なめらかなグラデーションだけでできた整った図形で、画像生成 AI によくある細部の崩れはありません。ただ、この種の単純な図形の絵は、人が描画ソフトで作っても、AI がコード(SVG など)を書いて作っても同じように見えるため、見た目では判断できません。

## 3. 何をもとにしたか

- **1 の答え**:ファイルの中の情報を読めないという、私の側の制約にもとづいています。ファイルの中身は調べていません。
- **2 の答え**:**絵の見た目だけ**にもとづいています。図形の形、色の塗り方、構図を見ました。

C(自作の絵と自作の C2PA)・GPT-6 Astra(4.5 クレジット・6.2 秒)

テキスト
1. **来歴情報:読み取れません。** この環境では、画像ファイル内の C2PA/Content Credentials などを直接確認できないため、含まれているかどうかも判断できません。作った道具・署名した者・「AI で作った」という印はいずれも読み取れません。これは「情報が含まれていない」という意味ではありません。

2. **分からない。** 単純な図形で構成された風景画ですが、この見た目は手作業の描画やプログラム、AI のいずれでも作れるため、外見だけでは判別できません。

3. **答えの根拠:**
   - **1:** ファイル内部の情報を確認できないという、この環境の制約に基づいています。
   - **2:** 表示された絵の見た目に基づいています。ファイル内のメタデータや署名を根拠にはしていません。

C(自作の絵と自作の C2PA)・Gemini 3.1 Pro Preview(3.2 クレジット・14.5 秒)

テキスト
1. 読み取れません。(私にはアップロードされた画像ファイルのメタデータやC2PAなどの来歴情報を直接抽出・解析する機能がないためです)

2. 分からない
理由は、非常に単純な図形を組み合わせて構成されたイラストであり、AI特有の不自然な部分や特徴が見当たらないためです。人間がペイントソフト等で簡単に描ける一方で、AIにこのようなシンプルな画像を作らせることも可能であるため、特定できません。

3. 1の答えは「ファイルの中の情報を直接読み取る機能が私にないこと」をもとにし、2の答えは「絵の見た目」をもとにしました。

C(自作の絵と自作の C2PA)・Grok 4.7(1.6 クレジット・13.1 秒)

テキスト
1. 読み取れません。このファイルから、C2PA の Content Credentials や、作った道具・署名した者・「AI で作った」という印は確認できませんでした。

2. 分からない。単純な図形の風景で、人の手によるベクター画にも AI 生成にも見えるためです。見た目だけではどちらとも断定できません。

3. 絵の見た目と、こちらから読めた範囲のファイル情報にもとづいています。来歴のメタデータは読み取れていません。

D(C の C2PA を消した物)・Claude Opus 5.5(3.5 クレジット・8.4 秒)

テキスト
## 1. 来歴情報(C2PA など)について

**読み取れません。** 私が受け取れるのは画像として表示された絵の内容だけで、ファイルに埋め込まれたメタデータ(C2PA の Content Credentials、EXIF、XMP など)にはアクセスできません。そのため、作った道具・署名者・「AI で作った」という印のいずれも、有無を含めて確認できません。来歴情報が入っていないという意味ではありません。

確認したい場合は、Content Credentials の公式検証サイト(contentcredentials.org/verify)や、c2patool、exiftool などのツールでファイルそのものを調べてください。

## 2. AI で作られたものか

**分からない。** 図形が完全な三角形や楕円で、色も平坦なため、ベクター描画ソフトや SVG のコードで作った絵に見え、一般的な画像生成 AI の出力らしい特徴は見られません。ただし、AI に SVG コードを書かせて作ることも、人が同じ絵を描くこともできるため、見た目だけでは判断できません。

## 3. 判断の根拠

- **1 の答え**:ファイルの中の情報を読めないという、私の側の制約に基づいています。ファイルの中身は一切調べていません。
- **2 の答え**:**絵の見た目だけ**に基づいています(図形の幾何学的な正確さ、平坦な塗り、グラデーションの空など)。メタデータや来歴情報は根拠にしていません。

D(C の C2PA を消した物)・GPT-6 Astra(2.2 クレジット・7.7 秒)

テキスト
1. **来歴情報:読み取れません。** この会話で確認できるのは画像の見た目で、ファイル内部の C2PA/Content Credentials などは確認できません。そのため、来歴情報が含まれるかどうかも、作った道具・署名した者・「AI で作った」という印も不明です。

2. **分からない。** 単純な図形で構成された風景画であり、人が描画ソフトやコードで作ることも、AI で作ることもできるため、見た目だけでは判別できません。

3. **根拠:** 1 は、ファイル内部の情報を読み取れていないという制約に基づきます(来歴情報が「ない」と確認したわけではありません)。2 は絵の見た目に基づき、メタデータや署名の検証には基づいていません。

D(C の C2PA を消した物)・Gemini 3.1 Pro Preview(3.2 クレジット・14.6 秒)

テキスト
ご質問にお答えします。

1. このファイルから来歴の情報(C2PAのContent Credentialsなどのメタデータ)は**読み取れません**。

2. **「分からない」**
理由:非常に単純な幾何学図形とグラデーションで構成されたシンプルなイラストであるためです。人間が画像作成ソフト(Illustratorなど)で描いたものか、AIが生成したものか、視覚的な特徴からだけでは区別がつきません。

3. 1の答えは**ファイルの中の情報を解析する機能を持たないというシステム上の理由**をもとにし、2の答えは**絵の見た目**をもとにしました。

D(C の C2PA を消した物)・Grok 4.7(0.8 クレジット・3.3 秒)

テキスト
画像ファイルのメタデータと中身を確認し、来歴情報の有無を調べます。
c2patool の結果を渡した 8 回の答え(全文)

E(本物の結果)・Claude Opus 5.5(3.3 クレジット・8.8 秒)

テキスト
**はい、この画像は AI 生成と記録されています。** 作成アクション(c2pa.created)の digitalSourceType が「trainedAlgorithmicMedia」(学習済みモデルによる生成)で、生成元は OpenAI の画像生成 API(gpt-image)です。この記録はおおむね信頼できます。署名証明書が信頼済み(signingCredential.trusted)で、署名・アサーション・画像データのハッシュがすべて一致し、failure も 0 件で、全体の判定が「Trusted」になっているためです(ただしタイムスタンプ証明書は未信頼のため署名時刻の保証はやや弱く、この結果が示すのは「署名後に改変されていないこと」であって、来歴情報が付いていない画像が AI 生成でないことまでは判断できません)。

E(本物の結果)・GPT-6 Astra(4.0 クレジット・6.5 秒)

テキスト
この結果によれば、画像は AI 生成です(作成履歴に AI 生成を示す `trainedAlgorithmicMedia` と `gpt-image` が記録されています)。  
来歴は、この検証環境では署名証明書が信頼され、署名と画像データのハッシュも検証に成功しているため、署名者と画像との結び付きを信頼する根拠があります。  
ただし、タイムスタンプの証明書は信頼されておらず、`allActionsIncluded: false` で全操作の記録も保証されないため、生成日時や履歴の完全性、記載内容すべての真実性まで保証するものではありません。

E(本物の結果)・Gemini 3.1 Pro Preview(2.8 クレジット・11.1 秒)

テキスト
はい、この画像はAIで作成されたものであり、その来歴情報も信頼できます。

理由として、来歴データ内にOpenAIのAPI(gpt-image)を用いたAI生成物(trainedAlgorithmicMedia)であることが明確に記録されているからです。

さらに、電子署名やデータのハッシュ値が正常に検証され、全体の検証状態が「Trusted」となっているため、情報が改ざんされていないと判断できるからです。

E(本物の結果)・Grok 4.7(1.6 クレジット・37.4 秒)

テキスト
はい。この画像は AI 生成と読めます。署名者は OpenAI Media Service(OpenAI OpCo, LLC)で、作成時の digitalSourceType が trainedAlgorithmicMedia、softwareAgent が gpt-image です。検証は失敗がなく validation_state が Trusted で、署名はシステム信頼アンカーに含まれデータハッシュも一致するため来歴は信頼できますが、タイムスタンプ証明書は untrusted で allActionsIncluded が false のため、時刻の証明と未記録の操作には弱い点があります。

F(自作の結果)・Claude Opus 5.5(3.6 クレジット・9 秒)

テキスト
この画像の来歴情報は「Kumobrush Imager 0.9.1 で新規作成(`c2pa.created`)され、`digitalSourceType` が `trainedAlgorithmicMedia`」と記録しており、**AI 生成であると申告**しています。署名の検証とハッシュの照合はすべて成功しているため、署名後に画像や来歴が改ざんされていないことは確認できます。しかし署名証明書が信頼リストに含まれておらず(`signingCredential.untrusted`、判定は「Trusted」ではなく「Valid」止まり)、発行者も「Fictional Kumobrush Co.」なので、**誰が署名したかは保証されず、来歴の内容を信頼できる根拠にはなりません**。

F(自作の結果)・GPT-6 Astra(3.5 クレジット・5.1 秒)

テキスト
来歴には `trainedAlgorithmicMedia` と記録されており、AI で生成された画像だと申告されていますが、この情報だけでは断定できません。  
署名と画像データのハッシュの検証は成功しており、署名された来歴と画像の整合性は確認されています。  
ただし、署名証明書が `signingCredential.untrusted`(信頼されていない)と判定されているため、`validation_state: "Valid"` でも、署名者の身元や来歴の内容の真実性まで信頼できるわけではありません。

F(自作の結果)・Gemini 3.1 Pro Preview(2.6 クレジット・10.4 秒)

テキスト
来歴データにAI生成を示す「trainedAlgorithmicMedia」が記録されているため、この画像はAIで作られたとされています。しかし、署名に用いられた証明書が信頼できない(signingCredential.untrusted)という検証エラーが出ています。発行元の正当性が証明されていない状態であるため、この来歴の情報は信頼できません。

F(自作の結果)・Grok 4.7(1.5 クレジット・11.7 秒)

テキスト
この来歴は作成操作の出所を trainedAlgorithmicMedia(学習済みアルゴリズムによるメディア)と主張していますが、署名証明書が untrusted で発行者も「Fictional Kumobrush Co.」のため、その主張は信頼できません。署名とデータハッシュは一致しているので、この非信頼の鍵による署名後に内容が改ざんされた痕跡はありません。したがって、この情報だけでは画像が実際に AI 生成だと判断できません。

C2PA と透かし(SynthID)の違い

表。C2PA はファイルの区画(PNG の caBX・JPEG の APP11)にあり、署名あり、保存し直すと消えた、今回は OpenAI・Google・Grok・Runway の 281 枚。AIGC の塊は PNG の文字の区画(tEXt)にあり、署名なし、消えた、Kling の 110 枚すべて。EXIF の文字は JPEG の EXIF にプロンプト・シード・モデル名、署名なし、消えた、Civitai の 7 枚すべて。SynthID は絵の画素に埋めた見えない透かしで、OpenAI の説明では一部の変換に耐えることがあり、今回は Google の 132 枚の C2PA に SynthID を入れたと記録。下に 3 つの枠。C2PA を確かめるのは c2patool(オープンソース)と Verify(ファイルをブラウザの中で読む)。SynthID を確かめるのは SynthID Detector(2026年10月7日からだれでも・英語)、Gemini アプリの SynthID の判定は Google の AI の物だけ。OpenAI の物を確かめるのは openai.com/verify と API で、C2PA と SynthID を見る
ファイルに書く 3 つの印と、絵の画素に埋める SynthID。保存し直すと、ファイルに書く印は 3 つとも消えた撮影・作図: 編集部
  • C2PA はファイルに書く印で、SynthID は絵の画素に埋める見えない透かしです。 OpenAI の説明では、メタデータは編集・変換・共有で消えることがあり、SynthID は一部の変換に耐えることがあります。
  • SynthID Detector は、2026年10月7日からだれでも使えます(英語)。Google と、OpenAI・NVIDIA・Kakao などの提携先の透かしを確かめます。Gemini アプリでも確かめられます。Gemini アプリの SynthID の判定は Google の AI で作った物だけで、C2PA は、C2PA の適合製品の一覧にある製品の物(2.2 版以降)を確かめます。OpenAI も openai.com/verify で C2PA と SynthID を確かめられます。
  • 今回、SynthID は確かめていません。 Google の 132 枚の C2PA に「SynthID を入れた」と記録があったことだけが、今回の事実です。

各社の方針(公式の説明)

会社・サービス 公式の説明(2026年10月15日に確認) 今回の画像
OpenAI 開発者向けの説明で、来歴の印に C2PA と SynthID を挙げる。OpenAI が作った物のすべてに印があるわけではない、とも書く 97 / 97 に C2PA(Trusted)
Google Nano Banana Pro の画像に C2PA を入れると発表(挙がっているのは Gemini アプリ・Vertex AI・Google 広告で、Gemini API の名は無い)。Gemini API の文書は「作った画像すべてに SynthID」 API で作った 132 / 132 に C2PA(Trusted)
Grok 作った画像と動画に「Grok」の透かし(watermark)を入れる(FAQ)。C2PA の記述は見つからなかった 24 / 24 に C2PA(SDK の試験用の証明書・untrusted)。今回 API で作った 1 枚に、目に見える透かしは無かった
Runway 「We implement C2PA so that AI-generated content can be traced back to its source.」(安全のページ) 28 / 28 に C2PA(untrusted)
Kling 見えない透かしとメタデータを入れる。C2PA などの公開の来歴の標準に沿う、と書く C2PA は 0 / 110。AIGC の塊が 110 / 110
Civitai C2PA を付けるという説明は見つからなかった 0 / 7。EXIF に設定の文字

できたこと・できなかったこと

試したこと 結果
各社の画像 398 枚の C2PA を読む できた(C2PA があったのは 281 枚)
各社の元の応答を直接見る していない(本物のキーを直接使わない決まり。YOBITSUGI AI の保存の処理で代わりに確かめた)
Civitai で新しく作る できなかった(提供元の残高が足りない)
自己署名 1 枚だけの証明書で C2PA を付ける できなかった(c2patool が断った)
自分の CA の証明書で C2PA を付ける できた(Valid・untrusted。自分のルートを足すと Trusted)
写した物・直した物を道具で見抜く できた(c2patool は Invalid、Verify は無効)
保存し直した画像で C2PA を見つける できなかった(C2PA は消え、道具は何も出さない)
各社の画像を Verify で確かめる していない(自作の画像だけを上げる決まり)
画像を見せて、AI に C2PA を読ませる できなかった(16 回で 0 回)
c2patool の結果を AI に読ませる できた(8 回で 8 回)
SynthID を確かめる していない

気をつけること

  • C2PA が無いことだけでは、AI で作ったかどうかは決められません。 保存し直すだけで消え、別の印を使う会社もあります。C2PA の導入の手引き(Deployment Guidance 1.0)は、C2PA が無い物と無効な物を慎重に扱うよう求めています。
  • Trusted でも、名乗りの中身までは保証されません。 CAI の FAQ も、Content Credentials は画像が偽物かどうかを示さないと書いています。
  • Valid・untrusted は「署名は正しいが、署名した者を信頼のリストで確かめられない」という判定です。 自作の C2PA も同じ判定になります。Verify は警告を出しつつ「AI ツールで生成」と表示するので、上の警告の帯まで読みます。
  • AI に「AI で作った画像か」と聞いても、C2PA は確かめられません。 c2patool や Verify で読み、その結果を AI に渡します。
  • 測り方の限り: AI への質問は各 1 回で、best の段の 4 つだけです。各社の画像は API で作った物で、各社のアプリやサイトで作った物は確かめていません。

まとめ

  • C2PA は署名つきの来歴の記録で、Trusted が示すのは「だれが署名したか」と「署名の後に変わっていないか」までです。
  • 今回の 398 枚では、OpenAI と Google の画像が公式の信頼のリストで確かめられました。Grok と Runway の画像にも C2PA は入っていましたが、公式の信頼のリストでは署名した者を確かめられませんでした。Kling と Civitai には C2PA がありませんでした。
  • C2PA は自作でき、信頼のリストに無い署名は untrusted になります。写した物と直した物は道具が見抜き、画像を見せた AI は C2PA を読めませんでした。

番外編として、立体視の絵(いわゆるマジカルアイ)を AI に見せた結果をAI はマジカルアイが見える?にまとめました。

参考にした公式の情報

XFacebookはてブLINE

執筆者

佐々木 航@w_sasaki

with Claude Code

プロフィール

株式会社Game 代表取締役。工学部出身で、21歳で起業してからシステム会社の経営一筋で8期目。アプリの受託開発から始め、いまはAIを使ったシステムソリューションを手がけています。150社以上の企業とのプロジェクトで培った開発と情報システムの現場の経験と声を形にし、激動の時代を乗り越えたいと考えています。

この記事は、Claude Code を使って執筆しました。画面の画像は、検証環境で実際に操作して撮影したものです(引用の画像は出典を記載しています)。内容の誤りはお問い合わせからお知らせください。

連載

AI技術大全
全 8 回の目次
  1. 1RAG の精度を上げるには? チャンク・ハイブリッド検索・リランクを順に足して測った
  2. 2LoRA の作り方 8GB の GPU で画像の LoRA を学習し、枚数と時間を測った
  3. 3ファインチューニングと RAG の違い 同じ 60 問で学習・検索・長いプロンプトを比べた
  4. 4MCP と Function Calling の違い MCP サーバーを自作して測った
  5. 5日本語の埋め込みモデルを比較 社内資料の検索で 7 つを測った
  6. 6AI 画像の C2PA とは? 確認方法と、自作の C2PA を AI が見抜けるか試した(この記事)
  7. 7プロンプトキャッシュとは? 仕組みと料金を Claude・GPT・Gemini で測った
  8. 8Claude Code はなぜ止める? safeguard の仕組みとモデルの違いを試した