競合他社が販売しているソフトウェアαのオブジェクトコードからソースコードを解析し,アルゴリズムを解読したうえで(いわゆるリバースエンジニアリング),自社の製品を開発することは違法でしょうか。
プログラムのリバースエンジニアリングの過程では,プログラム「複製」(コピー)をしなければならない場面が多いと思われますが,権利者の許諾なしにプログラムを複製すると著作権侵害となってしまいます。互換性の確保や障害の発見を目的として行われるリバースエンジニアリングについては著作権侵害を否定すべきという考え方もありますが,競合品開発のためのリバースエンジニアリングは著作権侵害と評価される可能性が高いです。

(a)リバースエンジニアリングとは?

ソフトウェアにおけるリバースエンジニアリングとは,動作を解析したりするなどしてソフトウェアの構造を分析すること全般を指します。ソフトウェアがどのようなロジックで動いているのかを分析するために,人間が解読不可能なオブジェクトコードを人間が可読なソースコードの形式などに戻すことがありますが,この行為はリバースエンジニアリングの一種です。

(b)リバースエンジニアリングとプログラムの「複製」

リバースエンジニアリングの過程では,プログラムの「複製」(コピー)が生じることがありますが,権利者の許諾なしにプログラムを複製すると,著作権侵害となってしまいます(著作権法21条)。リバースエンジニアリングの過程で行われるプログラムの「複製」も,原則的・形式的には著作権侵害です。

(c)例外的に許容され得るリバースエンジニアリング

もっとも,一口にリバースエンジニアリングと言ってもその目的は様々であり,一定の目的で行われるリバースエンジニアリングについては著作権侵害を否定すべきであるといわれています。たとえば,障害の発見等の目的でなされるリバースエンジニアリングです。このような目的で行われるリバースエンジニアリングは,権利者に与える影響・不利益は大きくはない一方,ユーザによるリバースエンジニアリングの必要性が考慮されているものと思われます。

設問の例はどうかというと,競合製品を開発するためのリバースエンジニアリングの過程で行われるプログラムの複製は,原則どおり著作権侵害とすべきとする考え方が強いです。競合製品が開発されることになれば権利者に与える影響は小さくない一方,ユーザの側もリバースエンジニアリングをする必要性は必ずしも大きくない(他社の模倣ではなく自社の努力により新製品を開発すべきという価値判断が働いている)と思われるためです。

(弁護士 高瀬亜富 H29.2.28)