運営:アスタミューゼ株式会社
  • ポートフォリオ機能


追加

関連審決 不服2014-26792
元本PDF 裁判所収録の全文PDFを見る pdf
事件 平成 29年 (行ケ) 10051号 審決取消請求事件

原告 アンスティテュミーヌーテレコム
同訴訟代理人弁理士 木村高久
同 小幡義之
被告特許庁長官
同 指定代理人高木進
同 石井茂和
同 佐久聖子
同 野崎大進
同 板谷玲子
裁判所 知的財産高等裁判所
判決言渡日 2018/04/12
権利種別 特許権
訴訟類型 行政訴訟
主文 1 原告の請求を棄却する。
2 訴訟費用は原告の負担とする。
3 この判決に対する上告及び上告受理申立てのための付加期間を30日と定める。
事実及び理由
請求
特許庁が不服2014-26792号事件について平成28年10月13日 にした審決を取り消す。
前提事実(いずれも当事者間に争いがない。)
1 1 特許庁における手続の経緯等 原告は,発明の名称を「その暗号変換により特に情報漏洩観測攻撃から保護 される暗号回路」とする発明について,平成22年1月18日(パリ条約によ る優先権主張外国庁受理2009年1月20日 仏国)に特許出願をした(特 願2011-546771号。以下「本願」という。)。これに対し,平成2 6年1月15日付けで拒絶理由が通知されたことから,原告は,同年5月2日 に手続補正書等を提出したが,同年9月4日付けで拒絶査定がされた。
そこで,原告は,同年12月26日,特許庁に対し,拒絶査定不服審判を請 求した。これに対し,特許庁は,当該審判請求を不服2014-26792号 事件として審理をし,原告に対し,平成27年9月17日付けで拒絶理由を通 知した。これを受け,原告は,平成28年3月25日,特許請求の範囲変更 を内容とする別紙手続補正書を提出したが,特許庁は,同年10月13日, 「本件審判の請求は,成り立たない。」との審決をした(出訴期間として90 日を附加した。以下「本件審決」という。)。その謄本は,同月25日,原告 に送達された。
原告は,平成29年2月22日,本件訴えを提起した。
2 本願発明 本願に係る発明は,別紙手続補正書により補正された特許請求の範囲請求項 1〜5に記載された事項により特定されるものであるところ(以下,請求項の 順に「本願発明1」のようにいい,本願発明1〜5を併せて「本願発明」とい う。また,本願に係る別紙明細書及び図面を「本願明細書等」という。),そ の記載は,以下のとおりである。
【請求項1】 暗号化アルゴリズムを実行するための関数鍵 kc を含む暗号回路(21)で あって,前記回路は,前記回路に専用の第2の鍵 ki であって,前記回路のサイ ドチャネルを利用した攻撃から回路を保護することを可能とする第2の鍵 ki を 2 含むことを特徴とする回路であって, 前記関数鍵 kc は XOR 演算によって前記2つの鍵を組み合わせることにより 前記第2の鍵 ki によってマスクされ,入力変数 x はマスク鍵 【数1】 によって暗号化され, 前記暗号回路は,FPGA タイプのプログラマブル回路において実現され, 前記暗号回路は,前記 FPGA タイプのプログラマブル回路のプログラミング ファイル(25)を暗号化するための第3の鍵 kb を含み, 前記第2の鍵 ki は PUF(Physically Unclonable Function)により生成されるこ とを特徴とする回路。
【請求項2】 前記第2の鍵 ki によって導入されるマスキングは HO-DPA 攻撃から保護さ れることを特徴とする,請求項1に記載の回路。
【請求項3】 前記第2の鍵 ki の基数は前記関数鍵 kc の基数に等しいことを特徴とする, 請求項1または2に記載の回路。
【請求項4】 前記第3の鍵 kb の基数は前記関数鍵 kc の前記基数よりも大きいかまたは等 しいことを特徴とする,請求項1に記載の回路。
【請求項5】 前記暗号化アルゴリズムは DES アルゴリズムであることを特徴とする,請 求項1〜4のいずれか1項に記載の回路。
3 本件審決の理由の要旨 本件審決の理由は,別紙審決書(写し)記載のとおりであるが,要するに, 3 以下のとおり,本願発明1は,特許法(以下「法」という。)36条6項2号及び同条4項1号の要件を欠き,これを引用する本願発明2〜5も同様であり,また,本願発明1は,国際公開第2007/102898号公報(甲1。以下「引用文献1」という。)記載の発明(以下「引用発明」という。)に,特開2003-51820号公報(甲2。以下「引用文献2」という。)ないし周知慣用の技術に基づいて当業者が容易になし得るものであり,本願発明1の奏する作用効果もこれらから当然予測される範囲内のものに過ぎず,格別顕著なものということはできないから,法29条2項により特許を受けることができず,本願発明2〜5について検討するまでもなく,本願は拒絶すべきものであるとした。
(1) 法36条6項2号について 一般に,データの暗号化と復号化とが対となって別々の装置を用い,あ る装置(例えば送信側)で暗号化されたデータは別の装置(例えば受信側) で復号化されることによりデータを暗号化する目的が実現されるところ,本 願発明1は「暗号化アルゴリズムを実行するための関数鍵 kc を含む暗号回 路(21)であって,…第2の鍵 ki は PUF(Physically Unclonable Function) により生成される」事項を有することから,前記「PUF により生成される」 「第2の鍵 ki」に係る暗号化と復号化が対となると解されるが,例えば復号 化側の別の装置では(PUF はクローン不能であるから,前記別の装置では第 2の鍵 ki と同じ鍵を持つことはできないので)復号化できないと解される。
本願明細書等の記載(【0002】)には,前記2つの側(送信側と受信側) が同一である場合の言及はあるとしても,本願発明1は「同一」であるとの 限定はしておらず,前記2つの側が同一である場合,別々である場合のいず れの場合も,暗号化されたデータをどのように復号化するのかが不明であっ て,どのように(復号可能に)暗号化するのか明確に記載されたものとはい えず,しかも,技術的意義も不明である。
4 このため,本願発明は,法36条6項2号の要件を満たしていない。
(2) 法36条4項1号について 本 願 発 明 1 は 「 kc?ki に よ っ て 暗 号 化 さ れ , … 第 2 の 鍵 ki は PUF (Physically Unclonable Function)により生成される」事項を有する回路の発 明であるが,当該暗号化に関連する復号化について発明の詳細な説明には説 明されておらず,前記第2の鍵 ki は PUF(物理的クローン不能関数)により 生成されるものであるから,マスク鍵(kc?ki)により暗号化された入力変数 x を何を用いてどのように復号すればよいのか,暗号化/復号化に係る回路 は唯一の回路を用いるのか,別の回路を用いるのか,前記唯一の回路を用い て暗号化と復号化をする技術的意義はどのようなものなのか不明であり,ま た,別の回路を用いるならいかにして同じ PUF により生成される第2の鍵 ki を有する別の回路が得られるのか不明である。
したがって,本願明細書等に係る発明の詳細な説明は,当業者が本願発 明を実施することができる程度に明確かつ十分に記載されたものではない。
(3) 法29条2項について ア 引用発明 DES 暗号アルゴリズムを実行するための暗号キーを含む DES 計算ユニ ット,キーマスキングユニット,メモリを含む暗号ハードウェアであっ て, 前記ハードウェアは,マスクを用いるマスキング方法(偽またはダミ ー演算)の使用により,あるラウンドにおける暗号化アルゴリズム置換 (S ボックス)演算の(キー側の)入力値のサイドチャネル攻撃からのハ ードウェアエンジンを保護することを可能とするマスクを含むハードウ ェアであって, 前記キーは XOR 演算によって前記キーとマスクとを用いてマスキング をかけたキーを生じさせ,入力データは前記マスキングをかけたキーに 5 よって XOR 演算が適用されて暗号化され, 前記マスクは事前に構築されたマスキング表を用いて生成されること を特徴とする暗号ハードウェア。
イ 対比 本願発明1と引用発明とを対比すると,一致点及び相違点は,以下の とおりである。
[一致点] 暗号化アルゴリズムを実行するための関数鍵 kc を含む暗号回路であっ て,前記回路は,第2の鍵 ki であって,前記回路のサイドチャネルを利用 した攻撃から回路を保護することを可能とする第2の鍵 ki を含むことを特 徴とする回路であって, 前記関数鍵 kc は XOR 演算によって前記2つの鍵を組み合わせることに より前記第2の鍵 ki によってマスクされ,入力変数 x はマスク鍵 【数1】 kc?ki によって暗号化され, 前記第2の鍵 ki は手段を用いることにより生成されることを特徴とする 回路。
[相違点1] 回路に係る第2の鍵 ki(マスク)であることに関し,本願発明1は「回 路に専用の」第2の鍵 ki であるのに対し,引用発明は,そのような事項を 有していない点。
[相違点2] 本願発明1は,「暗号回路は,FPGA タイプのプログラマブル回路のプ ログラミングファイルを暗号化するための第3の鍵 kb を含」むのに対し, 引用発明は,そのような事項を有していない点。
6 [相違点3] 前記第2の鍵 ki は手段を用いることにより生成されることに関し,本願 発明1は「PUF(Physically Unclonable Function)」により生成されるのに 対し,引用発明は,そのような事項を有していない点。
ウ 判断 (ア) 相違点1及び3について 引用文献2には,「マスクは,物理的アンクローンナブルな物理的パ ラメータネットワーク(Function;関数,機能)により生成される」技 術が示されている。
また,引用発明と引用文献2とは,いずれも暗号化保護のための技術 に係るものである。
そうすると,引用発明において,回路に係る第2の鍵 ki(マスク)で あることに関し,「前記回路に専用の」第2の鍵 ki であるとなすこと, 及び,前記第2の鍵 ki(マスク)は所定の手段を用いることにより生成 されることに関し,「PUF(Physically Unclonable Function)」により生 成されるとなすことは,引用文献2の前記技術を参酌することにより当 業者が容易になし得ることである。
(イ) 相違点2について 特表2004-519111号公報(甲4。以下「参考文献1」とい う。)及び特表2008-512909号公報(甲5。以下「参考文献 2」という。)に見られるように,FPGA プログラムが意図する特定の 組の FPGA 以外の FPGA をプログラムするための FPGA プログラムの使 用を阻止するため,あるいは,単一のセキュアな集積回路チップ上に暗 号処理要素を設けることを目的として「暗号化回路は,FPGA タイプの プログラマブル回路において実現され,前記回路は,前記 FPGA タイプ のプログラマブル回路のプログラミングファイルを暗号化するための鍵 7 を含む」技術は,周知の技術であったと認められる。
そうすると,引用発明において「前記暗号回路は,FPGA タイプのプ ログラマブル回路において実現され,前記暗号回路は,前記 FPGA タイ プのプログラマブル回路のプログラミングファイルを暗号化するための 第3の鍵 kb を含」むとなすことは,前記周知の技術を参酌することに より容易になし得ることである。
(ウ) したがって,本願発明1は,引用発明,引用文献2ないし周知慣用 の技術に基づいて当業者が容易になし得るものであり,その奏する作 用効果は,引用発明,引用文献2ないし周知慣用の技術の奏する作用 効果から当然予測される範囲内のものに過ぎず,格別顕著なものとい うことはできないのであり,法29条2項により特許を受けることが できない。
当事者の主張
1 原告の主張 (1) 取消事由1(本願発明1の認定の誤り) ア 本願発明1における関数鍵 kc とは,暗号化アルゴリズムを実行する鍵 のことであり,具体的には,DES アルゴリズム23に入力されてこれを 実行し,入力変数 x から暗号文 y を出力することに機能する鍵である(本 願明細書等の図4)。より具体的には,関数鍵 kc は,本願明細書等の図 1又は2において Feistel 関数 f に入力されて暗号化処理に適用される鍵で ある(裁判所注:図1及び2には「Feisted」とあるが,正しくは「Feistel」 である。以下,図1又は2に言及する場合を含め,後者によ り表記す る。 )。ここで,「暗号化アルゴリズム」の操作とは,本願発明1の 「暗号化アルゴリズムを実行する」操作であり,関数鍵 kc によって暗号 化アルゴリズムを実行して暗号文 y を出力する操作を意味する。
他方,マスク鍵 kc?ki とは,あくまで入力変数 x を暗号化するだけのも 8 のである。ここで,「暗号化」の操作とは,本願発明1の「入力変数 x は マスク鍵 kc?ki によって暗号化され」る操作であり,暗号化アルゴリズム の操作の一部である。
イ 一般に,鍵を用いて入力変数 x を暗号化する際に,サイドチャネルを利 用した攻撃によって情報の漏洩が生じるおそれがある。そこで,本願発 明1では,マスク鍵 kc?ki を用いて入力変数 x を暗号化する。このため, マスク鍵 kc?ki は,サイドチャネルを利用した攻撃の攻撃者によって解読 される(可能性のある)鍵である(本願明細書等【0028】)。
本願明細書等の記載(【0040】)及び図4にあるとおり,関数鍵 kc は,暗号化アルゴリズムを実行して入力変数 x から暗号文すなわち暗号化 された変数 y(=DES(x,kc))を出力することに機能する。このため, 最終的に入力変数 x から生成して出力される暗号文を復号する(攻撃者に とっては解読する)ためには,Feistel 関数 f に入力されて暗号化処理に適 用される鍵,つまり暗号化アルゴリズムを実行することに機能する関数 鍵 kc を知る必要がある。しかるに,サイドチャネルを利用した攻撃の攻 撃者によって漏洩される(可能性のある)鍵は,上記のとおり,マスク 鍵 kc?ki でしかない。サイドチャネルを利用した攻撃によって攻撃者が上 記マスク鍵を知ったとしても,そこから関数鍵 kc を推測することは,第 2の鍵 ki が未知であるため容易なことではなく,このため,暗号文から平 文である入力変数 x を復号する(攻撃者にとっては解読する)ことはでき ない(本願明細書等【0046】)。本願発明1の意義は,以上の点に ある。
ウ しかし,本件審決は,本願発明1の認定に当たり,本願発明1の上記意 義をなんら認定しなかった。この点で本件審決には誤りがある。
(2) 取消事由2(本願発明1と引用発明との一致点及び相違点の認定の誤り) ア 引用文献1には「マスキングをかけたキーを使用して DES 暗号アルゴ 9 リズムを実行し,結果を出力データとしてメモリ31に再び書き込む。」 (引用文献1に対応する特表2009-516964号公報(甲17) の【0034】。以下,引用文献1の訳(段落番号を含む。)は同公報 による。)との記載がある。このため,引用発明において暗号アルゴリ ズムを実行し,暗号文を出力させることに機能するキーは,マスキング をかけたキーである。
他方,引用文献1には「アルゴリズムの S ボックスの入力側におけるア ルゴリズムの実行のその部分を直接標的にすることができる。」(【0 006】)と記載されており,サイドチャネルを利用した攻撃がされる のは,S ボックスの入力側である。また,引用文献1の図2には,S ボッ クス S1 の入力側に,キーK1 をマスク[15]によってマスクしたキーを用い てデータ1を暗号化することが示されている。このため,引用発明にお いてサイドチャネルを利用した攻撃の攻撃者によって漏洩される(可能 性のある)キーは,マスキングをかけたキーである。
以上より,引用発明において暗号文を復号する(攻撃者にとっては解 読する)ためには,マスキングをかけたキーを知れば足り,マスキング をかける対象となるキーを知る必要はない。
イ したがって,本願発明1と引用発明とを対比すると,本願発明1では, マスキングの対象となるキー,すなわち第2の鍵 ki によってマスキングさ れる対象となる関数鍵 kc が,暗号化アルゴリズムを実行して暗号文を出 力することに機能するのに対して,引用発明の「暗号キー」は,それ単 独で暗号化アルゴリズムを実行して暗号文を出力することに機能するも のではなく,暗号キーとマスクとが XOR 演算された「マスキングをかけ たキー」が暗号アルゴリズムを実行して暗号文を出力することに機能す る,という点で異なる。
ウ そうすると,本件審決は,本願発明1と引用発明との一致点として「暗 10 号化アルゴリズムを実行するための関数鍵 kc」を認定している点で誤りで ある。
(3) 取消事由3(容易想到性に関する認定の誤り) ア 相違点2に関する本件審決の認定・判断については,実質的に争わない。
イ 相違点1及び3について (ア) 前記のとおり,本願発明1と引用発明とは,本願発明1では,マス キングの対象となるキー,すなわち第2の鍵 ki によってマスキングされ る対象となる関数鍵 kc が,暗号化アルゴリズムを実行して暗号文を出 力することに機能するのに対して,引用発明の「暗号キー」は,それ 単独で暗号化アルゴリズムを実行して暗号文を出力することに機能す るものではなく,暗号キーとマスクとが XOR 演算された「マスキング をかけたキー」が暗号アルゴリズムを実行して暗号文を出力すること に機能する,という点で異なる。
このため,本願発明1では,サイドチャネルを利用した攻撃によって 攻撃者がマスク鍵 kc?ki を知ったとしても,そこから関数鍵 kc を推測す ることは,第2の鍵 ki が未知であるため容易なことではなく,その結果, 暗号文を復号する(攻撃者にとっては解読する)ことはできないのに対 し,引用発明では,サイドチャネルを利用した攻撃によって攻撃者がマ スキングをかけたキーを知ることができれば暗号文を復号することがで きてしまうという点で,両者は発明の作用効果の点でも異なる。
さらに,引用発明では,真のマスクを用いた真の演算以外に,ダミー マスクを用いたダミー演算を実行する必要があるとともに,真のメッセ ージ以外にダミーメッセージを生成する必要があるのに対し,本願発明 1では,ダミー演算及びダミーメッセージの生成は不要である。
このように,本願発明1は,引用発明に対して顕著な作用効果を奏功 することから,引用発明から容易に想到されるものではない。
11 (イ) 引用文献2には「データ d はメモリ2(MEM)に直接には蓄積され ず,集積回路チップの物理的パラメータネットワークにより提供され る量の測定値(ブロック4,MES)からくる物理データ p と組合される (ブロック3,COMB)。値 f(d,p)はこの組合せの関数で,メモリ 2(例えば EEPROM)に蓄積される。」(【0037】)と記載され ている。したがって,引用文献2には,データ d と物理データ p を組み 合わせ,その結果の値 f(d,p)をメモリに蓄積するという発明が記載 されている。
しかし,引用文献2に示されるデータ d,物理データ p,値 f(d,p) は,いずれも,本願発明1の「第2の鍵 ki によってマスクされる鍵であ って,暗号化アルゴリズムを実行する関数鍵 kc」,「暗号化アルゴリズ ムを実行する関数鍵 kc をマスクする第2の鍵 ki」,「入力変数 x をマス クするマスク鍵 kc?ki(暗号化アルゴリズムを実行する関数鍵 kc と第2 の鍵 ki が XOR 演算によって組み合わせられた鍵)」に相当しない。
そうである以上,引用発明に引用文献2を組み合わせても,本願発明 1は容易に想到されるものではない。
(ウ) 引用発明1におけるマスク[0],マスク[1],…マスク[63]は,テーブ ル表より既知の鍵である。これに対し,引用文献2には,マスクが物 理的にアンクローンナブルであることが示されている。
しかるに,引用発明のマスク[0]等を「物理的にアンクローンナブル」 なマスクに置換したとしても,引用発明において,設計者にとって未知 である「物理的にアンクローンナブル」なマスクを含むメッセージデー タが暗号アルゴリズムから出力されることとなりメッセージデータを復 号化することができない。
そうである以上,引用発明に引用文献2を組み合わせることには阻害 事由があり,これらを組み合わせて本願発明1を容易に想到することは 12 できない。
(エ) 参考文献1及び参考文献2には本願発明1の「第2の鍵 ki によって マスクされる鍵であって,暗号化アルゴリズムを実行する関数鍵 kc」, 「暗号化アルゴリズムを実行する関数鍵 kc をマスクする第2の鍵 ki」, 「入力変数 x をマスクするマスク鍵 kc?ki(暗号化アルゴリズムを実行 する関数鍵 kc と第2の鍵 ki が XOR 演算によって組み合わせられた鍵)」 に相当する構成は何ら示されていない。
そうである以上,引用発明に参考文献1及び2を組み合わせても,本 願発明1は容易に想到されるものではない。
(4) 取消事由4(実施可能要件に関する認定の誤り) ア(ア) 本願発明を実施するための事項は,以下のとおり,本願明細書等に 記載されており,実施可能要件を満たしている。
(イ) 本願明細書等の「関数鍵 kc が回路21の暗号化を実施する役割を果 たす。この暗号化は例えばレジスタ22の内部で入力変数 x を暗号化さ れた変数 y=DES(x,kc)に変換する DES アルゴリズム23である。」 (【0040】)との記載及び図4によれば,本願明細書等には,回 路21に,入力変数 x が入力されるとともに関数鍵 kc が入力され,回路 21で DES アルゴリズムを実行し,暗号文 y=DES(x,kc)を出力する という事項が記載されているということができる。これは,本願の請 求項1の「暗号化アルゴリズムを実行するための関数鍵 kc を含む暗号 回路(21)」の記載に相当する。
また,本願明細書等の「暗号鍵9,k はまた Feistel 関数10によりマ スク m によってマスクされる。」(【0027】)との記載並びに図 1及び2によれば,図1及び2の回路に示される鍵 kc が,マスク m に よってマスクされる暗号鍵であるということが理解される。そして,本 願明細書等には,図1及び2に示される回路の説明として「K?M つ 13 まり秘密鍵 K それ自体がマスク M により暗号化される。」との記載 (【0028】)があるところ,上記回路の(マスク m によってマス クされる)暗号鍵 kc は,(マスク M によってマスクされる)秘密鍵 K と同一である。ここで,秘密鍵とは,暗号文 y の復号化に必要な鍵であ って暗号化アルゴリズム F(x,k)を実行するための鍵 k であると定義 される。そうすると,本願明細書等の上記記載並びに図1及び2には, 秘密鍵 kc が,マスク m によって,K?M という形式でマスクされて暗号 化されるものの,図1及び2に示される回路で暗号化アルゴリズム F (x,kc)を実行すると,暗号文 y=F(x,kc)が出力される(秘密鍵 kc が暗号文 y の復号化に必要な鍵である)ことが示されているといえる。
これは,本願の請求項1の「暗号化アルゴリズムを実行するための関数 鍵 kc を含む暗号回路(21)」の記載に相当する。
(ウ) 本願の請求項1の「入力変数 x は,マスク鍵 kc?ki によって暗号化さ れ」につき,本願明細書等の図4には,関数鍵 kc が,マスク(第2の 鍵)ki と XOR ゲートで XOR 演算されて(kc?ki),DES アルゴリズム2 3の内部のレジスタ22に入力されることが示されている。 他方,同 図には,入力変数 x が,DES アルゴリズム23に入力されることも示さ れている。このため,DES アルゴリズム23に入力された入力変数 x は, DES アルゴリズム23の内部のレジスタ22に入力されたマスク鍵 kc?ki によって暗号化されることを,当業者であれば理解する。
また,本願明細書等の「左右のデータレジスタに保存される前に,メ ッセージのデータは左で XOR ゲート7および右で XOR ゲート8という 手段によりマスクデータと組み合わされることによってマスクされる。
暗号鍵9,k はまた Feistel 関数10によりマスク m によってマスクされ る。」(【0027】)との記載並びに図1及び2によれば,XOR ゲ ート8で,メッセージデータ(入力変数 x)と第2の鍵 ki が XOR 演算 14 (x?ki)されていること,及びこの演算結果がレジスタ6を経て Feistel 関数10に入力され,E で示される箇所を経て,関数鍵 kc と XOR 演算 (x?ki?kc )されていることが,それぞれ理解される。 排他的論理和? (XOR 演算子)は,その左辺と右辺を交換しても計算結果は同じであ り(交換法則),計算の優先順位を変えても計算結果は同じである(結 合法則)ことから,Feistel 関数10に入力され,E で示される箇所を経 て得られた x?ki?kc は,x?(kc?ki)となる。そうすると,図1及び2には, 「マスク鍵 kc?ki によって入力変数 x が暗号化され(x?(kc?ki))」という 事項が示されているといえる。
(エ) 本願明細書等の記載(【0037】)及び図3によれば,図3にお いて,入力データ X が x?kc であり,マスク M が第2の鍵 ki であるとす ると,レジスタ31の前段の XOR 演算部で x?kc?ki の演算がされ,いず れのレジスタにおいても第2の鍵 ki によってマスキングがされることに より,x?kc は漏洩されないが,レジスタ35の後段の XOR 演算部から は第2の鍵 ki がデマスキングされた E(x?kc)が出力されるという事項 が示されているといえる。
また,本願明細書等の図2においても,図3と同様に,Feistel 関数1 0内の E の後段の XOR 演算部で x?kc?ki の演算がされ,いずれのレジス タにおいても第2の鍵 ki によってマスキングがされて,x?kc は漏洩され ないが,XOR 演算部13,14からは,第2の鍵 ki がデマスキングさ れた暗号文が出力されるという事項が示されているといえる。
イ(ア) 本願発明は,その名称が示すとおり「その暗号変換により特に情報 漏洩観測攻撃から保護される暗号回路」に関し,暗号回路においてサイ ドチャネル攻撃から保護されることを課題とする。したがって,本願発 明の暗号回路を実施するための事項を発明の詳細な説明に記載すれば足 り,暗号回路を実施するための事項以外の事項である復号を実施するた 15 めの事項が発明の詳細な説明に記載されていないことをもって,実施可 能要件を満たしていないということにはならない。
(イ) マスク鍵 kc?ki によって暗号化された入力変数 x を,暗号回路から 「y=DES(x,kc)」として第2の鍵 ki を用いない形式で出力すること は可能である。
すなわち,本願明細書等の図2に示されるとおり,本願発明において は,暗号化アルゴリズムに XOR ゲート7,8,12,13,14を付 加することによって,第2の鍵 ki は,マスク鍵 kc?ki のために使用され る一方で,XOR 演算を繰り返すことによって最終的に消去される。こ のため,出力15(同図)から最終的に得られた暗号文 y を解読するた めには,関数鍵 kc さえ知り得ればよく,第2の鍵 ki を要しない。この ことは,本願発明の出願時における当業者の技術常識をもって理解し得 る。
ウ 以上より,実施可能要件に関する本件審決の認定は誤りである。
(5) 取消事由5(明確性要件に関する認定の誤り) 本願の請求項1に「マスク鍵 kc?ki によって暗号化された入力変数 x を, 暗号回路から第2の鍵 ki を用いない形式で出力でき,出力されたものを関数 鍵 kc によって復号できる」ことが記載されていることについては,取消事 由4と同様である。
したがって,明確性要件に関する本件審決の認定は誤りである。
2 被告の主張 (1) 取消事由1(本願発明1の認定の誤り)に対し ア 本件審決は,特許請求の範囲に記載された事項により特定されるものと して本願発明1の認定を行ったものであり,その認定に誤りはない。
イ(ア) 原告は,本願発明1における関数鍵 kc とは,暗号化アルゴリズムを 実行する鍵のことであり,具体的には,DES アルゴリズム23に入力 16 されてこれを実行し,入力変数 x から暗号文 y を出力することに機能す る鍵のことであり,「暗号化アルゴリズム」の操作とは,本願の請求項 1に記載の「暗号化アルゴリズムを実行する」操作であり,関数鍵 kc によって暗号化アルゴリズムを実行して(最終的に)暗号文を出力する 操作を意味する旨主張する。
しかし,本願発明1に係る特許請求の範囲には「暗号化アルゴリズム を実行するための関数鍵 kc を含む暗号回路(21)であって」と記載 されているに過ぎず,「関数鍵 kc」につき,「暗号化アルゴリズムを実 行するための関数鍵 kc」であることや「関数鍵 kc を含む暗号回路」と 特定されているものの,「関数鍵 kc」が単独で「暗号化アルゴリズムを 実行する鍵のことであ」ることや「関数鍵 kc によって暗号化アルゴリ ズムを実行して(最終的に)暗号文を出力する」ことは,何ら特定され ていない。
したがって,原告の上記主張は,本願の特許請求の範囲の記載に基づ くものではない。
(イ) 原告は,最終的に入力変数 x から生成して出力される暗号文を復号す る(攻撃者にとっては解読する)ためには,Feistel 関数 f に入力されて 暗号化処理に適用される鍵,つまり暗号化アルゴリズムを実行するこ とに機能する関数鍵 kc を知る必要がある,関数鍵 kc が暗号化アルゴリ ズムを実行して入力変数 x から暗号文,つまり暗号化された変数 y を出 力することに機能することは,本願明細書(【0040】, 図4)に 「y=DES(x,kc)」として記載されているなどと主張する。
しかし,本願発明1の特許請求の範囲には「入力変数 x はマスク鍵 【数1】kc?ki によって暗号化され」と記載されているに過ぎず,「入 力変数 x はマスク鍵 kc?ki で暗号化」されることは特定されているもの の,「関数鍵 kc が暗号化アルゴリズムを実行して入力変数 x から暗号 17 文,つまり暗号化された変数 y を出力することに機能」することや, 「y=DES(x,kc )」として出力されることについては,何ら特定され ていない。
したがって,原告の上記主張は,本願の特許請求の範囲の記載に基づ くものではない。
(ウ) 原告は,本件明細書等の図1及び2の記載を根拠として,「暗号化」 の操作とは本願の請求項1の「入力変数 x はマスク鍵 kc?ki によって暗 号化され」る操作であり,マスク鍵 kc?ki によって入力変数 x を暗号化 するという,暗号化アルゴリズムの操作の一部を意味するなどと主張 するけれども,後記((4)イ)のとおり,上記図1及び2の実施例は, 本願発明1に係る特許請求の範囲に対応する実施例ではない。
(エ) 仮に,原告の主張する本願発明1の意義を参酌してクレームを限定 解釈し,「関数鍵 kc」が単独で「暗号化アルゴリズムを実行する鍵のこ とであ」ることや「関数鍵 kc によって暗号化アルゴリズムを実行して (最終的に)暗号文 y=DES(x,kc )を出力する」ことを本願発明1の 構成として認定した場合であっても,引用発明においても,「関数鍵 kc によって暗号化アルゴリズムを実行して(最終的に)暗号文 y=DES(x, kc)を出力する」ことが実質的に記載されているといえるから,上記本 願発明1の構成は,実質的な相違点とならない。
したがって,原告主張に従って本願発明1の上記構成を認定したとし ても,容易想到性判断の結論には影響しない。
(2) 取消事由2(本願発明1と引用発明との一致点及び相違点の認定の誤り) に対し ア 原告は,鍵 kc に関し,本願発明1の関数鍵 kc は,暗号化アルゴリズム を実行して暗号文を出力することに機能するものである旨主張する。
しかし,前記のとおり,本願発明1の特許請求の範囲には「暗号化ア 18 ルゴリズムを実行するための関数鍵 kc を含む暗号化回路(21)であっ て」と記載されているに過ぎず,「暗号文を出力することに機能」する ものであることは何ら特定されていないから,原告の上記主張は,本願 の特許請求の範囲の記載に基づくものではない。
イ 原告は,引用発明につき,引用発明の「暗号キー」は,それ単独で暗号 化アルゴリズムを実行して暗号文を出力することに機能するものではな く,暗号キーとマスクとが XOR 演算された「マスキングをかけたキー」 が暗号化アルゴリズムを実行して暗号文を出力することに機能する旨主 張する。
しかし,引用文献1の記載(【0008】,【0011】)によれば, 引用文献1の暗号化アルゴリズムは,ランダム順で真及びダミーキーを 使用しており,ダミーキーから間違った結果はダミーメモリロケーショ ンに格納されるが,Zero でマスキングされたキーは「真のキー」として, その結果は真の結果としてメモリに格納される。ここで,Zero でマスキ ングされたキーはマスキングされないキーと等価であることは明らかで あるので,引用発明の「『DES 暗号アルゴリズム』を実行するための暗 号キーを含む DES 計算ユニット,キーマスキングユニット,メモリを含 む暗号ハードウェア」における「暗号キー」には,マスキングされたダ ミーキーだけでなく,マスキングされないキーと等価である「真のキー」 が含 まれる 。すなわち,引用発明の「暗号キー」には , 本願発明 1 の 「関数鍵 kc」に相当するものも含まれるといえる。
したがって,引用発明に関する原告の上記主張は,引用文献1の記載 の理解を誤ったものである。
(3) 取消事由3(容易想到性に関する認定の誤り)に対し ア 原告は,本願発明1では,マスキングの対象となるキー,つまり第2の 鍵 ki によってマスキングされる対象となる関数鍵 kc が,暗号化アルゴリ 19 ズムを実行して暗号文を出力することに機能するのに対して,引用発明 では,マスキングをかけたキーが暗号アルゴリズムを実行して暗号文を 出力することに機能するという点で異なるため,本願発明1は引用発明 に対して顕著な作用効果を奏功する旨主張する。
しかし,原告の上記主張は,前記(1)イ(ア),(イ)及び(2)イのとおり,本願 発明1についてはその特許請求の範囲の記載に基づくものとはいえず, 引用発明についても,引用文献1の記載の理解を誤ったものである。
イ 原告は,引用文献1に引用文献2を組み合わせても,引用文献2に示さ れるデータ d,物理データ p,値 f(d,p)は,いずれも,本願発明の「第2 の鍵 ki によってマスクされる鍵であって,暗号化アルゴリズムを実行する 関数鍵 kc」,「暗号化アルゴリズムを実行する関数鍵 kc をマスクする第 2の鍵 ki」,「入力変数 x をマスクするマスク鍵 kc?ki(暗号化アルゴリズ ムを実行する関数鍵 kc と第2の鍵 ki が XOR 演算によって組み合わせられ た鍵)」に相当しないから,相違点1及び3に係る構成には想到し得な い旨主張する。
しかし,前記のとおり,本願の特許請求の範囲の記載では「暗号化ア ルゴリズムを実行するための関数鍵 kc を含む暗号回路」,「入力変数 x は マスク鍵 kc?ki によって暗号化」との特定がされているものの,「第2の 鍵 ki によってマスクされる鍵であって,暗号化アルゴリズムを実行する関 数鍵 kc」,「暗号化アルゴリズムを実行する関数鍵 kc をマスクする第2 の鍵 ki」,「入力変数 x をマスクするマスク鍵 kc?ki(暗号化アルゴリズム を実行する関数鍵 kc と第2の鍵 ki が XOR 演算によって組み合わせられた 鍵)」という態様は,本願の特許請求の範囲で特定されていない。
したがって,原告の上記主張は,本願の特許請求の範囲の記載に基づ くものではない。
(4) 取消事由4(実施可能要件に関する認定の誤り)及び取消事由5(明確 20 性要件に関する認定の誤り)に対しア 本願発明を暗号回路として実施するための事項が本願明細書等に記載さ れているということはできない。
すなわち,暗号回路といえるためには,復号可能な暗号化を実行する ことが必要であることは,暗号技術分野の技術常識である。そして,本 願の請求項では,入力変数 x をマスク鍵 kc?ki で暗号化しているから,暗 号化の際と復号化の際には同じ秘密鍵が必要となるという共通鍵暗号の 技術常識に照らし,復号化の際には暗号化の際に使用したマスク鍵 kc?ki が必要となる。
しかし,サイドチャネル攻撃によって暗号化の際に使用した秘密鍵は 特定されてしまうことから,秘密鍵 kc を使用する代わりにマスク鍵 kc?ki を使用して暗号化を行ったとしても,暗号解読に必要なマスク鍵 kc?ki が 特定されてしまうことになる。これは,本願の請求項1の「サイドチャ ネルを利用した攻撃から回路を保護することを可能とする第2の鍵 ki を含 むことを特徴とする回路」という記載と整合しないから,上記請求項の 記載は技術的に不明瞭となっている。
また,本願明細書等の実施例(図2及び4)によっても,入力変数 x を マスク鍵 kc?ki で暗号化しながら,出力暗号文として「y=DES(x,kc)」 が出力されることが,当業者に実施可能な程度に具体的に記載されてい るということはできない。
したがって,本願の請求項は技術的に不明瞭であるから,明確性要件 を満たしているとはいえず,また,本願明細書等には,本願の請求項に 係る発明である回路を暗号回路として実施するための事項が記載されて いないから,実施可能要件を満たしているとはいえない。
イ 本願明細書等の図2について (ア) 原告は,本願明細書等の図2を根拠として,第2の鍵 ki は,マスク 21 鍵 kc?ki のために使用されるが,XOR 演算を繰り返すことによって消去 され,最終的に得られた暗号文 x?kc を解読するためには,関数鍵 kc さ え知り得ればよく,第2の鍵 ki を要しない旨主張する。
(イ) しかし,図2では,入力変数 x であるメッセージに初期置換 IP1を 行い(IP(x)),第2の鍵 ki にも初期置換 IP2を行い(IP(ki)),IP1の 出 力 IP(x) と IP 2 の 出 力 IP(ki) を XOR ゲ ー ト 8 で XOR 演 算 し て (IP(x)?IP(ki)),レジスタ6に格納している。そして,レジスタ6に格 納 さ れ た IP(x) ?IP(ki)に 拡 大 置 換 E を 行 い ( E(IP(x)?IP(ki))) , 出 力 E(IP(x)?IP(ki))と関数鍵 kc とで XOR 演算を行い(E(IP(x)?IP(ki))?kc),S ボックス9への入力としている。
このうち,IP1の出力 IP(x)と IP2の出力 IP(ki)を XOR ゲート8で XOR 演算(IP(x)?IP(ki))している点は,入力変数 x であるメッセージを 第2の鍵 ki との XOR 演算によりマスクしているということができる。
他方,S ボックス9への入力 E(IP(x)?IP(ki))?kc において,関数鍵 kc と第 2の鍵 ki に着目すると,関数鍵 kc と第2の鍵 ki とで直接 XOR 演算を行 っていない。そうすると,「関数鍵 kc は XOR 演算によって…第2の鍵 ki によってマスクされ」ているとはいえない。
(ウ) また,初期置換 IP の入力は64ビット幅であるから,第2の鍵 ki の ビット幅は64ビットである。他方,拡大置換 E の出力は48ビット幅 であるから,拡大置換 E の出力 E(IP(x)?IP(ki))のビット幅は48ビット である。
ここで,XOR 演算は,同じビット幅を有する2つの2進数を入力と する2項演算であるという技術常識を踏まえると,拡大置換 E の出力 E(IP(x)?IP(ki))との XOR 演算の対象となっている関数鍵 kc のビット幅は, 拡大置換 E の出力 E(IP(x)?IP(ki))のビット幅と同じ48ビットである。
「入力変数をマスク鍵 kc?ki で暗号化」するためには,少なくとも第 22 2の鍵 ki と関数鍵 kc とが間接的に XOR 演算していること,すなわち, E(IP(x)?IP(ki))?kc の演算順序を入れ換えて,例えば E(IP(x)?IP(ki?kc)) の ように変換可能である必要があるが,初期置換 IP 及び拡大置換 E は, ビット位置の入れ替えやビット幅の拡大を行っているから,初期置換 IP 及び拡大置換 E 並びに XOR 演算の演算順序は入れ換え可能であると はいえない。仮に初期置換 IP 及び拡大置換 E 並びに XOR 演算の演算順 序が入れ換え可能であったとしても,ビット幅の異なる第2の鍵 ki(ビ ット幅64ビット)と関数鍵 kc(ビット幅48ビット)とは XOR 演算 できない。
したがって,図2の実施例において,第2の鍵 ki と関数鍵 kc とは, 間接的にも XOR 演算しているとはいえない。
(エ) 以上より,図2の実施例において,第2の鍵 ki と関数鍵 kc とは,直 接的にも間接的にも XOR 演算しているとはいえないから,同実施例は 「入力変数をマスク鍵 kc?ki で暗号化」しておらず,「関数鍵 kc は XOR 演算によって…第2の鍵 ki によってマスクされ」ているとはいえない。
そうすると,同実施例は,本願の請求項に係る発明に対応する実施例 ということはできない。
したがって,図2の実施例に基づく原告の主張は,本願の請求項の記 載に基づく主張でないから,理由がない。
(オ) 仮に図2に記載の実施例が「入力変数をマスク鍵 kc?ki で暗号化」し ているとしても,少なくとも,図2の S’16は,DES アルゴリズムの 基本構成である S ボックス9と区別され,S ボックス9とは異なり,2 つの48ビット幅の入力を持っている。しかし,図2の S’16がどの ような演算を行っているのかについて,本願明細書等には何ら記載も 示唆もない。このため,図2に記載の実施例を当業者が実施すること はできず,実施可能要件を満たしているとはいえない。
23
当裁判所の判断
1 本願発明 本願発明に係る特許請求の範囲請求項の記載は,前記(第2の2)のとおり である。
2 本願明細書等の記載等 (1) 技術分野(【0001】) 本発明はそれらの暗号化により特に情報漏洩観測攻撃から保護される暗 号回路に関する。
(2) 背景技術 通信および情報処理のための手段のローミング能力が増すとともに,新 しい攻撃が考えられるようになっている。実行速度の点から,それを構成す る電子回路,例えば DPA 攻撃によるエネルギー消費量の点から,またはそ の放射挙動,例えば EMA 攻撃による磁気放射の点からシステムの時間的挙 動を観測することにより大量の情報が漏洩しうる。サイドチャネルへのこれ らの攻撃に対しては,特に, この例では秘密とは無関係に漏えいを一定にすることを伴う秘匿と, 漏えいをランダムにすることを伴う,つまり予測不能でありしたがって 利用不可能とするマスキングと,を基にする保護が提案されている。(【0 004】) これらの2つの技法は情報の取得を狙った攻撃の困難さを増すことを可 能とするが,それらはそれでもなお実装欠陥から利益を得るであろう攻撃に 対 し て は 依 然 脆 弱 で あ る 。 DPA 攻 撃 の 例 は , P.Kocher ら に よ る 文 献 , Differential Power Analysis, In proceedings of CRYPT’99, volume 1666 of LNCS, pages 338-397, Springer-Verlag, 1999 に記載されている。EMA 攻撃の例は K.Gandolfi らによる文献,Electromagnetic Analysis-Concrete Results, In CHES, volume 2162 of LNCS, pages 251-261, Springer-Verlag, 2001 に記載されている。
24 (【0005】) 起こりうるまたは立証された脆弱性の例は数多く存在する。
以下が特に挙げられる。
差分論理(WDDL などの)に基づく秘匿は計算フェーズと評価フェーズ とプリチャージフェーズとのうちの1つまたは別の間の累積した組み合わせ のずれの差への攻撃に対して脆弱となる場合がある。
マスキングは HO-DPA と呼ばれる高階攻撃に敏感な場合がある。(【0 006】)(3) 課題を解決するための手段 本発明の目的は特にこれらの,特に DPA または EMA タイプの攻撃に対抗 することである。この目的のため,本発明の対象は暗号アルゴリズムを実行 するための関数鍵 kc を含む暗号回路であって,前記回路は kc とは別の前記 回路のそれぞれの例に特有の,回路のサイドチャネルを利用した攻撃から回 路を保護することを可能とする第2の鍵 ki を含むことを特徴とする。(【0 007】) 関数鍵 kc は例えば XOR 演算によって2つの鍵を組み合わせることにより 第2の鍵 ki によってマスクされ,入力変数 x はマスク鍵 【数1】 kc?ki によって暗号化されている。(【0009】) 第2の鍵 ki は例えば秘密実装によって鍵 kc を保護する役割を果たす。
(【0010】) 第2の鍵 ki は例えば特に鍵 ki でマスキングすることにより保護される2つ の秘密関数の囲い込みによってカスタマイズされる標準暗号アルゴリズムか らなる秘密アルゴリズムを保護する役割を果たす。(【0011】) 第2の鍵 ki は例えば PUF(Physically Unclonable Function)または POK 25 (Physically Obfuscated Key)タイプの関数により生成される。(【001 2】) 第2の鍵 ki により導入されるマスキングは HO-DPA 高階攻撃に対して保 護されてもよい。(【0014】) 回路に固有の実装鍵としての役割を果たす第2の鍵 ki の知識により,例え ば保護管理プロシージャを,前記管理を担う特権ユーザが使用することが可 能となる。(【0015】) これは FPGA タイプのプログラマブル回路で実現されてもよい。(【00 16】) 第2の鍵 ki は FPGA のプログラミングファイルを介してカスタマイズされ てもよい。(【0017】) 有利には,回路はソフトウェアの実装により実現されてもよい。(【0 018】) それは例えば前記 FPGA 回路のプログラミングファイル(25)を暗号化 し,これにより外部記憶の機密性および FPGA への鍵 ki の移転の機密性を付 与するための第3の鍵 kb を含む。(【0019】) 第2の鍵 ki の基数は例えば関数鍵 kc の基数に等しい。これは ki への隠し チャネル攻撃を kc への暗号解読攻撃よりも困難にするためである。(【0 020】) 第3の鍵 kb の基数の基数は関数鍵 kc の基数よりも大きいかまたは等しい。
(【0021】) この暗号化アルゴリズムは DES アルゴリズムである。(【0022】)(4) 発明を実施するための形態 図1に本発明が適用されうるマスキングのモードを呈示する。特に図1 には,特に S.Guille らによる文献,A fast Pipelined MultiMode DES Architecture Operating in IP Representation, Integration, The VLSI Journal, 40(4) pages 479-489, 26 July 2007, DOI に概要が示されるアーキテクチャに従い実装される DES(Data Encryption Standard)アルゴリズムのマスキングの図が例として呈示される。図1の回路は例えば FPGA(Field Programmable Gate Array)タイプのプログラマブル論理回路で実現される。このアルゴリズムでは,データパスは2つの部分,左と右とに分割される。(【0025】) 対比のために,図2はマスキングによる保護を保証するためのハードウェアオーバーヘッドを強調する同様の回路を示し,このオーバーヘッドを生じさせる回路は破線により示されている。(【0026】) したがって左のデータレジスタ3と右のデータレジスタ4との間に入力メッセージ1が割り当てられる。左のマスクレジスタ5と右のマスクレジスタ6との間にマスク2が割り当てられる。左右のデータレジスタに保存される前に,メッセージのデータは左で XOR ゲート7および右で XOR ゲート8という手段によりマスクデータと組み合わされることによってマスクされる。
暗号鍵9,k はまた Feistel 関数10によりマスク m によってマスクされる。
右のレジスタ6のマスクされるデータと右のレジスタ2の半分のマスクは,そこで右のマスクされるデータが第1の換字ボックス9により暗号化され,かつ,そこで右の半分のマスクが第2の換字ボックス16により暗号化される Feistel 関数の入力を形成する。左のデータレジスタ5と左のマスクレジスタ1のデータは XOR ゲート11,12という手段により Feistel 関数の出力においてそれぞれ右のデータと新しいマスクとに組み合わされ,その後右のレジスタにループ状に戻り,左右のデータはその後暗号化されたメッセージを出力15するように XOR ゲート13,14により再び組み合わされる。
図1のタイプの回路ではデータレジスタ5,6のみが漏洩すると想定される。
(【0027】) 本発明による回路は漏洩を続けるがそれを暗号化の状態にするため理解できない。したがって例えば DPA または EMA タイプの攻撃を実行する攻撃 27 者には以下の変数のみがわかる。
【数2】 K?M (1) つまり秘密鍵 K それ自体がマスク M により暗号化される。鍵 K のこの保護モードは,XOR とも呼ばれかつ 【数3】 ?により表される「排他的論理和」演算を用いる Vernam 暗号という名で公知であり,Vernam コードは XOR 演算を用いて暗号化することができるコードである。本発明による暗号回路はしたがって情報漏洩の Vernam 暗号化により隠しチャネルへの攻撃から保護される。(【0028】) 暗号化アルゴリズムが完全にカスタマイズされる用途分野が存在する。
例えば秘密暗号に依存する GSM の公共または私用の範囲または有料テレビがそのようなケースである。この選択を正当化するために通常述べられる主張には,回路と相関関係となる漏えい関数が未知であるためサイドチャネルへの攻撃,いわゆる SCA(Side-Channel Attacks)は不可能ということがある。
K.Tiri ら の 文 献 , Side-Channel Leakage Tolerant Architectures, In ITNG’06-Proceedings of the Third International Conference on Information Technology, NewGeneration, pages 204-209, Washington DC, USA, 2006 IEEE Computer Society では,アルゴリズムの実装および機能性を,ハードウェアの量の点でオーバーヘッド有りまたは無しで一度にかつ同時に変更することを提案している。前の2つのプロシージャの欠点は,暗号化が関数的に秘密であることである。
これはセキュリティの専門家がシステムおよびその配備を実施する特定の典型的な場合においては容認されうる。しかし暗号化システムの設計および配布を監視することが困難であるほとんどの場合,この筋書きは非常に不確実である。いったん秘密の機能性が回復すると,DPA タイプの攻撃は再度容 28 易に可能となる。さらに例えば FIPS-140 などの特定の証明方式では,暗号標準をカスタマイズせずに使用することが要求される。これにより特にK.Tiri らによる文献で支持される SCA に耐性のある全プロシージャは禁止とされる。(【0029】) 本発明によれば,特にこの暗号化の公知の関数の仕様に完全に準拠する一方で暗号化を実施するためには,保護される暗号回路専用のマスクを使用してマスキングによる保護が実施される。本発明による回路には,回路専用のマスク M が単に一定であり,かつ,回路の使用者または設計者にとって未知であるマスキングアーキテクチャが含まれる。(【0030】) 図1によるマスキングパスは,実際,上述の式(1)に従い1次 DPA 攻撃つまりデータレジスタ5,6のみが漏洩すると想定される攻撃の枠組み内で暗号鍵の Vernam 暗号化を実施することが実証されうる。さらにマスキング周囲のいかなるバリアントもまた本発明を実施するために使用することができ,事実,実装は機能性を保持する一方でリファレンス実装とは異なるように表されることで十分である。マスキングの場合,リファレンス実装はゼロマスク(全ゼロ)を有するものと一致するが,マスクが非ゼロになるとすぐに,実装はしかしながら機能性を変更することなく変化する。ここで,実装に可変性を導入するように表現を変えることもまた可能である。例えば ANew DPA Countermeasure Based on Permutation Tables. In SCN, volume 5229 ofLecture Notes in Computer Science, pages 278-292. Springer において,Jean-Sebastian CORON は AES の基本演算部分を2つの全単射,4ビット→4ビットを導入して変更することを提案しているが,そのような方式でそれらを組み立てることにより実際は従来の AES の計算が得られる。この表現の変化もまた秘密実装のきっかけとなりうるが,その情報漏えいはしかしながらこの文献では研究されない。(【0031】) したがって漏えいモデルが未知であるため1次相関攻撃は不可能とされ 29 る。さらに,いわゆる「テンプレート」攻撃などの,測定値のセットまたはカタログの構造に依存する攻撃は各実装が特有であり,汎用のカタログを構築することが不可能であるため実行不可能とされる。(【0032】) 有利には,本発明において実装の多様性は暗号鍵の数に匹敵するまたは実際同等である。特に「第2の原像」タイプの攻撃はしたがって不可能である。活動中の回路と同じマスクを有する,鍵がプログラム可能な回路を偶然に見つける確率は,正しい鍵を偶然に推測する,つまりブルートフォースアタックによる鍵への全数探索で成功する確率に匹敵するかまたは実際,同等である。(【0033】) 図1の例では,マスキングを実装するために付加されたハードウェアは左1と右2のマスクレジスタおよびマスクをデータと組み合わせる XOR ゲート12,13,14ならびに右のマスクレジスタの出力を処理する Feistel関数の換字回路16で形成される。(【0034】) ASIC または FPGA をベースにした実現の枠組み内では,他のタイプの暗号プリミティブのマスキングはソースコード上で直接動作する適切な CADツールの支援で自動化されてもよい。(【0035】) 保護プロシージャは一般にサイドチャネルを介して漏洩するかもしれない秘密を含むあらゆる実装に適用できることを記すことは興味深い。直接の例は暗号鍵の保護であるが,署名鍵は同様の方式で等しく十分に保護される。
さらに暗号アルゴリズムのパラメータを保護する代わりに,それが秘密の場合,アルゴリズムそれ自体を保護することもまた可能である。これは通信が2 地 点 間 で 暗 号 化 さ れ る た め ( サ テ ラ イ ト タ ワ ー ド デ コ ー ダ ( satellitetoward decoder)),共同利用できない暗号が実装されうる有料テレビなどの分野で起こる。したがってその中の1または2以上の要素(換字表または拡散関数などの)を変更する一方で標準化アルゴリズムを使用することは普通である。この方式で,そのセキュリティを弱体化するリスクを冒すことな 30 くアルゴリズムのカスタム化が達成される。(【0036】) 図3は別の進行方式を示す。この例では,標準アルゴリズム A はそのままで再利用されるが,実行される関数がもはや A ではなく,合成 【数4】になるように,それは外部符号(EEin および EEout)で囲い込まれる。この原理の説明が C. Clavier による論文,Secret External Encodings Do Not PreventTransient Fault Analysis, in CHES’07, volume 4727 of Lecture Notes in ComputerScience, pages 181-194 の序章にある。図3の左の部分30,31,32はマスキング技法によって数値 EE(X)の漏洩をどう防ぐことができるかを示す。
関数 EE30は2つのレジスタ31,32により囲い込まれ,そこで第1のレジスタ31はデータ 【数5】 x?mを受信する。並列に配置された 【数6】として画定される関数 EE’33はデマスキングが依然として可能であることを保証する。したがって図3の右の部分に示されるハードウェア33,34,35の付加によって,アルゴリズムへの入力 X が何であるとしてもいずれのレジスタも EE(x)を含まない。この方式で,秘密の外部符号 EE についての任意の情報項目をバックトラックすることが不可能となる。以下では,しかしながら,普遍性を失うことなく,暗号鍵の漏えいに対する保護の典型的な場合に重点が置かれる。(【0037】) FPGA タイプというソリューションによって各回路が大規模な配置時でさえもそれ独自のコンフィギュレーションを有することが有利に可能となる。
31 特に FPGA のソリューションでは,それをカスタマイズするために数値を変更するために,特に構成要素専用のマスクなどのシステム全体をリコンパイルする必要はない。これは,Kerckhoffs の原理に背いておらず,それぞれの実装は実際に秘密であるが独特であることを示唆している。実装を妥協することでセットアップすべてを妥協することは認められない。(【0038】) 特定の FPGA 回路の機能性の懐古的な設計は,それが恒久的な可読メモリ内に配置されるファイル内のソフトウェアに関してプログラムされるという事実によって可能とされうる。そのような懐古的な設計を避けるため「ビットストリーム」と呼ばれる,このファイルの暗号化を可能にする FPGA タイプを使用することが可能である。したがって保護はそれ自体が暗号手段により秘密にされる。コード難読化は機械語から高レベル仕様へのバックトラッキングを対象とした演算を複雑化するための追加の受けである。(【0039】) 図4は本発明による典型的な回路を概略的におよび簡略化した様式で示す。FPGA タイプであるこの回路21には3つの鍵がある。関数鍵 kc が回路21の暗号化を実施する役割を果たす。この暗号化は例えばレジスタ22の内部で入力変数 x を暗号化された変数 y=DES(x,kc)に変換する DES アルゴリズム23である。(【0040】) 非機能の鍵 ki が関数鍵 kc をマスクする役割を果たす。関数鍵のマスク Mを形成するのはこの鍵 ki であり,XOR 演算子がこれら2つの鍵を組み合わせて 【数7】 kc?kiにする。鍵 ki はしたがって DES 実装の関数鍵 kc を磁気放射または特に瞬間消費の観測による情報漏洩24から保護する役割を果たす。(【0041】) 別の非機能の鍵 kb は「ビットストリーム」ファイル25の秘密要素,つ 32 まり少なくとも ki または実際 kc を保護する役割を果たす。(【0042】) この手法では鍵は以下のような方式でサイズが決められることが好ましい。
|ki|=|kc| (2)および |kb|≧|kc| (3)|ki |,|kb|,|kc |はそれぞれ ki の,kb の,および kc の基数を表す。
(【0043】) 本発明によれば,暗号アルゴリズム23の実装は暗号化された変数 y が変数の暗号鍵 kc を保護する鍵 ki と関数的に独立するようにされ,セットアップの情報漏洩は 【数8】ほども多様である(2の|ki|乗)。(【0044】) DES アルゴリズムの場合,y=DES(x,kc,ki)であり,y は ki と関数的に独立である。(【0045】) 【数9】 kc?ki,kiと ki が使用者または設計者にとってを含め完全に未知であることを知った上で kc を推測する必要があるため,1次攻撃は単により困難とされるだけでなく不可能とされることに留意されたい。これにより本発明は高度の信頼を提供し, 【数10】よりも少ない計算力を有するいかなる敵対者に対しても安全が立証される。
33 これは|ki|=|kc|の場合の DES アルゴリズムそれ自体のセキュリティレベルに等しい。(【0046】) PUF(Physically Unclonable Functions)または POK(Physically ObfuscatedKey)タイプの関数(すなわち実装固有の物理的鍵),または回路21に固有の秘密を,外部から供給される鍵の代わりに PKI と呼ばれる公開鍵基盤または信頼をカスタマイズするための他のあらゆるメカニズムによって生成させることが可能な他のあらゆるシステムを使用することが可能である。
(【0047】) 第2の鍵 ki はなお回路の作製後にセキュアな筐体内で単一の乱数を用いてプログラムされうる。(【0048】) 「Shallow Attack」の名でも知られる組み合わせ論理回路への攻撃またはHO-DPA 攻撃に対する対抗措置をさらに使用する定数マスクを用いたマスキングメカニズムを使用することもまた可能である。(【0049】) S.Mangard ら に よ る 文 献 , Successfully Attacking Masked AES HardwareImplementations, In LNCS, editor, Proceedings of CHES’05, volume 3659 of LNCS,pages 157-171, Springer, September 2005, Edinburgh, Scotland に特に呈示されているような,秘密マスクにほとんど依存しない「グリッチ」とも呼ばれる非機能の遷移の存在を利用したアルゴリズムのマスキングへの攻撃は,それを知らずに回路のシミュレーションを実行することが不可能であるため,秘密実装には当てはまらないことに留意されたい。事実,この攻撃は事前特性化モデルとの相関に依存する。この工程は本発明による回路では ASIC で生成されたマスクの設計または FPGA の「ビットストリーム」ファイルを知っている,またはマスクが選択されるサンプルを所持するであろう熟知しうる攻撃者を除いては実行不可能である。この可能性を防止するため,前に記載された PUF 関数が特に使用できる。(【0050】) 特定の独自のアルゴリズム,特に2つの秘密符号間でカプセル化された 34 標準アルゴリズムは,C.Clavier による文献,Secret External Encodings Do Not Prevent Transient Fault Analysis, In CHES, volume 4727 of Lecture Notes in Computer Science, pages 181-194, Springer, 2007 で特に示されるように摂動攻 撃に耐性がない。このクラスの攻撃では攻撃者はレジスタの値を例えば 0x00 などの既知の値に固定できることが必要とされる。本発明による実装 鍵 ki により保護される回路では,データレジスタとマスクレジスタとが互い に素である場合,攻撃者はそこで簡単な欠陥を発生させるよりもはるかに困 難な複数の欠陥を達成する必要があるため,これは事実上非常に困難である。
(【0051】) 実装鍵 ki を有する本発明による保護のタイプでは,例えば RTL レベルで は符号化の点において,または物理的レベルではカプセル化の点において欠 陥を検知するための通常の保護などの他の保護と有利に併用することができ る。これにより受動的な攻撃および能動的な攻撃の両方に対して高度の保護 を達成することを可能とする。(【0052】)3 以上を踏まえると,本願明細書等には,本願発明について,以下の事項が 記載されているものと認められる。
(1) 技術分野 本願発明は,情報漏洩観測攻撃から保護される暗号回路に関するもので ある(【0001】)。ここでいう情報漏洩観測攻撃は,例えば,DPA 攻 撃によるエネルギー消費量の観点又は EMA 攻撃による磁気放射の観点から, システムの時間的挙動を観測することによるサイドチャネル攻撃のことであ る(【0004】)。
(2) 課題 DPA 攻撃及び EMA 攻撃のような情報漏洩観測攻撃に対しては,漏洩を秘 密とは無関係に一定にすることによる秘匿,及び漏洩を予測不能にすること で利用不可能とするマスキングを基にする保護が提案されている(【000 35 4】)。しかし,これらの2つの技法は,実装欠陥から利益を得るであろう 攻撃に対しては依然脆弱である(【0005】)。例えば,差分論理 (WDDL などの)に基づく秘匿は,計算フェーズと評価フェーズとプリチ ャージフェーズとのうちの1つ又は別の間の累積した組合せのずれの差への 攻撃に対して脆弱となる場合があり,また,マスキングは HO-DPA と呼ば れる高階攻撃に敏感な場合がある(【0006】)。
本願発明の目的は,これらの攻撃,特に DPA 又は EMA タイプの攻撃に対 抗することである(【0007】)。
(3) 課題解決手段 前記目的のため,本願発明は,暗号アルゴリズムを実行するための関数 鍵 kc を含む暗号回路であって,前記回路は kc とは別の前記回路のそれぞれ の例に特有の,回路のサイドチャネルを利用した攻撃から回路を保護するこ とを可能とする第2の鍵 ki を含むことを特徴とする(【0007】)。
関数鍵 kc は,例えば XOR 演算によって2つの鍵を組み合わせることによ り第2の鍵 ki によってマスクされ,入力変数 x はマスク鍵 kc?ki によって暗 号化されている(【0009】)。
第2の鍵 ki は,例えば PUF(Physically Unclonable Function)又は POK (Physically Obfuscated Key ) タ イ プ の 関 数 に よ り 生 成 さ れ る ( 【 0 0 1 2】)。
暗号回路は FPGA タイプのプログラマブル回路で実現されてもよく,第2 の鍵 ki は FPGA のプログラミングファイルを介してカスタマイズされてもよ い。暗号回路はソフトウェアの実装により実現されてもよく,この暗号回路 は第3の鍵 kb を含む。第3の鍵 kb は,前記 FPGA 回路のプログラミングフ ァイルを暗号化し,これにより外部記憶の機密性及び FPGA への鍵 ki の移転 の機密性を付与するためのものである(【0015】〜【0019】)。
第2の鍵 ki の基数は,例えば関数鍵 kc の基数に等しく,第3の鍵 kb の基 36 数の基数は関数鍵 kc の基数よりも大きいかまたは等しい(【0020】, 【0021】)。
この暗号化アルゴリズムは DES アルゴリズムである(【0022】)。
(4) 効果 第2の鍵 ki は,例えば秘密実装によって鍵 kc を保護する役割を果たし, また,例えば鍵 ki でマスキングすることにより保護される2つの秘密関数の 囲い込みによってカスタマイズされる標準暗号アルゴリズムからなる秘密ア ルゴリズムを保護する役割を果たす(【0010】,【0011】)。
第2の鍵 ki により導入されるマスキングは,HO-DPA 攻撃に対して保護さ れてもよい(【0014】)。
第2の鍵 ki の基数を関数鍵 kc の基数に等しくしたため,ki への隠しチャネ ル攻撃は kc への暗号解読攻撃よりも困難になる(【0020】)。
4 検討 (1) 便宜上,取消事由4(実施可能要件に関する判断の誤り)について,ま ず検討する。
(2)ア 本願発明の技術思想 (ア) 本願明細書等の記載(【0007】)によれば,本願発明の目的は 「特に DPA または EMA タイプの攻撃に対抗すること」であって,この 目的を達成するために「本発明の対象は暗号アルゴリズムを実行する ための関数鍵 kc を含む暗号回路であって,前記回路は kc とは別の前記 回路のそれぞれの例に特有の,回路のサイドチャネルを利用した攻撃 から回路を保護することを可能とする第2の鍵 ki を含むことを特徴とす る。」とされている。ここで,DPA 攻撃及び EMA 攻撃がサイドチャネ ルを利用した攻撃であることは,本願明細書等の記載(【0004】) 及び技術常識から明らかであるから,段落【0007】の上記記載に よれば,本願発明の第2の鍵 ki は,DPA 攻撃及び EMA 攻撃のようなサ 37 イドチャネルを利用した攻撃から暗号回路を保護するという目的を達成するためのものと認められる。
また,本願明細書等には,関数鍵 kc が第2の鍵 ki と XOR 演算されてマスク鍵 kc?ki となる旨の記載(【0009】)に続き,「第2の鍵 kiは例えば秘密実装によって鍵 kc を保護する役割を果たす。」(【0010】)との記載がある。他方,段落【0041】には,関数鍵 kc と非機能の鍵 ki とを XOR 演算して kc?ki にする旨の記載に続き,「鍵 ki はしたがって DES 実装の関数鍵 kc を磁気放射または特に瞬間消費の観測による情報漏洩24から保護する役割を果たす。」との記載がある。この「磁気放射または特に瞬間消費の観測による情報漏洩24」が EMA攻撃及び DPA 攻撃で用いるサイドチャネルからの情報漏洩のことを指していることは,段落【0004】及び技術常識から明らかである。そうすると,段落【0041】の上記記載は,段落【0009】及び段落【0010】の上記各記載をより具体的に記載したものであると認められる。そして,これらの記載から,第2の鍵 ki は,関数鍵 kc と XOR 演算をすることにより関数鍵 kc のマスクとして働き,関数鍵 kc を DPA 攻撃及び EMA 攻撃から保護する役割を果たすものと理解される。
そうすると,本願発明の目的である「サイドチャネルを利用した攻撃から回路を保護すること」は,段落【0009】,【0010】及び【0041】で言及されているサイドチャネルを利用した攻撃から関数鍵 kc を保護することを意味し,この保護は関数鍵 kc を第2の鍵(又は非機能の鍵)ki でマスクする,すなわち kc と ki を XOR 演算することによって達成されるものと理解される。換言すれば,本願発明の暗号回路においてサイドチャネルを利用した攻撃の目標として想定されているのは関数鍵 kc であり,この関数鍵 kc をそのような攻撃から保護するために第2の鍵 ki を必要とし,関数鍵 kc を第2の鍵 ki と XOR 演算すること 38 によってマスクする(マスク鍵 kc?ki とする)という方法によって,関 数鍵 kc の保護が達成されるものと把握される。
さらに,本願明細書等には,サイドチャネルを利用した攻撃の具体的 な目標として関数鍵 kc 以外のものは記載されていない。
このように,本願発明が想定している攻撃目標は関数鍵 kc であり, それ以外の攻撃目標を想定しない以上,本願発明の暗号回路が出力する 暗号文 y の秘密性は関数鍵 kc に依拠し,暗号文の計算手順(すなわち本 願発明の「暗号化アルゴリズム」)に依拠するものではないと認められ る。そうであれば,関数鍵 kc が判明すれば,本願発明により出力され る暗号文 y を解読し得ることになる。これは,本願発明の暗号回路が出 力する暗号文 y の暗号鍵が関数鍵 kc であることを意味する。すなわち, 本願発明は,秘密情報である関数鍵 kc を用いて平文 x から暗号文 y を計 算する関数を F で表したとき,y=F(x,kc)を満たす暗号文 y を出力す る暗号回路であると認められる(以下,この技術思想を「本願技術思想 @」という。)。
このように理解することは,本願明細書等の「関数鍵 kc が回路21 の暗号化を実施する役割を果たす。この暗号化は例えばレジスタ22の 内部で入力変数 x を暗号化された変数 y=DES(x,kc)に変換する DES アルゴリズム23である。」(【0040】)との記載とも整合する。
(イ) また,前記のとおり,本願発明の暗号回路の保護は関数鍵 kc を第2 の鍵 ki でマスクすることによって達成される。このため,本願発明の暗 号回路において実際に実行される計算処理に当たっては,関数鍵 kc を 第2の鍵 ki と分離した形で使用してはならず,常にマスク鍵 kc?ki を用 いなければならないこととなる。すなわち,本願発明の暗号回路にお いて実際に実行される計算処理に当たっては,単体の関数鍵 kc の入力 を要する上記関数 F とは別の計算方法により,単体の関数鍵 kc を直接 39 用いず上記マスク鍵のみを用いることによって暗号文 y を計算する必要 がある(ただし,マスク鍵自体を生成する部分において関数鍵 kc を直 接用いることは許される。)。
このような,単体の関数鍵 kc を直接用いずマスク鍵のみを用いるこ とにより平文 x から暗号文 y を計算する関数を G で表すと,本願発明の 暗号回路は,暗号文 y の実際の計算を y=G(x,kc?ki)によって計算す るものであると認められる(以下,この技術思想を「本願技術思想A」 という。)。
イ(ア) 上記本願技術思想@及びAによれば,本願発明の暗号回路を具現化 するためには,暗号回路によって実際に計算された暗号文と,暗号化ア ルゴリズム F に基づいて計算された暗号文とが等しいこと,すなわち G(x,kc?ki)=F(x,kc) を満たすことが要求される(以下,この要求を「本願発明の技術的要求」 という。)。
しかし,本願発明の技術的要求を満たす関数 G を構成する計算方法 が,当業者の技術常識に鑑みて自明であると認めるに足りる証拠はない。
そこで,G(x,kc?ki )の具体的な計算方法が本願明細書等に示されて いるかについて,以下検討する。
(イ) 本願明細書等の記載のうち,本願発明の技術分野,背景技術及び課 題を解決するための手段の記載(【0001】〜【0024】)並び に本願発明の実施形態のうち図4に係る部分の記載(【0040】〜 【0052】)には,前記のとおり,本願技術思想@及びAが開示さ れている。しかし,本願発明の技術的要求を満たす関数 G の具体的態 様について開示したものと理解される記載は見当たらない。
また,特許請求の範囲の記載は,上記記載の内容を超えるものではな く,関数 G の具体的態様は記載されていない。
40 (ウ)a 本願明細書等の記載のうち,図1及び2並びにこれらに関する段 落【0025】〜【0036】の部分を見ると,DES アルゴリズム のマスキングの図として,図1及び2が示されており,両図は同様の 回路であるとされている(【0025】,【0026】)。そして, 図1の IP2に対して入力される「マスク」は,図2においては ki と して示されていることから,図1及び2において IP に入力されるマ スク ki は,本願発明の第2の鍵 ki であると認められる。
また,図1及び2における S9への入力に注目すると,E から出力 される xm が kc と XOR 演算されていることから,図1及び2に示され る kc は,関数鍵 kc であると認められる。
b しかし,図1及び2の回路において,マスク鍵 kc?ki は作成されて いない。
上記のとおり,関数鍵 kc と XOR 演算されるものは xm であるとこ ろ,これは,「右のマスクされるデータ(Ri)」6に E を適用したも の(E(Ri))である。図1及び2によれば,この Ri は,「メッセージ」 に IP1を適用したものの右半分と,第2の鍵 ki に IP2を適用したも のの右半分との XOR 演算の結果であって,第2の鍵 ki とは異なる。
他方,xm?kc の計算結果を数式で表すと,メッセージを MES とし, 値の右半分を得る関数を RH とした場合, xm?kc=E(Ri)?kc=E(RH(IP(MES))?RH(IP(ki)))?kc となる。ここで,E は技術常識に鑑みて拡大置換 E を意味し,入力の 32ビットのうち16ビットが重複して使用されて出力48ビットに 置換されるものである(乙1)。そうすると,E は XOR 演算に対し て分配的に作用し, xm?kc=E(RH(IP(MES)))?E(RH(IP(ki)))?kc となる。この計算結果のうち,kc 及び ki に関する部分のみを取り出し 41 てみても,kc?E(RH(IP(ki)))(以下「式(A)」という。)が計算されて いるに過ぎず,明らかに kc?ki とは異なる。
仮に,IP が DES の初期置換であって単にビット位置を入れ替えて いるに過ぎないから無視できるとし,かつ,右半分の演算のみに注目 することで RH を無視できるとしても,前記のとおり E は拡大置換で あるからこれを無視することはできず,kc?E(ki)は,kc?ki はもちろん E(kc)?E(ki)とも異なるものとなる。
c 以上のとおり,本願明細書等の図1及び2に示される回路において は,そもそもマスク鍵 kc?ki が計算されているとは認められないこと から,両図の回路をもって関数 G(x,kc?ki)の具体的態様を開示し たものということはできない。
d また,段落【0028】記載の「【数2】K?M」は,2つの値が XOR 演算されているという点で本願発明のマスク鍵と共通するもの の,記号が異なることから,本願発明を説明したものとは認められな い。
仮に当該記載が本願発明を説明したものだとすると,当該記載の 「秘密鍵 K」は保護対象となる鍵であるから,その機能の面から本願 発明の関数鍵 kc に該当すると解されるが,【数2】と式(A)とを比較 すると,M=E(RH(IP(ki)))であると推測されるところ,E(RH(IP(ki)))は 明らかに第2の鍵 ki そのものとは異なる値である。したがって,当該 記載は,本願発明と整合せず,やはり本願発明を説明するものという ことはできない。
e 図1及び2に関する本願明細書等のその他の記載にも,関数 G の 具体的態様を開示したものと見られる記載はない。
したがって,本願明細書【0025】〜【0036】並びに図1 及び2には,関数 G の具体的態様が記載されているとはいえない。
42 (エ) 本願明細書等の記載のうち,図3及びこれに関連する段落【003 7】〜【0039】には,本願発明の関数鍵 kc に対応する概念が記載 されていない。そうである以上,これらの記載及び図に関数 G(x, kc?ki)の具体的態様が記載されているとはいえない。
なお,図3は図1及び2において Feistel 関数 f を示す囲みと一見類似 するようにみえるけれども,図1及び2と図3にそれぞれ現れる要素の 異同ないし対応関係は不明というほかなく,また,図1及び2に関する 説明(【0025】〜【0036】)に続いて「図3は別の進行方式を 示す。」(【0037】)と記載されていることに鑑みると,図1及び 2と図3との間には技術的関連性はなく,相互に独立したものと見るの が相当である。このため,図1〜3を総合的に見ても,関数 G の具体 的態様は明らかでない。
ウ 以上より,本願明細書等には関数 G の具体的態様が記載されていない というべきである。そうである以上,本願発明を具現化して実施するこ とはできない。
したがって,本願明細書等の発明の詳細な説明の記載は,本願発明の 属する技術の分野における通常の知識を有する者がその実施をすること ができる程度に明確かつ十分に記載したものということはできないから, 法36条4項1号に違反する。これと同旨をいう本件審決に誤りはない。
エ 原告の主張について (ア) 原告は,本願明細書等の記載(【0027】,【0028】)並び に図1及び2から,両図に示される回路の(マスク m によってマスク される)暗号鍵 kc が,(マスク M によってマスクされる)秘密鍵 K と 同一であり,かつ,秘密鍵とは,暗号文 y の復号化に必要な鍵であって 暗号化アルゴリズム F(x,k)を実行するための鍵 k であると定義され るから,図1及び2に示される回路で暗号化アルゴリズム F(x,kc)を 43 実行すると,暗号文 y=F(x,kc)が出力される(秘密鍵 kc が暗号文 y の復号化に必要な鍵である)ということが示されているといえ,これ は,本願の請求項1の「暗号化アルゴリズムを実行するための関数鍵 kc を含む暗号回路(21)」の記載に相当する旨主張する。
しかし,前記のとおり,本願明細書等の図1及び2並びにそれらを説 明する段落【0025】〜【0036】を参照しても,両図の S’がど のような関数であるかが不明であるため,そこに示される暗号回路の動 作は不明であり,その回路が暗号文 y=F(x,kc )を出力するものであ るか否かは定かではない。
また,本願明細書等には「図1に本発明が適用されうるマスキングの モードを呈示する。」(【0025】),「対比のために,図2はマス キングによる保護を保証するためのハードウェアオーバーヘッドを強調 する同様の回路を示し,このオーバーヘッドを生じさせる回路は破線に より示されている。」(【0026】)との記載があるが,これらの記 載の意味は明確とはいえず,図1及び2の回路が DES と同じ出力を保 証しているとまでは読み取れない。
さらに,本願発明は関数鍵 kc を第2の鍵 ki で XOR 演算してマスク鍵 kc?ki を作成し,入力変数 x をマスク鍵で暗号化するものであるところ, 前記のとおり,図1及び2の回路においてはマスク鍵 kc?ki が計算され ていないのであるから,両図の回路が本願発明の実施形態であるとは認 められない。
(イ) 原告は,本願明細書等の図4には,関数鍵 kc がマスク(第2の鍵)ki と XOR 演算されたマスク鍵 kc?ki が DES アルゴリズム23の内部のレ ジスタ22に入力されること,及び入力変数 x が DES アルゴリズム2 3に入力されることが示されているから,DES アルゴリズム23に入 力された入力変数 x は,DES アルゴリズム23の内部のレジスタ22に 44 入力されたマスク鍵 kc?ki によって暗号化されることを当業者であれば理解する旨主張するとともに,本願明細書等の記載(【0027】)並びに図1及び2によれば,図1ないし図2の XOR ゲート8で,メッセージデータ(入力変数 x)と第2の鍵 ki が XOR 演算(x?ki)され,その演算結果がレジスタ6を経て Feistel 関数10に入力され,E で示される箇所を経て,関数鍵 kc と XOR 演算(x?ki?kc)されていることが理解されるところ,排他的論理和?(XOR 演算子)は交換法則及び結合法則が成立し,これらを適用すれば,x?ki?kc は x?(kc?ki)となるから,図1及 び 2 に は 「 マ ス ク 鍵 kc?ki に よ っ て 入 力 変 数 x が 暗 号 化 さ れ(x?(kc?ki))」という事項が示されている旨主張する。
しかし,まず,本願明細書等の図4を参照しても,レジスタ22に格納されたマスク鍵 kc?ki が DES アルゴリズム23において果たす役割については記載されていないことから,レジスタ22に格納されたマスク鍵により入力変数 x が暗号化されることを読み取ることはできない。かつ,レジスタ22について,本願明細書等には「関数鍵 kc が回路21の暗号化を実施する役割を果たす。この暗号化は例えばレジスタ22の内部で入力変数 x を暗号化された変数 y=DES(x,kc)に変換する DESアルゴリズム23である。」(【0040】)との記載はあるものの,当該記載はレジスタ22にマスク鍵 kc?ki が入力されることすら開示していない。
また,本願明細書等の図1及び2については,前記のとおり,そもそも,両図の回路は本願発明の実施形態とはいえない。しかも,原告の主張に係る計算手順の説明は,初期置換 IP,値の右半分を得る関数 RH(図示されない)及び拡大置換 E の影響を無視したものであって,妥当でない。仮に IP,RH 及び E の影響を無視し得るとしても,図1及び2の計算手順は,入力変数 x と第2の鍵 ki とを XOR し,その結果と関数 45 鍵 kc とを XOR することにより x?ki?kc を得ており,マスク鍵 kc?ki を計 算してから入力変数 x とマスク鍵とを XOR するものではない。すなわ ち,この点に関する原告の主張は,図1及び2の計算手順を無視したも のというべきである。
(ウ) 原告は,本願明細書等の記載(【0037】)及び図3によれば, 同図において,入力データ X が x?kc であり,マスク M が第2の鍵 ki で あるとすると,レジスタ31の前段の XOR 演算部で x?kc?ki の演算がさ れ,いずれのレジスタにおいても第2の鍵 ki によってマスキングがされ ることにより,x?kc は漏洩されないが,レジスタ35の後段の XOR 演 算部からは,第2の鍵 ki がデマスキングされた EE(x?kc)が出力され るという事項が示されていること,図2においても,図3と同様に, Feistel 関数10内の E の後段の XOR 演算部で x?kc?ki の演算がされ,い ずれのレジスタにおいても第2の鍵 ki によってマスキングがされて, x?kc は漏洩されないが,XOR 演算部13,14からは,第2の鍵 ki が デマスキングされた暗号文が出力されるという事項が示されている旨 主張する。
しかし,前記のとおり,そもそも,本願明細書等の図1及び2の回路 は本願発明の実施形態であるとはいえないし,図2の Feistel 関数10内 の E の後段の XOR 演算部で演算された結果は,原告の主張する x?kc?ki ではなく,E(RH(IP(MES))?RH(IP(ki)))?kc である。仮に,図2の Feistel 関数10内の E の後段の XOR 演算部で演算された結果が x?kc?ki であっ たとしても,原告の主張は図2における x?kc,ki,S 及び S’がそれぞれ 図3における X,M,EE 及び EE’に対応することを前提とするところ, 本願明細書等の記載からそのような対応関係を理解し得ないことは前記 イ(エ)のとおりである。
(エ) 原告は,暗号回路を実施するための事項以外の事項である復号を実 46 施するための事項が発明の詳細な説明に記載されていないことをもっ て,実施可能要件を満たしていないということにはならない旨主張す るけれども,前記のとおり,本願明細書等は,暗号回路としての本願 発明を実施するための事項(本願発明の技術的要求を満たすような具 体的な関数 G)が理解できるように記載されていない。
(オ) 原告は,本願発明において,第2の鍵 ki は,マスク鍵 kc?ki のために 使用される一方で,XOR 演算を繰り返すことによって消去されるから, 本願明細書等の図2の出力15から最終的に得られた暗号文 y を解読す るためには,関数鍵 kc さえ知り得ればよく,第2の鍵 ki を要しない旨 主張する。
しかし,原告の上記主張は,暗号文 y(=DES(x,kc))と x?kc とを 混同するものであり,その前提に誤りがある。
(カ) その他原告がるる指摘する事情を考慮しても,この点に関する原告 の主張は採用し得ない。
(3) 以上のとおり,本願明細書等の発明の詳細な説明の記載は実施可能要件 を満たさないとする本件審決に誤りはなく,少なくとも原告主張に係る取消 事由4については理由がない。そうすると,その余について論ずるまでもな く,原告の請求は理由がないというべきである。
5 結論 よって,原告の請求は理由がないからこれを棄却することとし,主文のとお り判決する。
裁判長裁判官 鶴岡稔彦