判例検索β > 平成29年(行ケ)第10051号
審決取消請求事件 特許権 行政訴訟
事件番号平成29(行ケ)10051
事件名審決取消請求事件
裁判年月日平成30年4月12日
法廷名知的財産高等裁判所
戻る / PDF版
平成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年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(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項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)により生成される」事項を有する回路の発明であるが,当該暗号化に関連する復号化について発明の詳細な説明には説明されておらず,前記第2の鍵kiはPUF(物理的クローン不能関数)により生成されるものであるから,マスク鍵(kc⊕ki)により暗号化された入力変数xを何を用いてどのように復号すればよいのか,暗号化/復号化に係る回路は唯一の回路を用いるのか,別の回路を用いるのか,前記唯一の回路を用いて暗号化と復号化をする技術的意義はどのようなものなのか不明であり,また,別の回路を用いるならいかにして同じPUFにより生成される第2の鍵kiを有する別の回路が得られるのか不明である。
したがって,本願明細書等に係る発明の詳細な説明は,当業者が本願発明を実施することができる程度に明確かつ十分に記載されたものではない。(3)

法29条2項について
引用発明
DES暗号アルゴリズムを実行するための暗号キーを含むDES計算ユニット,キーマスキングユニット,メモリを含む暗号ハードウェアであって,
前記ハードウェアは,マスクを用いるマスキング方法(偽またはダミー演算)の使用により,あるラウンドにおける暗号化アルゴリズム置換(Sボックス)演算の(キー側の)入力値のサイドチャネル攻撃からのハードウェアエンジンを保護することを可能とするマスクを含むハードウェアであって,
前記キーは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;関数,機能)により生成される」技術が示されている。
また,引用発明と引用文献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タイプのプログラマブル回路のプログラミングファイルを暗号化するための第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を暗号化するだけのも
のである。ここで,「暗号化」の操作とは,本願発明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暗号アルゴ
リズムを実行し,結果を出力データとしてメモリ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を知ったとしても,そこから関数鍵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によってマスクされる鍵であって,暗号化アルゴリズムを実行する関数鍵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演算によって組み合わせられた鍵)」に相当する構成は何ら示されていない。
そうである以上,引用発明に参考文献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】)があるところ,上記回路の(マスク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および右で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においても,図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さえ知り得ればよく,第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」につき,「暗号化アルゴリズムを実行するための関数鍵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)」として出力されることについては,何ら特定されていない。
したがって,原告の上記主張は,本願の特許請求の範囲の記載に基づくものではない。
(ウ)

原告は,本件明細書等の図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の特許請求の範囲には「暗号化ア
ルゴリズムを実行するための関数鍵kcを含む暗号化回路(21)であって」と記載されているに過ぎず,「暗号文を出力することに機能」するものであることは何ら特定されていないから,原告の上記主張は,本願の特許請求の範囲の記載に基づくものではない。

原告は,引用発明につき,引用発明の「暗号キー」は,それ単独で暗号化アルゴリズムを実行して暗号文を出力することに機能するものではなく,暗号キーとマスクとがXOR演算された「マスキングをかけたキー」が暗号化アルゴリズムを実行して暗号文を出力することに機能する旨主張する。
しかし,引用文献1の記載(【0008】,【0011】)によれば,引用文献1の暗号化アルゴリズムは,ランダム順で真及びダミーキーを使用しており,ダミーキーから間違った結果はダミーメモリロケーションに格納されるが,Zeroでマスキングされたキーは「真のキー」として,その結果は真の結果としてメモリに格納される。ここで,Zeroでマスキングされたキーはマスキングされないキーと等価であることは明らかであるので,引用発明の「『DES暗号アルゴリズム』を実行するための暗号キーを含むDES計算ユニット,キーマスキングユニット,メモリを含む暗号ハードウェア」における「暗号キー」には,マスキングされたダミーキーだけでなく,マスキングされないキーと等価である「真のキー」が含まれる。すなわち,引用発明の「暗号キー」には,本願発明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によって暗号化」との特定がされているものの,「第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を含むことを特徴とする回路」という記載と整合しないから,上記請求項の記載は技術的に不明瞭となっている。
また,本願明細書等の実施例(図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とで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の演算順序を入れ換えて,例えば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に記載の実施例を当業者が実施することはできず,実施可能要件を満たしているとはいえない。

第4
1
当裁判所の判断
本願発明
本願発明に係る特許請求の範囲請求項の記載は,前記(第2の2)のとおりである。

2
本願明細書等の記載等
(1)

技術分野(【0001】)
本発明はそれらの暗号化により特に情報漏洩観測攻撃から保護される暗
号回路に関する。
(2)

背景技術
通信および情報処理のための手段のローミング能力が増すとともに,新
しい攻撃が考えられるようになっている。実行速度の点から,それを構成する電子回路,例えばDPA攻撃によるエネルギー消費量の点から,またはその放射挙動,例えばEMA攻撃による磁気放射の点からシステムの時間的挙動を観測することにより大量の情報が漏洩しうる。サイドチャネルへのこれらの攻撃に対しては,特に,
この例では秘密とは無関係に漏えいを一定にすることを伴う秘匿と,漏えいをランダムにすることを伴う,つまり予測不能でありしたがって利用不可能とするマスキングと,を基にする保護が提案されている。(【0004】)
これらの2つの技法は情報の取得を狙った攻撃の困難さを増すことを可能とするが,それらはそれでもなお実装欠陥から利益を得るであろう攻撃に対しては依然脆弱である。DPA攻撃の例は,P.Kocherらによる文献,DifferentialPowerAnalysis,InproceedingsofCRYPT’99,volume1666ofLNCS,pages338-397,Springer-Verlag,1999に記載されている。EMA攻撃の例はK.Gandolfiらによる文献,ElectromagneticAnalysis-ConcreteResults,InCHES,volume2162ofLNCS,pages251-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
によって暗号化されている。(【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への隠しチャネル攻撃をkcへの暗号解読攻撃よりも困難にするためである。(【0020】)
第3の鍵kbの基数の基数は関数鍵kcの基数よりも大きいかまたは等しい。(【0021】)
この暗号化アルゴリズムはDESアルゴリズムである。(【0022】)(4)

発明を実施するための形態
図1に本発明が適用されうるマスキングのモードを呈示する。特に図1
には,特にS.Guilleらによる文献,AfastPipelinedMultiModeDESArchitectureOperatinginIPRepresentation,Integration,TheVLSIJournal,40(4)pages479-489,
July2007,DOIに概要が示されるアーキテクチャに従い実装されるDES(DataEncryptionStandard)アルゴリズムのマスキングの図が例として呈示される。図1の回路は例えばFPGA(FieldProgrammableGateArray)タイプのプログラマブル論理回路で実現される。このアルゴリズムでは,データパスは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タイプの攻撃を実行する攻撃
者には以下の変数のみがわかる。
【数2】
K⊕M

(1)

つまり秘密鍵Kそれ自体がマスクMにより暗号化される。鍵Kのこの保護モードは,XORとも呼ばれかつ
【数3】


により表される「排他的論理和」演算を用いるVernam暗号という名で公知であり,VernamコードはXOR演算を用いて暗号化することができるコードである。本発明による暗号回路はしたがって情報漏洩のVernam暗号化により隠しチャネルへの攻撃から保護される。(【0028】)
暗号化アルゴリズムが完全にカスタマイズされる用途分野が存在する。例えば秘密暗号に依存するGSMの公共または私用の範囲または有料テレビがそのようなケースである。この選択を正当化するために通常述べられる主張には,回路と相関関係となる漏えい関数が未知であるためサイドチャネルへの攻撃,いわゆるSCA(Side-ChannelAttacks)は不可能ということがある。K.Tiriらの文献,Side-ChannelLeakageTolerantArchitectures,InITNG’06ProceedingsoftheThirdInternationalConferenceonInformationTechnology,NewGeneration,pages204-209,WashingtonDC,USA,2006IEEEComputerSocietyでは,アルゴリズムの実装および機能性を,ハードウェアの量の点でオーバーヘッド有りまたは無しで一度にかつ同時に変更することを提案している。前の2つのプロシージャの欠点は,暗号化が関数的に秘密であることである。これはセキュリティの専門家がシステムおよびその配備を実施する特定の典型的な場合においては容認されうる。しかし暗号化システムの設計および配布を監視することが困難であるほとんどの場合,この筋書きは非常に不確実である。いったん秘密の機能性が回復すると,DPAタイプの攻撃は再度容
易に可能となる。さらに例えばFIPS-140などの特定の証明方式では,暗号標準をカスタマイズせずに使用することが要求される。これにより特にK.Tiriらによる文献で支持されるSCAに耐性のある全プロシージャは禁止とされる。(【0029】)
本発明によれば,特にこの暗号化の公知の関数の仕様に完全に準拠する一方で暗号化を実施するためには,保護される暗号回路専用のマスクを使用してマスキングによる保護が実施される。本発明による回路には,回路専用のマスクMが単に一定であり,かつ,回路の使用者または設計者にとって未知であるマスキングアーキテクチャが含まれる。(【0030】)図1によるマスキングパスは,実際,上述の式(1)に従い1次DPA攻撃つまりデータレジスタ5,6のみが漏洩すると想定される攻撃の枠組み内で暗号鍵のVernam暗号化を実施することが実証されうる。さらにマスキング周囲のいかなるバリアントもまた本発明を実施するために使用することができ,事実,実装は機能性を保持する一方でリファレンス実装とは異なるように表されることで十分である。マスキングの場合,リファレンス実装はゼロマスク(全ゼロ)を有するものと一致するが,マスクが非ゼロになるとすぐに,実装はしかしながら機能性を変更することなく変化する。ここで,実装に可変性を導入するように表現を変えることもまた可能である。例えばANewDPACountermeasureBasedonPermutationTables.InSCN,volume5229ofLectureNotesinComputerScience,pages278-292.Springerにおいて,JeanSebastianCORONはAESの基本演算部分を2つの全単射,4ビット→4ビットを導入して変更することを提案しているが,そのような方式でそれらを組み立てることにより実際は従来のAESの計算が得られる。この表現の変化もまた秘密実装のきっかけとなりうるが,その情報漏えいはしかしながらこの文献では研究されない。(【0031】)
したがって漏えいモデルが未知であるため1次相関攻撃は不可能とされ
る。さらに,いわゆる「テンプレート」攻撃などの,測定値のセットまたはカタログの構造に依存する攻撃は各実装が特有であり,汎用のカタログを構築することが不可能であるため実行不可能とされる。(【0032】)有利には,本発明において実装の多様性は暗号鍵の数に匹敵するまたは実際同等である。特に「第2の原像」タイプの攻撃はしたがって不可能である。活動中の回路と同じマスクを有する,鍵がプログラム可能な回路を偶然に見つける確率は,正しい鍵を偶然に推測する,つまりブルートフォースアタックによる鍵への全数探索で成功する確率に匹敵するかまたは実際,同等である。(【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およびEEout)で囲い込まれる。この原理の説明がC.Clavierによる論文,SecretExternalEncodingsDoNotPreventTransientFaultAnalysis,inCHES’07,volume4727ofLectureNotesinComputerScience,pages181-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のソリューションでは,それをカスタマイズするために数値を変更するために,特に構成要素専用のマスクなどのシステム全体をリコンパイルする必要はない。これは,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の秘密要素,つ
まり少なくとも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(PhysicallyObfuscatedKey)タイプの関数(すなわち実装固有の物理的鍵),または回路21に固有の秘密を,外部から供給される鍵の代わりにPKIと呼ばれる公開鍵基盤または信頼をカスタマイズするための他のあらゆるメカニズムによって生成させることが可能な他のあらゆるシステムを使用することが可能である。(【0047】)
第2の鍵kiはなお回路の作製後にセキュアな筐体内で単一の乱数を用いてプログラムされうる。(【0048】)
「ShallowAttack」の名でも知られる組み合わせ論理回路への攻撃またはHO-DPA攻撃に対する対抗措置をさらに使用する定数マスクを用いたマスキングメカニズムを使用することもまた可能である。(【0049】)S.Mangardらによる文献,SuccessfullyAttackingMaskedAESHardwareImplementations,InLNCS,editor,ProceedingsofCHES’05,volume3659ofLNCS,pages157-171,Springer,September2005,Edinburgh,Scotlandに特に呈示されているような,秘密マスクにほとんど依存しない「グリッチ」とも呼ばれる非機能の遷移の存在を利用したアルゴリズムのマスキングへの攻撃は,それを知らずに回路のシミュレーションを実行することが不可能であるため,秘密実装には当てはまらないことに留意されたい。事実,この攻撃は事前特性化モデルとの相関に依存する。この工程は本発明による回路ではASICで生成されたマスクの設計またはFPGAの「ビットストリーム」ファイルを知っている,またはマスクが選択されるサンプルを所持するであろう熟知しうる攻撃者を除いては実行不可能である。この可能性を防止するため,前に記載されたPUF関数が特に使用できる。(【0050】)
特定の独自のアルゴリズム,特に2つの秘密符号間でカプセル化された
標準アルゴリズムは,C.Clavierによる文献,SecretExternalEncodingsDoNotPreventTransientFaultAnalysis,InCHES,volume4727ofLectureNotesinComputerScience,pages181-194,Springer,2007で特に示されるように摂動攻撃に耐性がない。このクラスの攻撃では攻撃者はレジスタの値を例えば0x00などの既知の値に固定できることが必要とされる。本発明による実装鍵kiにより保護される回路では,データレジスタとマスクレジスタとが互いに素である場合,攻撃者はそこで簡単な欠陥を発生させるよりもはるかに困難な複数の欠陥を達成する必要があるため,これは事実上非常に困難である。(【0051】)
実装鍵kiを有する本発明による保護のタイプでは,例えば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を含む暗号回路であって,前記回路は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でマスキングすることにより保護される2つの秘密関数の囲い込みによってカスタマイズされる標準暗号アルゴリズムからなる秘密アルゴリズムを保護する役割を果たす(【0010】,【0011】)。第2の鍵kiにより導入されるマスキングは,HO-DPA攻撃に対して保護されてもよい(【0014】)。
第2の鍵kiの基数を関数鍵kcの基数に等しくしたため,kiへの隠しチャネル攻撃はkcへの暗号解読攻撃よりも困難になる(【0020】)。4
検討
便宜上,取消事由4(実施可能要件に関する判断の誤り)について,ま
(1)

ず検討する。
(2)ア

本願発明の技術思想

(ア)

本願明細書等の記載(【0007】)によれば,本願発明の目的は
「特にDPAまたはEMAタイプの攻撃に対抗すること」であって,この目的を達成するために「本発明の対象は暗号アルゴリズムを実行するための関数鍵kcを含む暗号回路であって,前記回路はkcとは別の前記回路のそれぞれの例に特有の,回路のサイドチャネルを利用した攻撃から回路を保護することを可能とする第2の鍵kiを含むことを特徴とする。」とされている。ここで,DPA攻撃及びEMA攻撃がサイドチャネルを利用した攻撃であることは,本願明細書等の記載(【0004】)及び技術常識から明らかであるから,段落【0007】の上記記載によれば,本願発明の第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を第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を暗号化された変数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)
を満たすことが要求される(以下,この要求を「本願発明の技術的要求」という。)。
しかし,本願発明の技術的要求を満たす関数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であると認められる。
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は拡大置換であるからこれを無視することはできず,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及びこれに関連する段落【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)を
実行すると,暗号文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アルゴリズム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について,本願明細書等には「関数鍵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がデマスキングされた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部

裁判長裁判官
鶴岡稔彦
裁判官
杉浦正樹寺田利彦
裁判官

トップに戻る

saiban.in