ソースコード強制開示はイヤだけどおもしろい
中国政府が自国内で生産・販売される外国製のIT(情報技術)製品について、製品を制御するソフトウエアの設計図である「ソースコード」の開示をメーカーに強制する制度を5月に発足させるという報道がありました。SEとしてはイヤなことこの上ありませんが、おもしろいなとおもうところがいくつかあります。
まずは暗号周りのところについて。そもそも標準的な暗号化は暗号方式を秘密にするのではなくて内部構造を有識者が調べた上、徹底的に攻撃しまくることで強度を高めることが知られています。どうしても輸出しなくてはならないといった状況になった場合、暗号周りのところの処理については「読めるけど破れない」という度合いが高まるかもしれません。
同様に「ソースコード」について。ソースコードの難読化という技術がありますが、それで対抗したらどうなるのでしょうか。暗号化と組み合わせて、コンパイル結果は変わらないけれども人間が扱う言語構造とかけ離れて難しい、しかも不可逆な難読化というのが生まれたらどうなるんでしょうか。「ほら。これコンパイルしたらちゃんとアセンブルコードでるよ。だからソースだよ。」って言ったらどうなるんでしょうか。むしろ「うちのソフトは職人がマシン語で書いてるんです。アセンブラ?そんな高級なもの使えるか!」なんて主張したらどうなるんでしょう。
また、独自でカスタムしたコンパイラを使ったらどうなるんでしょうか。ソースはあるけどコンパイルできない、とか。コンパイラの仕様まで公開しなくてはいけない必要はないですので、許してもらえるかもしれません。やったことがある方はわかると思いますが、昨今の当たらし目の言語ですら「移植」って難しいですよ。自分も中学の頃にはPC-88からPC-98へのBASICのプログラムの移植に挑戦しましたが、何本も失敗しました。
ちょっと違った角度から。対中輸出を完全にとりやめたらどうなるでしょうか。国際問題になるので外国メーカーは表立っての輸出はしないことでしょう。しかし中国は既に資本主義化への道を突っ走り始めて後には引けないステージまで来ているように思います。麻生首相の「とてつもない日本」にも資本主義は進み始めたらやめられないみたいなことが書いてあった気がします。となると中国の人が外国製品の良さを知ったら並行輸入をすると思うんですよね。しかも流通量が激減しますので、おそらく高値での取引になると思われます。当局が厳しく規制すればするほど取り締まり逃れは巧妙になるでしょう。目を逃れて輸入を行うには量が限られます。となると単価が高いもののほうが儲けが増えますので、ロシア国境やベトナム国境あたりから日本の高級家電が流れ込みまくるということになるかもしれません。
そもそもコピー品を作れないのはソフトウェアの特徴ですね。丸ごとの複写は作れても、質の高い模倣品が出ません。ゼロックスだったか、プロジェクトXで外国の乾式コピー機を分解して調べまくり、特許をクリアした上で性能を上回る製品を作るという話がありました。そういうことがソフトウェアではできません。しかし反対に、ハードの世界は「図面があっても作れない」ような製品がごろごろしています。iPodの鏡面加工は新潟の燕だかでしかできないというような話がありますが、Core i7の図面と工作機械をもらっても同じものを作るのに何年かかることやら、と思います。
ソフトも設計図だけではなかなかコピーできません。今週はOracle OpenWorld Tokyoがありましたが、オラクルデータベースはずいぶんと内部構造が見えるようになっています。が、クローンはありません。データディクショナリなどスキーマ構造や動きが丸見えですが、模倣品ができたという話を聞きません。もちろんオープンソース製品などに多大なインスピレーションを与えているでしょうし、OracleDataBaseXEといった製品で芽を摘んだりしているということも寄与しているかもしれませんが。
それはそれとして、ソフトウェアはソースがあったら丸ごとコピーすれば動きます。良いソフトウェアであれば一部を直すだけで改良が可能です。また、良いソフトウェアはそれほど設計書を必要としません。そういったものがコピーされやすく、ごちゃごちゃのスパゲティなものほどコピーしづらいというのはおもしろい特徴です。そうです。今日はここから下が言いたいだけだったのですが、ものすごく設計力の高い人が設計したら、設計書は非公開にして「超危険人物」がコーディングしたらどうでしょう。「ここは継承してね」とかそういうアドバイスを無視して、「コピペ継承」する人っていますよね。同じモジュール内の同じ手続き内で同じアルゴリズムをコピペで複数個所に実装するのはもはや法規制の対象にしてもいいんではないかと思います。そういう人にソースを書いてもらって開示したらむしろコピー品がすごく良い出来になって帰ってくるんではないでしょうか。対抗して中国製品も日本国内へ輸出する場合はソースを公開するように義務づけるようにしましょう。そうしたら中国は世界的なソースのリファイン国家として名声を得るに違いありません。
いずれにせよ、もしこれが決まったらこれまで異なる要素から綺麗なソースを書く人が増えるでしょう。われわれ日本人は「恥」という文化を持ちますので、あまりに恥ずかしいソースが開示されるのはイヤですからね。自分は自分でも自分のソースにセンスを感じないので、やはり公開なんてしたくないなぁ。