平成29(行ケ)10051 審決取消請求事件

裁判年月日・裁判所
平成30年4月12日 知的財産高等裁判所 3部 判決 請求棄却
ファイル
hanrei-pdf-87676.txt

キーワード

判決文本文41,760 文字)

平成30年4月12日判決言渡平成29年(行ケ)第10051号審決取消請求事件口頭弁論終結の日平成30年2月8日判決 原告アンスティテュミーヌーテレコム 同訴訟代理人弁理士木村高久同小幡義之 被告特許庁長官同指定代理人高木 進同石井茂和同佐久聖子同野崎大進同板谷玲子 主文 1 原告の請求を棄却する。 2 訴訟費用は原告の負担とする。 3 この判決に対する上告及び上告受理申立てのための付加期間を30日と定める。 事実 及び理由第1 請求特許庁が不服2014-26792号事件について平成28年10月13日にした審決を取り消す。 第2 前提事実(いずれも当事者間に争いがない。) 1 特許庁における手続の経緯等原告は,発明の名称を「その暗号変換により特に情報漏洩観測攻撃から保護される暗号回路」とする発明について,平成22年1月18日(パリ条約による優先権主張外国庁受理2009年1月20日仏国)に特許出願をした(特願2011-546771号。以下「本願」という。)。これに対し,平成26年1月15日付けで拒絶理由が通知されたことから,原告は,同年5月2日に手続補正書等を提出したが,同年9月4日付けで拒絶査定がされた。 そこで,原告は,同年12月26日,特許庁に対し,拒絶査定不服審判を請求した。これに対し,特許庁は,当該審判請求を不服2014-26792号事件として審理をし,原告に対し,平成27年9月17日付けで拒絶理由を通知した。これを受け,原告は,平成28年 査定不服審判を請求した。これに対し,特許庁は,当該審判請求を不服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 を 含むことを特徴とする回路であって,前記関数鍵kc はXOR 演算によって前記2つの鍵を組み合わせることにより前記第2の鍵ki によってマスクされ,入力変数x はマスク鍵【数1】によって暗号化され,前記暗号回路は,FPGA タイプのプログラマブル回路において実現され,前記暗号回路は,前記FPGA タイプのプログラマブル回路のプログラミングファイル(25)を暗号化するための第3の鍵kb を含み,前記第2の鍵ki はPUF(PhysicallyUnclonab 前記暗号回路は,前記FPGA タイプのプログラマブル回路のプログラミングファイル(25)を暗号化するための第3の鍵kb を含み,前記第2の鍵ki はPUF(PhysicallyUnclonableFunction)により生成されることを特徴とする回路。 【請求項2】前記第2の鍵ki によって導入されるマスキングはHO-DPA 攻撃から保護されることを特徴とする,請求項1に記載の回路。 【請求項3】前記第2の鍵ki の基数は前記関数鍵kc の基数に等しいことを特徴とする,請求項1または2に記載の回路。 【請求項4】前記第3の鍵kb の基数は前記関数鍵kc の前記基数よりも大きいかまたは等しいことを特徴とする,請求項1に記載の回路。 【請求項5】前記暗号化アルゴリズムはDES アルゴリズムであることを特徴とする,請求項1~4のいずれか1項に記載の回路。 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 のに過ぎず,格別顕著なものということはできないから,法29条2項により特許を受けることができず,本願発明2~5について検討するまでもなく,本願は拒絶すべきものであるとした。 (1) 法36条6項2号について一般に,データの暗号化と復号化とが対となって別々の装置を用い,ある装置(例えば送信側)で暗号化されたデータは別の装置(例えば受信側)で復号化されることによりデータを暗号化する目的が実現されるところ,本願発明1は「暗号化アルゴリズムを実行するための関数鍵kc を含む暗号回路(21)であって,…第2の鍵ki はPUF(PhysicallyUnclonableFunction)により生成される」事項を有することから,前記「PUF により生成される」「第2の鍵ki」に係る暗号化と復号化が対となると解されるが,例えば復号化側の別の装置では(PUF はクローン不能であるから,前記別の装置では第2の鍵kiと同じ鍵を持つことはできないので)復号化できないと解される。 本願明細書等の記載(【0002】)には,前記2つの側(送信側と受信側)が同一である場合の言及はあるとしても,本願発明1は「同一」であるとの限定はしておらず,前記2つの側が同一である場合,別々である場合のいずれの場合も,暗号化されたデータをどのように復号化するのかが不明であって,どのように(復号可能に)暗号化するのか明確に記載されたものとはいえず,しかも,技術的意義も不明である。 このため,本願発明は,法36条6項2号の要件を満たしていない。 (2) 法36条4項1号について本願発明1は「kc⊕ki によって暗号化され,… 第2の鍵ki はPUF(PhysicallyUnclonableFunction)により生成される」事項を有する回路の発明であるが,当 いて本願発明1は「kc⊕ki によって暗号化され,… 第2の鍵ki はPUF(PhysicallyUnclonableFunction)により生成される」事項を有する回路の発明であるが,当該暗号化に関連する復号化について発明の詳細な説明には説明されておらず,前記第2の鍵kiはPUF(物理的クローン不能関数)により生成されるものであるから,マスク鍵(kc⊕ki)により暗号化された入力変数x を何を用いてどのように復号すればよいのか,暗号化/復号化に係る回路は唯一の回路を用いるのか,別の回路を用いるのか,前記唯一の回路を用いて暗号化と復号化をする技術的意義はどのようなものなのか不明であり,また,別の回路を用いるならいかにして同じPUF により生成される第2の鍵ki を有する別の回路が得られるのか不明である。 したがって,本願明細書等に係る発明の詳細な説明は,当業者が本願発明を実施することができる程度に明確かつ十分に記載されたものではない。 (3) 法29条2項についてア引用発明DES 暗号アルゴリズムを実行するための暗号キーを含むDES 計算ユニット,キーマスキングユニット,メモリを含む暗号ハードウェアであって,前記ハードウェアは,マスクを用いるマスキング方法(偽またはダミー演算)の使用により,あるラウンドにおける暗号化アルゴリズム置換(S ボックス)演算の(キー側の)入力値のサイドチャネル攻撃からのハードウェアエンジンを保護することを可能とするマスクを含むハードウェアであって,前記キーはXOR 演算によって前記キーとマスクとを用いてマスキングをかけたキーを生じさせ,入力データは前記マスキングをかけたキーに よってXOR 演算が適用されて暗号化され,前記マスクは事前に構築されたマスキング表を用いて スクとを用いてマスキングをかけたキーを生じさせ,入力データは前記マスキングをかけたキーに よって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 を含」むのに対し,引用発明は,そのような事項を有していない点。 [相違点3]前記第2の鍵kiは手段を用いることにより生成されることに関し,本願発明1は「PUF(PhysicallyUnclonableFunction)」により生成されるのに対し,引用発明は,そのような事項を有していない点。 ウ判断(ア) 相違点1及び3について引用文献2には,「マスクは,物理的アンクローンナブルな物理 Function)」により生成されるのに対し,引用発明は,そのような事項を有していない点。 ウ判断(ア) 相違点1及び3について引用文献2には,「マスクは,物理的アンクローンナブルな物理的パラメータネットワーク(Function;関数,機能)により生成される」技術が示されている。 また,引用発明と引用文献2とは,いずれも暗号化保護のための技術に係るものである。 そうすると,引用発明において,回路に係る第2の鍵ki(マスク)であることに関し,「前記回路に専用の」第2の鍵ki であるとなすこと,及び,前記第2の鍵ki(マスク)は所定の手段を用いることにより生成されることに関し,「PUF(PhysicallyUnclonableFunction)」により生成されるとなすことは,引用文献2の前記技術を参酌することにより当業者が容易になし得ることである。 (イ) 相違点2について特表2004-519111号公報(甲4。以下「参考文献1」という。)及び特表2008-512909号公報(甲5。以下「参考文献2」という。)に見られるように,FPGA プログラムが意図する特定の組のFPGA 以外のFPGA をプログラムするためのFPGA プログラムの使用を阻止するため,あるいは,単一のセキュアな集積回路チップ上に暗号処理要素を設けることを目的として「暗号化回路は,FPGA タイプのプログラマブル回路において実現され,前記回路は,前記FPGA タイプのプログラマブル回路のプログラミングファイルを暗号化するための鍵 を含む」技術は,周知の技術であったと認められる。 そうすると,引用発明において「前記暗号回路は,FPGA タイプのプログラマブル回路において実現され,前記暗号回路は,前記FPGA タイプのプログラマブル回路 は,周知の技術であったと認められる。 そうすると,引用発明において「前記暗号回路は,FPGA タイプのプログラマブル回路において実現され,前記暗号回路は,前記FPGA タイプのプログラマブル回路のプログラミングファイルを暗号化するための第3の鍵kb を含」むとなすことは,前記周知の技術を参酌することにより容易になし得ることである。 (ウ) したがって,本願発明1は,引用発明,引用文献2ないし周知慣用の技術に基づいて当業者が容易になし得るものであり,その奏する作用効果は,引用発明,引用文献2ないし周知慣用の技術の奏する作用効果から当然予測される範囲内のものに過ぎず,格別顕著なものということはできないのであり,法29条2項により特許を受けることができない。 第3 当事者の主張 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 を暗号化するだけのも のである。ここで,「暗号化 鍵kc によって暗号化アルゴリズムを実行して暗号文y を出力する操作を意味する。 他方,マスク鍵kc⊕ki とは,あくまで入力変数x を暗号化するだけのも のである。ここで,「暗号化」の操作とは,本願発明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の意義は,以上 2の鍵kiが未知であるため容易なことではなく,このため,暗号文から平文である入力変数x を復号する(攻撃者にとっては解読する)ことはできない(本願明細書等【0046】)。本願発明1の意義は,以上の点にある。 ウしかし,本件審決は,本願発明1の認定に当たり,本願発明1の上記意義をなんら認定しなかった。この点で本件審決には誤りがある。 (2) 取消事由2(本願発明1と引用発明との一致点及び相違点の認定の誤り)ア引用文献1には「マスキングをかけたキーを使用してDES 暗号アルゴ リズムを実行し,結果を出力データとしてメモリ31に再び書き込む。」(引用文献1に対応する特表2009-516964号公報(甲17)の【0034】。以下,引用文献1の訳(段落番号を含む。)は同公報による。)との記載がある。このため,引用発明において暗号アルゴリズムを実行し,暗号文を出力させることに機能するキーは,マスキングをかけたキーである。 他方,引用文献1には「アルゴリズムのS ボックスの入力側におけるアルゴリズムの実行のその部分を直接標的にすることができる。」(【0006】)と記載されており,サイドチャネルを利用した攻撃がされるのは,S ボックスの入力側である。また,引用文献1の図2には,S ボックスS1 の入力側に,キーK1 をマスク[15]によってマスクしたキーを用いてデータ1を暗号化することが示されている。このため,引用発明においてサイドチャネルを利用した攻撃の攻撃者によって漏洩される(可能性のある)キーは,マスキングをかけたキーである。 以上より,引用発明において暗号文を復号する(攻撃者にとっては解読する)ためには,マスキングをかけたキーを知れば足り,マスキングをかける対象となるキーを知る必要はない。 イしたがって,本願 。 以上より,引用発明において暗号文を復号する(攻撃者にとっては解読する)ためには,マスキングをかけたキーを知れば足り,マスキングをかける対象となるキーを知る必要はない。 イしたがって,本願発明1と引用発明とを対比すると,本願発明1では,マスキングの対象となるキー,すなわち第2の鍵ki によってマスキングされる対象となる関数鍵kc が,暗号化アルゴリズムを実行して暗号文を出力することに機能するのに対して,引用発明の「暗号キー」は,それ単独で暗号化アルゴリズムを実行して暗号文を出力することに機能するものではなく,暗号キーとマスクとがXOR 演算された「マスキングをかけたキー」が暗号アルゴリズムを実行して暗号文を出力することに機能する,という点で異なる。 ウそうすると,本件審決は,本願発明1と引用発明との一致点として「暗 号化アルゴリズムを実行するための関数鍵kc」を認定している点で誤りである。 (3) 取消事由3(容易想到性に関する認定の誤り)ア相違点2に関する本件審決の認定・判断については,実質的に争わない。 イ相違点1及び3について(ア) 前記のとおり,本願発明1と引用発明とは,本願発明1では,マスキングの対象となるキー,すなわち第2の鍵kiによってマスキングされる対象となる関数鍵kc が,暗号化アルゴリズムを実行して暗号文を出力することに機能するのに対して,引用発明の「暗号キー」は,それ単独で暗号化アルゴリズムを実行して暗号文を出力することに機能するものではなく,暗号キーとマスクとがXOR 演算された「マスキングをかけたキー」が暗号アルゴリズムを実行して暗号文を出力することに機能する,という点で異なる。 このため,本願発明1では,サイドチャネルを利用した攻撃によって攻撃者がマスク鍵kc⊕ki マスキングをかけたキー」が暗号アルゴリズムを実行して暗号文を出力することに機能する,という点で異なる。 このため,本願発明1では,サイドチャネルを利用した攻撃によって攻撃者がマスク鍵kc⊕ki を知ったとしても,そこから関数鍵kc を推測することは,第2の鍵kiが未知であるため容易なことではなく,その結果,暗号文を復号する(攻撃者にとっては解読する)ことはできないのに対し,引用発明では,サイドチャネルを利用した攻撃によって攻撃者がマスキングをかけたキーを知ることができれば暗号文を復号することができてしまうという点で,両者は発明の作用効果の点でも異なる。 さらに,引用発明では,真のマスクを用いた真の演算以外に,ダミーマスクを用いたダミー演算を実行する必要があるとともに,真のメッセージ以外にダミーメッセージを生成する必要があるのに対し,本願発明1では,ダミー演算及びダミーメッセージの生成は不要である。 このように,本願発明1は,引用発明に対して顕著な作用効果を奏功することから,引用発明から容易に想到されるものではない。 (イ) 引用文献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によってマスク ,その結果の値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を容易に想到することは できない。 (エ) 参考文献1及び参考文献2には本願発明1の「第2の鍵ki によってマスクされる鍵であって,暗号化アルゴリズムを実行する関数鍵kc」,「暗号化アルゴリズムを実行する関数鍵kcをマスクする第2の鍵ki」,「入力変数x をマスクするマスク鍵kc⊕ki(暗号化アルゴリズムを実行する関数鍵kc と第2の鍵ki がXOR 演算によって組み 「暗号化アルゴリズムを実行する関数鍵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 つ まり秘密鍵K それ自体がマスクM により暗号化される。」との記載(【0028】)があるところ,上 される。そして,本願明細書等には,図1及び2に示される回路の説明として「K⊕M つ まり秘密鍵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 アルゴリズム23の内部のレジスタ22に入力されることが示されている。他方,同図には,入力変数x が,DES アルゴリズム23に入力されることも示されている。このため,DES アルゴリズム23に入力された入力変数x は,DES アルゴリズム23の内部のレジスタ22に入力されたマスク鍵kc⊕ki によって暗号化されることを,当業者であれば理解する。 また,本願明細書等の「左右のデータレジスタに保存される前に,メッセージのデータは左でXOR ゲート7および右で 入力されたマスク鍵kc⊕ki によって暗号化されることを,当業者であれば理解する。 また,本願明細書等の「左右のデータレジスタに保存される前に,メッセージのデータは左でXOR ゲート7および右でXOR ゲート8という手段によりマスクデータと組み合わされることによってマスクされる。 暗号鍵9,k はまたFeistel 関数10によりマスクm によってマスクされる。」(【0027】)との記載並びに図1及び2によれば,XOR ゲート8で,メッセージデータ(入力変数x)と第2の鍵ki がXOR 演算 (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の鍵kiによってマスキングがされることにより,x⊕kc は漏洩されないが,レジスタ35の後段のXOR 演算部からは第2の鍵ki がデマスキングされたE(x⊕kc)が出力されるという事項が示されているといえる。 また,本願明細書等の図2においても,図3と同様に,Feistel 関数10内のE の後段のXOR 演算部でx⊕kc⊕ki の演算がされ,いずれのレジスタにおいても第2の鍵ki によってマスキングがされて,x⊕kc は漏洩されないが,XOR 演算部13,14からは,第2の鍵ki がデマスキングされた暗号文が出力されるという事項が示されているといえる。 イ(ア) 本願発明は,その名称が示すとおり「その暗号変換により特に情報漏洩観測攻撃から保護される暗号回路」に関し,暗号回路においてサイドチャネル攻撃から保護されることを課題とする。したがって,本願発明の暗号回路を実施するための事項を発明の詳細な説明に記載すれば足り,暗号回路を実施するための事項以外の事項である復号を実施するた めの事項が発明の詳細な説明に記載されていないことをもって,実施可能要件を満たしていないということにはならない。 (イ) マスク鍵kc⊕ki によって暗号化された入力変数x を,暗号回路から「y=DES(x,kc)」として第2の鍵ki を用いない形式で出力することは可能である。 すなわち,本願明細書等の図2に示されるとおり,本願発明においては,暗号化アルゴリズムにXOR ゲート7,8,12,13,14を付加することによって,第2の鍵ki は,マスク鍵kc⊕ki のために使用される一方で,XOR 演算を繰り返すことによって最終的に消去される。このため,出力15(同図)から最終的に得られた暗号文y を解読するためには,関数鍵kc i は,マスク鍵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に入力 されてこれを実行し,入力変数x から暗号文y を出力することに機能する鍵のことであり,「暗号化アルゴリズム」の操作とは,本願の請求項1に記載の「暗号化アルゴリズムを実行する」操作であり,関数鍵kcによって暗号化アルゴリズムを実行して(最終的に)暗号文を出力する操作を意味する旨主張する。 しかし,本願発明1に係る特許請求の範囲には「暗号化アルゴリズムを実行するための関数鍵kc を含む暗号回路(21)であって」と記載されているに過ぎず,「関数鍵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 から暗号 文,つまり暗号化された変数y を出力することに機能」することや,「y=DES(x,kc)」として出力されることについては,何ら特定されていない。 したがって,原告の上記主張は,本願の特許請求の範囲の記載に基づくものではな を出力することに機能」することや,「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の特許請求の範囲には「暗号化ア ルゴリズムを実行するための関 は,暗号化アルゴリズムを実行して暗号文を出力することに機能するものである旨主張する。 しかし,前記のとおり,本願発明1の特許請求の範囲には「暗号化ア ルゴリズムを実行するための関数鍵kc を含む暗号化回路(21)であって」と記載されているに過ぎず,「暗号文を出力することに機能」するものであることは何ら特定されていないから,原告の上記主張は,本願の特許請求の範囲の記載に基づくものではない。 イ原告は,引用発明につき,引用発明の「暗号キー」は,それ単独で暗号化アルゴリズムを実行して暗号文を出力することに機能するものではなく,暗号キーとマスクとがXOR 演算された「マスキングをかけたキー」が暗号化アルゴリズムを実行して暗号文を出力することに機能する旨主張する。 しかし,引用文献1の記載(【0008】,【0011】)によれば,引用文献1の暗号化アルゴリズムは,ランダム順で真及びダミーキーを使用しており,ダミーキーから間違った結果はダミーメモリロケーションに格納されるが,Zero でマスキングされたキーは「真のキー」として,その結果は真の結果としてメモリに格納される。ここで,Zero でマスキングされたキーはマスキングされないキーと等価であることは明らかであるので,引用発明の「『DES 暗号アルゴリズム』を実行するための暗号キーを含むDES 計算ユニット,キーマスキングユニット,メモリを含む暗号ハードウェア」における「暗号キー」には,マスキングされたダミーキーだけでなく,マスキングされないキーと等価である「真のキー」が含まれる。すなわち,引用発明の「暗号キー」には,本願発明1の「関数鍵kc」に相当するものも含まれるといえる。 したがって,引用発明に関する原告の上記主張は,引用文献1の記載の理解を誤ったものである。 。すなわち,引用発明の「暗号キー」には,本願発明1の「関数鍵kc」に相当するものも含まれるといえる。 したがって,引用発明に関する原告の上記主張は,引用文献1の記載の理解を誤ったものである。 (3) 取消事由3(容易想到性に関する認定の誤り)に対しア原告は,本願発明1では,マスキングの対象となるキー,つまり第2の鍵ki によってマスキングされる対象となる関数鍵kc が,暗号化アルゴリ ズムを実行して暗号文を出力することに機能するのに対して,引用発明では,マスキングをかけたキーが暗号アルゴリズムを実行して暗号文を出力することに機能するという点で異なるため,本願発明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 によって暗号化」との特定がされているもの しかし,前記のとおり,本願の特許請求の範囲の記載では「暗号化アルゴリズムを実行するための関数鍵kcを含む暗号回路」,「入力変数x はマスク鍵kc⊕ki によって暗号化」との特定がされているものの,「第2の鍵kiによってマスクされる鍵であって,暗号化アルゴリズムを実行する関数鍵kc」,「暗号化アルゴリズムを実行する関数鍵kc をマスクする第2の鍵ki」,「入力変数x をマスクするマスク鍵kc⊕ki(暗号化アルゴリズムを実行する関数鍵kc と第2の鍵ki がXOR 演算によって組み合わせられた鍵)」という態様は,本願の特許請求の範囲で特定されていない。 したがって,原告の上記主張は,本願の特許請求の範囲の記載に基づくものではない。 (4) 取消事由4(実施可能要件に関する認定の誤り)及び取消事由5(明確 性要件に関する認定の誤り)に対しア本願発明を暗号回路として実施するための事項が本願明細書等に記載されているということはできない。 すなわち,暗号回路といえるためには,復号可能な暗号化を実行することが必要であることは,暗号技術分野の技術常識である。そして,本願の請求項では,入力変数x をマスク鍵kc⊕ki で暗号化しているから,暗号化の際と復号化の際には同じ秘密鍵が必要となるという共通鍵暗号の技術常識に照らし,復号化の際には暗号化の際に使用したマスク鍵kc⊕kiが必要となる。 しかし,サイドチャネル攻撃によって暗号化の際に使用した秘密鍵は特定されてしまうことから,秘密鍵kc を使用する代わりにマスク鍵kc⊕kiを使用して暗号化を行ったとしても,暗号解読に必要なマスク鍵kc⊕ki が特定されてしまうことになる。これは,本願の請求項1の「サイドチャネルを利用した攻撃から回路を保護することを可能とする第2の鍵kiを含 て暗号化を行ったとしても,暗号解読に必要なマスク鍵kc⊕ki が特定されてしまうことになる。これは,本願の請求項1の「サイドチャネルを利用した攻撃から回路を保護することを可能とする第2の鍵kiを含むことを特徴とする回路」という記載と整合しないから,上記請求項の記載は技術的に不明瞭となっている。 また,本願明細書等の実施例(図2及び4)によっても,入力変数x をマスク鍵kc⊕ki で暗号化しながら,出力暗号文として「y=DES(x,kc)」が出力されることが,当業者に実施可能な程度に具体的に記載されているということはできない。 したがって,本願の請求項は技術的に不明瞭であるから,明確性要件を満たしているとはいえず,また,本願明細書等には,本願の請求項に係る発明である回路を暗号回路として実施するための事項が記載されていないから,実施可能要件を満たしているとはいえない。 イ本願明細書等の図2について(ア) 原告は,本願明細書等の図2を根拠として,第2の鍵ki は,マスク 鍵kc⊕ki のために使用されるが,XOR 演算を繰り返すことによって消去され,最終的に得られた暗号文x⊕kc を解読するためには,関数鍵kc さえ知り得ればよく,第2の鍵ki を要しない旨主張する。 (イ) しかし,図2では,入力変数x であるメッセージに初期置換IP1を行い(IP(x)),第2の鍵ki にも初期置換IP2を行い(IP(ki)),IP1の出力IP(x)とIP2の出力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 とでXO ,レジスタ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 で暗号化」するためには,少なくとも第 2の鍵ki と関数鍵kc とが間接的にXOR 演算していること,すなわち,E(IP(x)⊕IP(ki))⊕kc の演算順序を入れ換え kc⊕ki で暗号化」するためには,少なくとも第 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のS’16は,DES アルゴリズムの基本構成であるS ボックス9と区別され,S ボックス9とは異なり,2つの48ビット幅の入力を持っている。しかし,図2のS’16がどのような演算を行っているのかについて,本願明細書等には何ら記載も示唆もない。このため,図2に記載の実施例を当業者が実施することはできず,実施可能要件を満たしているとはいえない。 第4 当裁判所の判断 1 本願発明本願発明に係る特許請求の範囲請求項の記載は,前記(第2の2)のとおりである。 2 本願明細書等の記載等(1) 技術分野(【0001】)本発明はそれらの暗号化により特に情報漏洩観測攻撃から保護される暗号回路に関する。 (2) 背景技術通信および情報処理のための手段のローミング能力が増すとともに,新しい攻撃が考えられるようになっている。実行速度の点から,それを構成する電子回路,例えばDPA 攻撃によるエネルギー消費量の点から,またはその放射挙動,例えばEMA 攻撃による磁気放射の点からシステムの時間的挙動を観測することにより大量の情報が漏洩しうる。サイドチャネルへのこれらの攻撃に対しては,特に,この例では秘密とは無関係に漏えいを一定にすることを伴う秘匿と,漏えいをランダムにすることを伴う,つまり予測不能でありしたがって利用不可能とするマスキングと,を基にする保護が提案されている。(【0004】)これらの2つの技法は情報の取得を狙った攻撃の困難さを増すことを可能とするが,それらはそれでもなお実装欠陥から利益を得るであろう攻撃に対しては依然脆弱である。DPA 攻撃の例は,P.Kocher らによる文献,DifferentialPowerAnalysis, InproceedingsofCRYPT’99, volum しては依然脆弱である。DPA 攻撃の例は,P.Kocher らによる文献,DifferentialPowerAnalysis, InproceedingsofCRYPT’99, volume 1666 ofLNCS,pages 338-397, Springer-Verlag, 1999 に記載されている。EMA 攻撃の例はK.Gandolfi らによる文献,ElectromagneticAnalysis-ConcreteResults, InCHES,volume 2162 ofLNCS, pages 251-261, Springer-Verlag, 2001 に記載されている。 (【0005】)起こりうるまたは立証された脆弱性の例は数多く存在する。 以下が特に挙げられる。 差分論理(WDDL などの)に基づく秘匿は計算フェーズと評価フェーズとプリチャージフェーズとのうちの1つまたは別の間の累積した組み合わせのずれの差への攻撃に対して脆弱となる場合がある。 マスキングはHO-DPA と呼ばれる高階攻撃に敏感な場合がある。(【0006】)(3) 課題を解決するための手段本発明の目的は特にこれらの,特にDPA またはEMA タイプの攻撃に対抗することである。この目的のため,本発明の対象は暗号アルゴリズムを実行するための関数鍵kc を含む暗号回路であって,前記回路はkc とは別の前記回路のそれぞれの例に特有の,回路のサイドチャネルを利用した攻撃から回路を保護することを可能とする第2の鍵kiを含むことを特徴とする。(【0007】)関数鍵kc は例えばXOR 演算によって2つの鍵を組み合わせることにより第2の鍵ki によってマスクされ,入力変数x はマスク鍵【数1】kc⊕kiによっ 特徴とする。(【0007】)関数鍵kc は例えばXOR 演算によって2つの鍵を組み合わせることにより第2の鍵ki によってマスクされ,入力変数x はマスク鍵【数1】kc⊕kiによって暗号化されている。(【0009】)第2の鍵ki は例えば秘密実装によって鍵kc を保護する役割を果たす。 (【0010】)第2の鍵ki は例えば特に鍵kiでマスキングすることにより保護される2つの秘密関数の囲い込みによってカスタマイズされる標準暗号アルゴリズムからなる秘密アルゴリズムを保護する役割を果たす。(【0011】)第2の鍵ki は例えばPUF(PhysicallyUnclonableFunction)またはPOK (PhysicallyObfuscatedKey)タイプの関数により生成される。(【0012】)第2の鍵ki により導入されるマスキングはHO-DPA 高階攻撃に対して保護されてもよい。(【0014】)回路に固有の実装鍵としての役割を果たす第2の鍵kiの知識により,例えば保護管理プロシージャを,前記管理を担う特権ユーザが使用することが可能となる。(【0015】)これはFPGA タイプのプログラマブル回路で実現されてもよい。(【0016】)第2の鍵ki はFPGA のプログラミングファイルを介してカスタマイズされてもよい。(【0017】)有利には,回路はソフトウェアの実装により実現されてもよい。(【0018】)それは例えば前記FPGA 回路のプログラミングファイル(25)を暗号化し,これにより外部記憶の機密性およびFPGA への鍵ki の移転の機密性を付与するための第3の鍵kb を含む。(【0019】)第2の鍵ki の基数は例えば関数鍵kc の基数に等しい。これはki への隠 れにより外部記憶の機密性およびFPGA への鍵ki の移転の機密性を付与するための第3の鍵kb を含む。(【0019】)第2の鍵ki の基数は例えば関数鍵kc の基数に等しい。これはki への隠しチャネル攻撃をkc への暗号解読攻撃よりも困難にするためである。(【0020】)第3の鍵kb の基数の基数は関数鍵kc の基数よりも大きいかまたは等しい。 (【0021】)この暗号化アルゴリズムはDES アルゴリズムである。(【0022】)(4) 発明を実施するための形態図1に本発明が適用されうるマスキングのモードを呈示する。特に図1には,特にS.Guille らによる文献,AfastPipelinedMultiModeDESArchitectureOperatinginIPRepresentation, Integration, TheVLSIJournal, 40(4) pages 479-489, July 2007, DOI に概要が示されるアーキテクチャに従い実装されるDES(DataEncryptionStandard)アルゴリズムのマスキングの図が例として呈示される。図1の回路は例えばFPGA(FieldProgrammableGateArray)タイプのプログラマブル論理回路で実現される。このアルゴリズムでは,データパスは2つの部分,左と右とに分割される。(【0025】)対比のために,図2はマスキングによる保護を保証するためのハードウェアオーバーヘッドを強調する同様の回路を示し,このオーバーヘッドを生じさせる回路は破線により示されている。(【0026】)したがって左のデータレジスタ3と右のデータレジスタ4との間に入力メッセージ1が割り当てられる。左のマスクレジスタ5 ,このオーバーヘッドを生じさせる回路は破線により示されている。(【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 タイプの攻撃を実行する攻撃 者には以下の変数のみがわかる。 【数2】K⊕M (1)つまり秘密鍵K それ自体がマスクM により暗号化される。鍵K のこの保護モードは,XOR とも呼ばれかつ【数3】⊕により表される「排他 K⊕M (1)つまり秘密鍵K それ自体がマスクM により暗号化される。鍵K のこの保護モードは,XOR とも呼ばれかつ【数3】⊕により表される「排他的論理和」演算を用いるVernam 暗号という名で公知であり,Vernam コードはXOR 演算を用いて暗号化することができるコードである。本発明による暗号回路はしたがって情報漏洩のVernam 暗号化により隠しチャネルへの攻撃から保護される。(【0028】)暗号化アルゴリズムが完全にカスタマイズされる用途分野が存在する。 例えば秘密暗号に依存するGSM の公共または私用の範囲または有料テレビがそのようなケースである。この選択を正当化するために通常述べられる主張には,回路と相関関係となる漏えい関数が未知であるためサイドチャネルへの攻撃,いわゆるSCA(Side-ChannelAttacks)は不可能ということがある。 K.Tiri らの文献,Side-ChannelLeakageTolerantArchitectures, InITNG’06-ProceedingsoftheThirdInternationalConferenceonInformationTechnology, NewGeneration, pages 204-209, WashingtonDC, USA, 2006 IEEEComputerSociety では,アルゴリズムの実装および機能性を,ハードウェアの量の点でオーバーヘッド有りまたは無しで一度にかつ同時に変更することを提案している。前の2つのプロシージャの欠点は,暗号化が関数的に秘密であることである。 これはセキュリティの専門家がシステムおよびその配備を実施する特定の典型的な場合においては容 同時に変更することを提案している。前の2つのプロシージャの欠点は,暗号化が関数的に秘密であることである。 これはセキュリティの専門家がシステムおよびその配備を実施する特定の典型的な場合においては容認されうる。しかし暗号化システムの設計および配布を監視することが困難であるほとんどの場合,この筋書きは非常に不確実である。いったん秘密の機能性が回復すると,DPA タイプの攻撃は再度容 易に可能となる。さらに例えばFIPS-140 などの特定の証明方式では,暗号標準をカスタマイズせずに使用することが要求される。これにより特にK.Tiri らによる文献で支持されるSCA に耐性のある全プロシージャは禁止とされる。(【0029】)本発明によれば,特にこの暗号化の公知の関数の仕様に完全に準拠する一方で暗号化を実施するためには,保護される暗号回路専用のマスクを使用してマスキングによる保護が実施される。本発明による回路には,回路専用のマスクM が単に一定であり,かつ,回路の使用者または設計者にとって未知であるマスキングアーキテクチャが含まれる。(【0030】)図1によるマスキングパスは,実際,上述の式(1)に従い1次DPA 攻撃つまりデータレジスタ5,6のみが漏洩すると想定される攻撃の枠組み内で暗号鍵のVernam 暗号化を実施することが実証されうる。さらにマスキング周囲のいかなるバリアントもまた本発明を実施するために使用することができ,事実,実装は機能性を保持する一方でリファレンス実装とは異なるように表されることで十分である。マスキングの場合,リファレンス実装はゼロマスク(全ゼロ)を有するものと一致するが,マスクが非ゼロになるとすぐに,実装はしかしながら機能性を変更することなく変化する。ここで,実装に可変性を導入するように表現を 場合,リファレンス実装はゼロマスク(全ゼロ)を有するものと一致するが,マスクが非ゼロになるとすぐに,実装はしかしながら機能性を変更することなく変化する。ここで,実装に可変性を導入するように表現を変えることもまた可能である。例えばANewDPACountermeasureBasedonPermutationTables. InSCN, volume 5229 ofLectureNotesinComputerScience, pages 278-292. Springer において,Jean-SebastianCORON はAES の基本演算部分を2つの全単射,4ビット→4ビットを導入して変更することを提案しているが,そのような方式でそれらを組み立てることにより実際は従来のAES の計算が得られる。この表現の変化もまた秘密実装のきっかけとなりうるが,その情報漏えいはしかしながらこの文献では研究されない。(【0031】)したがって漏えいモデルが未知であるため1次相関攻撃は不可能とされ る。さらに,いわゆる「テンプレート」攻撃などの,測定値のセットまたはカタログの構造に依存する攻撃は各実装が特有であり,汎用のカタログを構築することが不可能であるため実行不可能とされる。(【0032】)有利には,本発明において実装の多様性は暗号鍵の数に匹敵するまたは実際同等である。特に「第2の原像」タイプの攻撃はしたがって不可能である。活動中の回路と同じマスクを有する,鍵がプログラム可能な回路を偶然に見つける確率は,正しい鍵を偶然に推測する,つまりブルートフォースアタックによる鍵への全数探索で成功する確率に匹敵するかまたは実際,同等である。(【0033】)図1の例では,マスキングを実装するために付加されたハードウ を偶然に推測する,つまりブルートフォースアタックによる鍵への全数探索で成功する確率に匹敵するかまたは実際,同等である。(【0033】)図1の例では,マスキングを実装するために付加されたハードウェアは左1と右2のマスクレジスタおよびマスクをデータと組み合わせるXOR ゲート12,13,14ならびに右のマスクレジスタの出力を処理するFeistel関数の換字回路16で形成される。(【0034】)ASIC またはFPGA をベースにした実現の枠組み内では,他のタイプの暗号プリミティブのマスキングはソースコード上で直接動作する適切なCADツールの支援で自動化されてもよい。(【0035】)保護プロシージャは一般にサイドチャネルを介して漏洩するかもしれない秘密を含むあらゆる実装に適用できることを記すことは興味深い。直接の例は暗号鍵の保護であるが,署名鍵は同様の方式で等しく十分に保護される。 さらに暗号アルゴリズムのパラメータを保護する代わりに,それが秘密の場合,アルゴリズムそれ自体を保護することもまた可能である。これは通信が2地点間で暗号化されるため(サテライトタワードデコーダ(satellitetowarddecoder)),共同利用できない暗号が実装されうる有料テレビなどの分野で起こる。したがってその中の1または2以上の要素(換字表または拡散関数などの)を変更する一方で標準化アルゴリズムを使用することは普通である。この方式で,そのセキュリティを弱体化するリスクを冒すことな くアルゴリズムのカスタム化が達成される。(【0036】)図3は別の進行方式を示す。この例では,標準アルゴリズムA はそのままで再利用されるが,実行される関数がもはやA ではなく,合成【数4】になるように,それは外部符号(EEin およびEE )図3は別の進行方式を示す。この例では,標準アルゴリズムA はそのままで再利用されるが,実行される関数がもはやA ではなく,合成【数4】になるように,それは外部符号(EEin およびEEout)で囲い込まれる。この原理の説明がC. Clavier による論文,SecretExternalEncodingsDoNotPreventTransientFaultAnalysis, inCHES’07, volume 4727 ofLectureNotesinComputerScience, 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 タイプというソリューションによって各回路が大規模な配置時でさえもそれ独自のコンフィギュレーションを有することが有利に可能となる。 特にFPGA のソリューションでは,それをカスタマイズするために数値を変更するために,特に構成要素専用のマスクなどの それ独自のコンフィギュレーションを有することが有利に可能となる。 特に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から保護する役 ,XOR 演算子がこれら2つの鍵を組み合わせて【数7】kc⊕kiにする。鍵ki はしたがってDES 実装の関数鍵kc を磁気放射または特に瞬間消費の観測による情報漏洩24から保護する役割を果たす。(【0041】)別の非機能の鍵kb は「ビットストリーム」ファイル25の秘密要素,つ まり少なくとも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】よりも少ない計算力を有するいかなる敵対者に対しても安全が立証される。 これは|ki|=|kc|の場合のDES アルゴリズムそれ自体のセキュリティレベルに等しい。(【0046】)PUF(PhysicallyUnclonableFunctions)またはPOK(PhysicallyObfusca ES アルゴリズムそれ自体のセキュリティレベルに等しい。(【0046】)PUF(PhysicallyUnclonableFunctions)またはPOK(PhysicallyObfuscatedKey)タイプの関数(すなわち実装固有の物理的鍵),または回路21に固有の秘密を,外部から供給される鍵の代わりにPKI と呼ばれる公開鍵基盤または信頼をカスタマイズするための他のあらゆるメカニズムによって生成させることが可能な他のあらゆるシステムを使用することが可能である。 (【0047】)第2の鍵ki はなお回路の作製後にセキュアな筐体内で単一の乱数を用いてプログラムされうる。(【0048】)「ShallowAttack」の名でも知られる組み合わせ論理回路への攻撃またはHO-DPA 攻撃に対する対抗措置をさらに使用する定数マスクを用いたマスキングメカニズムを使用することもまた可能である。(【0049】)S.Mangard らによる文献,SuccessfullyAttackingMaskedAESHardwareImplementations, InLNCS, editor, ProceedingsofCHES’05, volume 3659 ofLNCS,pages 157-171, Springer, September 2005, Edinburgh, Scotland に特に呈示されているような,秘密マスクにほとんど依存しない「グリッチ」とも呼ばれる非機能の遷移の存在を利用したアルゴリズムのマスキングへの攻撃は,それを知らずに回路のシミュレーションを実行することが不可能であるため,秘密実装には当てはまらないことに留意されたい。事実,この攻撃は事前特性化モデルとの相関に依存する。この工程は本発明による回 ,それを知らずに回路のシミュレーションを実行することが不可能であるため,秘密実装には当てはまらないことに留意されたい。事実,この攻撃は事前特性化モデルとの相関に依存する。この工程は本発明による回路ではASIC で生成されたマスクの設計またはFPGA の「ビットストリーム」ファイルを知っている,またはマスクが選択されるサンプルを所持するであろう熟知しうる攻撃者を除いては実行不可能である。この可能性を防止するため,前に記載されたPUF 関数が特に使用できる。(【0050】)特定の独自のアルゴリズム,特に2つの秘密符号間でカプセル化された 標準アルゴリズムは,C.Clavier による文献,SecretExternalEncodingsDoNotPreventTransientFaultAnalysis, InCHES, volume 4727 ofLectureNotesinComputerScience, pages 181-194, Springer, 2007 で特に示されるように摂動攻撃に耐性がない。このクラスの攻撃では攻撃者はレジスタの値を例えば0x00 などの既知の値に固定できることが必要とされる。本発明による実装鍵kiにより保護される回路では,データレジスタとマスクレジスタとが互いに素である場合,攻撃者はそこで簡単な欠陥を発生させるよりもはるかに困難な複数の欠陥を達成する必要があるため,これは事実上非常に困難である。 (【0051】)実装鍵ki を有する本発明による保護のタイプでは,例えばRTL レベルでは符号化の点において,または物理的レベルではカプセル化の点において欠陥を検知するための通常の保護などの他の保護と有利に併用することができる。これにより受動的な攻撃および能動的な攻 RTL レベルでは符号化の点において,または物理的レベルではカプセル化の点において欠陥を検知するための通常の保護などの他の保護と有利に併用することができる。これにより受動的な攻撃および能動的な攻撃の両方に対して高度の保護を達成することを可能とする。(【0052】) 3 以上を踏まえると,本願明細書等には,本願発明について,以下の事項が記載されているものと認められる。 (1) 技術分野本願発明は,情報漏洩観測攻撃から保護される暗号回路に関するものである(【0001】)。ここでいう情報漏洩観測攻撃は,例えば,DPA 攻撃によるエネルギー消費量の観点又はEMA 攻撃による磁気放射の観点から,システムの時間的挙動を観測することによるサイドチャネル攻撃のことである(【0004】)。 (2) 課題DPA 攻撃及びEMA 攻撃のような情報漏洩観測攻撃に対しては,漏洩を秘密とは無関係に一定にすることによる秘匿,及び漏洩を予測不能にすることで利用不可能とするマスキングを基にする保護が提案されている(【000 4】)。しかし,これらの2つの技法は,実装欠陥から利益を得るであろう攻撃に対しては依然脆弱である(【0005】)。例えば,差分論理(WDDL などの)に基づく秘匿は,計算フェーズと評価フェーズとプリチャージフェーズとのうちの1つ又は別の間の累積した組合せのずれの差への攻撃に対して脆弱となる場合があり,また,マスキングはHO-DPA と呼ばれる高階攻撃に敏感な場合がある(【0006】)。 本願発明の目的は,これらの攻撃,特にDPA 又はEMA タイプの攻撃に対抗することである(【0007】)。 (3) 課題解決手段前記目的のため,本願発明は,暗号アルゴリズムを実行するための関数鍵kc を含む暗号回路であって,前記回路 又はEMA タイプの攻撃に対抗することである(【0007】)。 (3) 課題解決手段前記目的のため,本願発明は,暗号アルゴリズムを実行するための関数鍵kc を含む暗号回路であって,前記回路はkc とは別の前記回路のそれぞれの例に特有の,回路のサイドチャネルを利用した攻撃から回路を保護することを可能とする第2の鍵ki を含むことを特徴とする(【0007】)。 関数鍵kc は,例えばXOR 演算によって2つの鍵を組み合わせることにより第2の鍵ki によってマスクされ,入力変数x はマスク鍵kc⊕ki によって暗号化されている(【0009】)。 第2の鍵ki は,例えばPUF(PhysicallyUnclonableFunction)又はPOK(PhysicallyObfuscatedKey)タイプの関数により生成される(【0012】)。 暗号回路はFPGA タイプのプログラマブル回路で実現されてもよく,第2の鍵ki はFPGA のプログラミングファイルを介してカスタマイズされてもよい。暗号回路はソフトウェアの実装により実現されてもよく,この暗号回路は第3の鍵kb を含む。第3の鍵kb は,前記FPGA 回路のプログラミングファイルを暗号化し,これにより外部記憶の機密性及びFPGA への鍵ki の移転の機密性を付与するためのものである(【0015】~【0019】)。 第2の鍵ki の基数は,例えば関数鍵kc の基数に等しく,第3の鍵kb の基 数の基数は関数鍵kc の基数よりも大きいかまたは等しい(【0020】,【0021】)。 この暗号化アルゴリズムはDES アルゴリズムである(【0022】)。 (4) 効果第2の鍵ki は,例えば秘密実装によって鍵kc を保護する役割を果たし,また,例えば鍵kiでマ 021】)。 この暗号化アルゴリズムは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 攻撃のようなサ イドチャネルを利用した攻撃から暗号回路を保護するという目的を達成するためのものと認められる。 また,本願明細書 ,本願発明の第2の鍵ki は,DPA 攻撃及びEMA 攻撃のようなサ イドチャネルを利用した攻撃から暗号回路を保護するという目的を達成するためのものと認められる。 また,本願明細書等には,関数鍵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 とki をXOR 演算することによって達成されるものと理解される。換言すれば,本願発明の暗号回路においてサイドチャネルを利用した攻撃の目標として想定されているのは関数鍵kc であり,この関数鍵kc をそのような攻撃から保護するために第2の鍵ki を必要とし,関数鍵kc を第2の鍵ki とXOR 演算すること によってマスクする(マスク鍵kc⊕ki とする)という方法によって,関数鍵kc の保護が達成されるものと把握される。 さらに,本願明細書等には,サイドチャネルを利用した攻撃の具体的な目標として関数鍵kc 以外のものは記載されていない。 このように,本願発明が想定している攻撃目標は関数鍵kc であり,それ以外の攻撃目標を想定しない以上,本願発明の暗号回路が出力する暗号文y の秘密性は関数鍵kc に依拠し,暗号文の計算手順(すなわち本願発明の「暗号化アルゴリズム」)に依拠するものではないと認められる。そうであれば,関数鍵kc が判明すれば,本願発明により出力される暗号文y を解読し得ることになる。これは,本願発明の暗号回路が出力する暗号文y の暗号鍵が関数鍵kc であることを意味する。すなわち,本願発明は,秘密情報である関数鍵kc を用いて平文x から暗号文y を計算する関数をF で表したとき,y=F(x,kc)を満たす暗号文y を出力する暗号回路であると認められる(以下,この技術思想を「本願技術思想①」という。)。 このように理解することは,本願明細書等の「関数鍵kc が回路21の暗号化を実施する役割を果たす。この暗号化は例えばレジスタ22の内部で入力変数x を暗号化 思想を「本願技術思想①」という。)。 このように理解することは,本願明細書等の「関数鍵kc が回路21の暗号化を実施する役割を果たす。この暗号化は例えばレジスタ22の内部で入力変数x を暗号化された変数y=DES(x,kc)に変換するDESアルゴリズム23である。」(【0040】)との記載とも整合する。 (イ) また,前記のとおり,本願発明の暗号回路の保護は関数鍵kc を第2の鍵kiでマスクすることによって達成される。このため,本願発明の暗号回路において実際に実行される計算処理に当たっては,関数鍵kc を第2の鍵ki と分離した形で使用してはならず,常にマスク鍵kc⊕ki を用いなければならないこととなる。すなわち,本願発明の暗号回路において実際に実行される計算処理に当たっては,単体の関数鍵kc の入力を要する上記関数F とは別の計算方法により,単体の関数鍵kc を直接 用いず上記マスク鍵のみを用いることによって暗号文y を計算する必要がある(ただし,マスク鍵自体を生成する部分において関数鍵kc を直接用いることは許される。)。 このような,単体の関数鍵kc を直接用いずマスク鍵のみを用いることにより平文x から暗号文y を計算する関数をG で表すと,本願発明の暗号回路は,暗号文y の実際の計算をy=G(x,kc⊕ki)によって計算するものであると認められる(以下,この技術思想を「本願技術思想②」という。)。 イ(ア) 上記本願技術思想①及び②によれば,本願発明の暗号回路を具現化するためには,暗号回路によって実際に計算された暗号文と,暗号化アルゴリズムF に基づいて計算された暗号文とが等しいこと,すなわちG(x,kc⊕ki)=F(x,kc)を満たすことが要求される(以下,この要求を「本願発明の技術的要求」 れた暗号文と,暗号化アルゴリズムF に基づいて計算された暗号文とが等しいこと,すなわちG(x,kc⊕ki)=F(x,kc)を満たすことが要求される(以下,この要求を「本願発明の技術的要求」という。)。 しかし,本願発明の技術的要求を満たす関数G を構成する計算方法が,当業者の技術常識に鑑みて自明であると認めるに足りる証拠はない。 そこで,G(x,kc⊕ki)の具体的な計算方法が本願明細書等に示されているかについて,以下検討する。 (イ) 本願明細書等の記載のうち,本願発明の技術分野,背景技術及び課題を解決するための手段の記載(【0001】~【0024】)並びに本願発明の実施形態のうち図4に係る部分の記載(【0040】~【0052】)には,前記のとおり,本願技術思想①及び②が開示されている。しかし,本願発明の技術的要求を満たす関数G の具体的態様について開示したものと理解される記載は見当たらない。 また,特許請求の範囲の記載は,上記記載の内容を超えるものではなく,関数G の具体的態様は記載されていない。 (ウ)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 であると認 i であると認められる。 また,図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 に関する部分のみを取り出し てみても,kc⊕E(RH(IP(ki)))(以下「式(A)」という。)が計算されているに過ぎず,明らかにkc⊕ki とは異なる。 仮に,IP がDES の初期置換であって単にビット位置を入れ替えているに過ぎないから無視できるとし,かつ,右半分の演算のみに注目することでRH を無視できるとしても,前記のとおりE は拡大置換であるからこれを無視す の初期置換であって単にビット位置を入れ替えているに過ぎないから無視できるとし,かつ,右半分の演算のみに注目することで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 の具体的態様が記載されているとはいえない。 (エ) 本願明細書等の記載のうち,図3及びこれに関連する段落【0037】~【0039】には,本願発明の関数鍵kc に対応する概念が記載されていない。そ 載されているとはいえない。 (エ) 本願明細書等の記載のうち,図3及びこれに関連する段落【0037】~【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 であると定義される 鍵kc が,(マスクM によってマスクされる)秘密鍵K と同一であり,かつ,秘密鍵とは,暗号文y の復号化に必要な鍵であって暗号化アルゴリズムF(x,k)を実行するための鍵k であると定義されるから,図1及び2に示される回路で暗号化アルゴリズムF(x,kc)を 実行すると,暗号文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 が計算されていないのであるから,両図の回路が本願発明の実施形態であるとは認められない。 (イ) 原告は,本願明細 るものであるところ,前記のとおり,図1及び2の回路においてはマスク鍵kc⊕ki が計算されていないのであるから,両図の回路が本願発明の実施形態であるとは認められない。 (イ) 原告は,本願明細書等の図4には,関数鍵kc がマスク(第2の鍵)kiとXOR 演算されたマスク鍵kc⊕ki がDES アルゴリズム23の内部のレジスタ22に入力されること,及び入力変数x がDES アルゴリズム23に入力されることが示されているから,DES アルゴリズム23に入力された入力変数x は,DES アルゴリズム23の内部のレジスタ22に 入力されたマスク鍵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について,本願明細書等には「 において果たす役割については記載されていないことから,レジスタ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 し,その結果と関数 鍵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 がデマスキング 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’に対応することを前提とするところ,本願明細書等の記載からそのような対応関係を理解し得ないことは前記イ(エ)のとおりである。 (エ) 原告は,暗号回路を実施するための事項以外の事項である復号を実 施するための事項が発明の詳細な説明に記載されていないことをもって,実施可能要件を満たしていないということにはならない旨主張するけれども,前記のとおり,本願明細書等は,暗号回路としての本願発明を実施するための事項(本願発明の技術的要求を満たすような具 をもって,実施可能要件を満たしていないということにはならない旨主張するけれども,前記のとおり,本願明細書等は,暗号回路としての本願発明を実施するための事項(本願発明の技術的要求を満たすような具体的な関数G)が理解できるように記載されていない。 (オ) 原告は,本願発明において,第2の鍵ki は,マスク鍵kc⊕ki のために使用される一方で,XOR 演算を繰り返すことによって消去されるから,本願明細書等の図2の出力15から最終的に得られた暗号文y を解読するためには,関数鍵kc さえ知り得ればよく,第2の鍵ki を要しない旨主張する。 しかし,原告の上記主張は,暗号文y(=DES(x,kc))とx⊕kc とを混同するものであり,その前提に誤りがある。 (カ) その他原告がるる指摘する事情を考慮しても,この点に関する原告の主張は採用し得ない。 (3) 以上のとおり,本願明細書等の発明の詳細な説明の記載は実施可能要件を満たさないとする本件審決に誤りはなく,少なくとも原告主張に係る取消事由4については理由がない。そうすると,その余について論ずるまでもなく,原告の請求は理由がないというべきである。 5 結論よって,原告の請求は理由がないからこれを棄却することとし,主文のとおり判決する。 知的財産高等裁判所第3部 裁判長裁判官鶴岡稔彦 裁判官杉浦正樹 裁判官寺田利彦 寺田利彦

▼ クリックして全文を表示

🔍 類似判例を検索𝕏 でシェア← 一覧に戻る