57話 秘密を売るには、まず守れ
少し技術的な話が出てきますので、この話の最後に簡単な補足を載せています。
よろしければ、適宜お読みください。
ソフトを売る――
その言葉が、ずっと頭の中でグルグル回っていた。
昨日、叔父さんに「売ったら?」と言われてから、俺はずっと考えている。
たしかに、可能性はある。
あれだけすごい文章を秒で出してくれるソフトだ。需要がないわけがない。
でも。
(これ……そのまま出したら、ヤバいよな)
俺は自室でPCを開きながら、ひとりごとをつぶやいた。
問題は、“中身”。
要するに、ソフトの正体がバレたら終わる。
誰かがそのプログラムの中を解析したら――
そこには2005年じゃ到底考えられないレベルの言語処理技術や、演算アルゴリズムが詰まっているはずだ。
それどころか、どこかの企業ロゴや、製品識別子みたいな記述まであるかもしれない。
(あれを他人に見られたら、「あっ、未来のAIだコレ」って一発でバレるだろ……)
売るとしても、“そのままの形”では絶対にダメだ。
中身をいじれないようにしないと。
そこで、いつもの手を使う。
――ChatGPTを起動。
画面に、いつものシンプルな入力フォームが開かれる。
俺はキーボードを叩いた。
>このソフトを他人に渡したいんだけど、中身を見られないようにするにはどうしたらいい?
少し待つと、すぐに返事がきた。
『ファイルの暗号化、もしくはコードの難読化(obfuscation)を行うと良いでしょう。
具体的には……』
なるほど。
コードをパッと見ても読めないようにするってことか。
さらに続けて質問を打つ。
>機能に制限をつけるには?
『たとえば、文字数制限、使用回数制限、あるいは一部機能のみ公開、などが考えられます。
例:「1回の出力は800文字まで」「1日3回まで」など』
(それだ……!)
たしかに、ChatGPT本体の“すごさ”をそのまま渡すのではなく、“使える部分だけ切り取る”ことで、
世に出してもリスクが少なくなるかもしれない。
今のままじゃ、2000字以上の論文でもサラッと書いてしまう。
ニュース記事でも、レシピでも、スピーチでも何でも作れてしまう。
でも――
「1回200文字」
そのくらいに絞れば、“便利ツール”としては成立するし、
中身のすごさにはたどり着けない。
……たぶん。
「でも、それって本当に“売り物”になるか……?」
俺はひとりつぶやいた。
便利ではあるけど、AIブーム前のこの時代に、AIツールのすごさが分かるのか??
果たして、どれだけ需要があるか。
そもそも、使いこなせる人がいるのか?
(……って考えてたら、迷走してきたな)
ひとまず、“売るための制限仕様”をいくつかメモ帳に書き出してみることにした。
ソフト名:ソフトA(仮)
• 機能:ChatGPT 3
• お題+テンプレ選択式
• 文章生成:最大200文字
• 1日20回まで
• 裏にChatGPT 3
• セキュリティ:コード難読化+暗号化
「……うーん、“今”の人たちにどこまで使ってもらえるかだよな」
便利さは十分ある。
でも、普及させるには“便利さを知ってもらう”必要がある。
「売るとしたら……誰に、どこで、どうやって……?」
考えれば考えるほど、次の疑問が浮かぶ。
でも、それがちょっとだけ楽しくもある。
まだわからないことだらけだ。
でも、「売ってみたら?」という言葉に、少しだけ本気で向き合い始めた自分がいる。
「とにかく、まずは“中身”を見られないようにしないと」
俺はPCの前で腕を組んだ。
売る売らない以前に、このソフトの本体コードがバレたら終わりだ。
「なんか便利な文章ソフト」では済まなくなる。
誰かが解析すれば、明らかに今の技術じゃ不可能な構造をしてるって気づく。
そうなれば――
下手すりゃ、国とか企業とかが動くレベルの話になる。
それだけは、絶対に避けなければならない。
(となると……やっぱ“暗号化”か)
俺はいつものように、ChatGPTに相談してみた。
>このソフトのコードを、コードの難読化(obfuscation) 以外に守るにはどうする?
すると、画面にスッと返答が現れた。
『コードの暗号化をおすすめします。具体的には、XChaCha20と呼ばれる暗号化方式が高い安全性と……
つまりこの暗号を使えばいいのか……
セキュリティとか、情報保護とかでよく見かける単語だ。
でも、実際に自分で使えるかどうかは別の話――
と思ったけど。
『以下はWindows環境で実行可能な、XChaCha20暗号化の簡易スクリプトです。』
ChatGPTに「ファイルをXChaCha20で暗号化したい」と入力すると、すぐに手順とコードが表示された。
「これ……全部そのまま使えばいけるってこと?」
半信半疑のまま、ChatGPTが教えてくれたコードをコピペして実行してみた。
──案の定、最初はうまくいかない。
ファイルが見つからないだの、モジュールが入っていないだの、エラーのオンパレード。
でも、出てきたエラー文をそのまままたChatGPTに投げ返すと、
それもすぐに解決方法を提示してくれる。
「なるほど……パス指定が間違ってるのか」
「このライブラリをeasy_installで入れろってことね」
そんなふうに、エラーと修正を繰り返しながら、なんとか動作環境を整えていく。
15分くらい格闘した末、ようやく「実行成功」の文字が画面に現れた。
ChatGPTの指示通り、ソフトのメイン実行ファイルを複製し、
そのテスト用ファイルに対してスクリプトを使って暗号化処理をかける。
数秒後――
指定した出力フォルダに、新しいファイルが生成されていた。
ファイル名は同じだけど、中身はまるで別物。
(これ、開けるのか……?)
恐る恐る開いてみると、画面にはぐちゃぐちゃの文字列が並んでいる。
意味がわからない。完全に暗号だ。
プログラムの構造なんて、かけらも見えない。まるでただのノイズの塊みたいだった。
もう中身が読めない、完全なブラックボックスだ。
「……マジかよ。ほんとに、できた……!」
思わず声が漏れた。
ややこしそうな暗号処理も、ChatGPTを使えばここまで簡単になるのか。
たった15分で、自分のソフトを“黒い箱”に変えられたような感覚だった。
ちょっと調べてみたら、
XChaCha20はGoogleが機密データを保護するために製作した暗号らしい。
……これは鉄壁だな。
「……よし。暗号化は完了」
XChaCha20を使って、ソフトのコード本体は完璧に隠された。
もはや誰が見ようと中身は読めない、謎の塊になっている。
けど――
(だったら、ついでにもっと強化しちゃってもいいか?)
今まで自作サイトのデザインや機能構築ばかりで、
“セキュリティ”について真面目に取り組んだことはなかった。
でも今回の件で痛感した。
ソフトを外に出す=自分の秘密が漏れるリスクが出るってことだ。
だったら、やれることは全部やってから出す。
それが、最低限のラインだ。
そう思って、もう一度ChatGPTを呼び出す。
>XChaCha20以外にも、セキュリティ強化できることある?
返ってきたのは、いくつかの専門用語。
それが分からないのでChatGPTに聞きつつ、搭載する暗号などを考えていった。
そして、ノートに箇条書きでまとめてみた。
Argon2によるパスワード 設定
XChaCha20によるコード全体の暗号化
コード全体の難読化(Obfuscation)
こんな感じらしい。……全く分からん。
XChaCha20はすでにやったから、他のを一つ一つ調べながらやる。
てか、XChaCha20は2016年ごろ、Argon2は2015年に発明されたらしく、2005年には未知の技術らしい。
(これ最強のセキュリティじゃん!!)
もしかしてこれ、暗号っていうより、未来漏洩ってやつじゃない!?
セキュリティじゃなくて、機密情報そのものじゃない!?
「やっべえええええええ」
静かな部屋に、自分の声が反響した。
けど、すぐに落ち着く。
「……ま、バレなきゃ大丈夫だよな」
こんな時はポジティブシンキングに限る。
「よし、これで誰にも俺のソフトを解析できない。ていうか、解析しようとしたやつ、泣いて帰るぞ」
そうつぶやいて、もう一度パソコンを眺めた。
ーーーーーーーーーーーーーーーーー
補足
Argon2 ―― ソフトの中のコードを見るときのパスワード
XChaCha20 ―― ソフトのデータやコード全体を暗号化
コード全体の難読化(Obfuscation) ―― プログラムを分かりづらくする




