はてなキーワード: 暗号化とは
これはSCRAPという会社が展開している謎解きの一ジャンルのようなものだ。
最近は謎解きと言っても、その内容は多岐に渡る。
代表的な例を挙げれば、参加者は突然部屋に閉じ込められて、部屋の中にある謎や暗号を解き明かし、時間内に脱出できなければ死ぬ、とか。
爆弾が会場に仕掛けられていて、時間内に暗号化された爆弾解除マニュアルに沿って爆弾を解体できなければ、爆発して死ぬ、とか。
もちろん、実際に爆弾が爆発して死んだり、一生部屋に閉じ込められることになったり、借金が返せなくなって地下労働施設で働かされたり、ということはない。そんなことが本当に行われているとしたら、犯罪に他ならない。
これは「ごっこ遊び」であるからこそ、担保されている面白さだ。
ところが最近、この「ごっこ遊び」のラインを越えてこようとする公演が増えている。
謎解きとは、絶体絶命の状況を打開するために、通常では考えられない打開策、奇を衒った発想が求められるジャンルである。それゆえ、尖った内容が歓迎される風潮がある。それを突き詰めていくと、タイトルのような公演ができあがってしまうのかもしれない。
さて、タイトルの公演だ。
当該公演は、今年の8月。フェス(いくつもの謎解き団体が出展する催し物のこと)で行われた個人制作者による公演だ。
なお、この公演では、5万円でゲームを鑑賞する権利を得られる観覧チケットというものが発売されていた。
謎解きと分類していいかは議論があるだろうが、昨今は謎解きと隣接ジャンルの境が曖昧になっているし、当該公演の制作者は謎解きの制作者として有名なので、ここでは便宜上謎解きと呼ぶ。
詳しいゲーム内容については、他の人がまとめてくれているし、この文章の主旨ではないので触れない。簡単にまとめれば、このゲームは順位戦であり、いくつかのゲームを通して、参加者に順位をつけるものであった。
そして、このゲームで最下位だった参加者は、運営にパスポートを「預けて」おり、それは11月現在、参加者に返却されていない。
・ゲームに負けるとパスポートを運営に預けなければならないことは事前に運営側から説明があった。
・その説明を受けた時点で、参加者には公演参加を辞退する権利 があった。
・誓約書を提出した。
このことから、主催者と参加者の間では、「ゲームに負ければパスポートを運営に預ける」という同意はとれていたと考えられる。参加者も、パスポートが普段の生活で不要な人たちなのだろう。
もちろん、最下位となった参加者が心変わりをして、パスポートの返却を求めて訴訟を起こせば、公序良俗に反する契約と判断されて、契約が無効になることは考えられる。
第二十三条 次の各号のいずれかに該当する者は、五年以下の拘禁刑若しくは三百万円以下の罰金に処し、又はこれを併科する。
三 行使の目的をもつて、自己名義の旅券又は渡航書を他人に譲り渡し、又は貸与した者
四 行使の目的をもつて、他人名義の旅券又は渡航書を譲り渡し、若しくは貸与し、譲り受け、若しくは借り受け、又は所持した者
すなわち、パスポートを「行使の目的をもつて」他人に譲渡・貸与(「預ける」という表現を参加者は使っているが、実際には本人名義のパスポートを他者に預けている時点で、極めて譲渡に近い)すると、譲渡・貸与した側も、された側も、罰則を受けるということである。
もちろん、この辺りについても、なにかしら対策済なのだとは思う。たとえば、実際にはパスポートは運営の手元にはなく、鍵のかかった箱の中に入った状態で、参加者の手元にあり、鍵だけを運営が所持しているとか。(そうであるとしたらだいぶつらまないが、安心はする)(そうであるとしても、他者のパスポートを行使できない状況に置くことは法的に問題がないのか)
本当に預かっていたとしても「行使の目的」ではないことを客観的に証明できるだけの「なにか」を用意できるから、公演を打っているはずだ(そうだと信じたい)
いくら個人公演といっても、こんな公演を打つのであれば、リーガルチェックは入れているはずだ。
「なーんだ、法的な問題はなかったんだね!」「面白いから、いいよね!」「主催も参加も自己責任だもんね!」「仮に何か問題があっても、主催者と参加者の問題だから、俺には関係ないし」
めでたし、めでたし。
…こういう見方が、謎解きを嗜む人々(以下、謎クラと呼ぶ)の間ではほとんどだ(あまりにヤバすぎるので、触らんどこ、かもしれない)
謎解きの世界では、制作者と参加者の距離が非常に近いため、表立って公演に文句を言う人は少ない。作者が有名制作者であれば、なおのことだ。
いや、僅かながら、この公演の危うさに言及している人はいる。パスポートを賭けることの面白さに疑問を呈している人もいる。Xで何も言及できない自分からすれば、勇気ある行動だ。
主催者とパスポートを預けている参加者は、現状、パスポートを主催者に「預けている」という体で発信している。法的な問題を回避しているという説明も、その方法も、主催者からはなにもない。第三者から見れば、(謎解きの名のもとに)違法行為が行われているように見えて、それが堂々と発信されている。この危うさについて、謎クラにはもう少し考えてほしい。
残念ながら、既に然るべき機関に通報を行っていることを示唆する投稿がXで発信されている。善良な一般市民は、警察や入管に通報することを驚くほど躊躇しない。それが治安を維持しているのであり、時に、それで行政の仕事は圧迫される。通報の数が増えれば、行政としてもなんらかの措置を講じなければならない。
詳しい人にとっては「あの人の作った公演」だが、周囲からすれば「みんな謎解き公演」である。
今から10年前、常設の店舗を持つ謎解き団体なんて、数えるほどしかなかった。電車の広告に、今ほど謎解きの広告があることもなかった。どこか、ビルの一室でそういうイベントやるところがあるらしいよ。そんなレベルだった。
大手の団体や企業が、謎解き文化の発展に尽力して、鉄道会社や自治体が周遊謎(街を歩きながら、謎を解き進めるタイプの謎解き)を定期的に開催してくれるようになってくれたところで、これである。
ある程度の規模の企業や自治体が、謎解きに参画するには、クリーンなイメージが必要だ。そういう謎解きのテーマにカジノやデスゲームが採用されていないことからもわかる。
尖っていたり、狂っていたり、他人と違うことをする自分が格好良く見えたり。純粋にすごいパズルが作れるとか、特徴のない人間ほど、そういう方向に走りがちだ(しかし、今回の制作者はこれを実行に移しているのだから、その点ではすごい。勇気がある)
ただ、個人で制作しているようであって、謎解き文化の一端を担っている。馬鹿が馬鹿やって法の網目を通り抜けるような公演は、身内だけで打ってもらって、外部にも公開しないでほしいと思うところである。
プログラミングとは、勉強も運動もスマブラも下手なクソ隠キャ中学生が「俺もパソコン1台で凄い技術者になって…!」とワクワクしながら始めるものの思ったより普通に難しいし学校の試験で出たような知識要求されるしで3日で放り投げ、10数年後にnoteで「お前らは絶望的にプログラミングに向いてないからやめろ」なんて記事を書くだけのザコに成り下がる、夢と希望に溢れた技術である。
近年ではパソコンのスペックの上昇にともないできることも増え、どこのご家庭にもあるRTX2080で簡単にディープラーニングもできるようになった。Unityで3Dゲームをバリバリ動かしてもブルースクリーンは出ない。やっぱ世界を広げるのは小賢しい知恵よりもスペックの暴力だぜ。
開発環境や言語も選択肢豊富で、エディタもかつては有料クラスでも手に入らなかったような贅沢な機能が満載のものが出回っている。Eclipseとか今考えるとよくあんなので開発できてたな。
いまや小学生からおばあちゃんまでアプリ作りに熱中し、高校生はIoTとかやり始め、大学生は商業レベルか?ってレベルのものをネットで発表し、私はウェブアプリのスマホでのレイアウト崩れひとつすら直せず静かにエディタを閉じてnoteで過激タイトル記事を書いている。
掛け算に順序があると思っているような知能の下級雑用係(自分のことを教育専門職だと思い込んでいる)ですら「小学生にプログラミングを教えるぞ!」と意気込んでいる。やめろ。お前らには無理だ。無理だからマジでやめろ。考え直せ。無理だって。掛け算に順序つけないと相手に教えられないレベルのやつがプログラミング教えるのマジで無理だって。算数とは次元が違うって。「ピーチ姫いつも簡単に誘拐できるし今度はベヨネッタも誘拐してみるか」ぐらいの無謀さだって。やめとけ。マジでやめろ。
まあそんなこんなで入り口はめちゃくちゃ広く、入門するのはマリオカートより簡単である。話逸れるけどSwitchのマリオカート、運転アシスト機能ついて初心者でもコース完走できるようになったから心折れちゃった人ももう一度チャレンジしてみてね。
それとは特に関係ないんだけど、大学行ってた時ティーチングアシスタント(TA)っていう授業のお手伝いさせられたのよね。ちゃんとお金出るやつ。
学部の3年か4年から始まって、院の1年か2年までやってて、途中で休学挟んだから、ええと、あー、うん、数年間TAやってたんよ。数学とプログラミングのコマ。CとOctaveとかいうやつ。Cのほうは情報学科で、Octaveは違う学科。JavaとかC++のコマはTA入れさせてもらえなかった。
プログラミングの実習は週2コマ(連続)あって、情報学科なら必修科目。なのでサポートは相当手厚く、先生とTAが絶え間なく机間巡視し、わからないことがあればセンパイがなんでも答えてくれるというわけだ。授業外でもサポートはしており、わからなければ先生や研究室にいる学生に好きなだけ聞きにいっても良いということになっていた。必修だから落とされたら困るしな。
2コマだから3時間 * 15回で、45時間。そして私の時は2年まででC/C++/Javaと必修だった(今はなんの言語かは知らない)ので、その3倍、135時間は最低やることになる。プログラミング実習以外にもプログラミング触る授業多いから実際はもっと多い。宿題やる時間もあるので実際はもっともっと長くプログラミングに触れることになる。卒論書く時期に入ると、テーマによっては書く人はさらに書くので、もっともっともっともっと長い。
これだけ時間をかければほとんどの人がプログラミングできるように……ならない。むしろできない人の方が多い。なんで。why。教えて。
会社になるとさすがにプログラミングできるできないは死活問題である。
「今日から入ったxxでーす。業界未経験ですがよろしくおねがしまーす。さっそくなんですけどPythonのここわかんないんですけどどうすれば……あっそうすればいいんですね。次はここなんですけど……なるほど!ありがとうございます。じゃあまた明日ー」
いやー社会人にもなると熱意が違うね。学生なんかわかんなくてもほとんど聞きに来ないのにな。こりゃガンガン伸びますわ。私も社会人1年生でPythonなんて3秒ぐらいしか触ったことないから適当答えてるけど。
「ちょっとお時間よろしいですか?」「いやちょっと今忙しいから後になっちゃいますわ。すんません……」
そんなこんなで1週間ぐらい放置してしまった。やべー絶対嫌われる。どこまで進んだかな……?えっまだそこ?進んでなくない?
もしかしてこれ全部教えないとダメなやつか。そりゃ大学4年間プログラミングやったやつでもプログラミングできないんだから、そうか。よく考えると当たり前だよな。
プログラミングをやめろ
大学4年間と大学院2年間プログラミングやったやつでもできないし、会社で毎日8時間を数週間プログラミングについやしてもできないやつはできないし、そもそも人類というのはプログラミングできない可能性がある。
少年少女たちに「プログラミングはいいぞ!自由にものが作れて達成感がある!頭が良くなった気分にもなれるし!」と吹聴してまわんのもいいけど、6年間情報科学について勉強したようなやつの大半がプログラミングできないんですよ。それもごくごく初歩的な部分。
野球とかサッカーなら、まあ友達との試合には参加できなくてもごく稀にバットにボールを当てたり、ボールを1回あらぬ方向に蹴ったり、ぶっちゃけ周りとのレベル差で楽しくなくてすぐやめちゃうだろうけど、なんとか基礎の一部ぐらいはできるじゃないですか。
ピアノとかダンスでも、猫踏んじゃったをごくごくゆっくり弾くぐらいはできるかもしんないし、学芸会の振り付けを10秒ぐらいは踊れたりできるかもしれない。その後やっぱ周りのレベル見て諦めちゃうかもしんないけどさ。
プログラミング、6年やってミットを頭にかぶってるバッターとか、鍵盤蓋の上から殴って音鳴らそうとするやつとか、まずそういうレベルのやつが大量発生するんですよ。だいたい7割ぐらいの率。どうすんだよこいつら。私の教育の問題か?マジで?本当に?
プロが練って考えて凝縮した本や授業、センパイたちによる指導。それらを結集して得られるはずのものが7割ぐらいどっかに消し飛んでる。無駄だろこれ。
今からプログラミングやろうとしてるやつ、お前は確実に向いてないからさっさと諦めて刺身にタンポポ乗せる仕事に戻ってくれ。参加しても鍵盤蓋叩き割るやつと同じ病室に入るだけだ。
プログラミングをやめろ。
ぼくはこう思うんですよ
そもそもなんで大の大人がそんな両手にバット持ってセカンドに立ったりゴールの方をボールのところまで動かす奇行に走るんだろうな。わかんねえや。
綺麗な分析はできないけど、いわゆる「できない」やつが共通して言ってたフレーズがある。
「ぼくはxxxだと思ってるんですけど、動かないんですよ」
うん、そうだね。そう思うんだ。でも動いてないじゃん。じゃあ違うんじゃない?モニターに「にらみつける」やってもバグは取れないし防御力下がるだけだぞ。
まず根本的に考えと事実が違ってるって結果出てるじゃん。じゃあもう考え変えちゃえば早くない?
名言の引用は好きではないけど、「プログラムは思った通りには動かない。書いた通りに動く」って言葉がある。実に名言だと思う。次点で好きなのが「ある問題を解決しようと正規表現を使うと問題が2つに増える」かな。
お前が何を思っているかはプログラミングにおいて一切影響しないんだよ。お前が何を書いて、コンピュータがどう処理したか、それが全て。
深く考えないことについてぎゃーぎゃーいうやつもいるけどプログラムなんてまず最初は動けばいいんだから何も考えずに次試せばいいだろ。んで3回ぐらいは自分で思い浮かんだの試して、全部ダメだったら調べるとか先生に聞いてみるとかさ。逆に1発で通ったら自分の思考見直して理解深めるとかさ。
ドキュメントとかあんまり理解できない初心者のうちは、とにかくお試しと修正のサイクル回すの重要で、「これがこうだから動くはず」というカードを3種類ぐらい作って全部片っ端から試すのが早いと思うよ。モニターをにらみつけるな。
お前がどう思ってるかよりも、まずはお前の書いたプログラムがどう動いているか(どう動いていないか)を確認するのが先だ。動かなかったら考えが違う、はい次のプラン、はいその次のプラン、はい次。
この「ぼくはこう思ってる」が出てくるの、なんの教育の成果なんだろうね。お前の気持ちなんてどうでもいいって現国でも数学で散々教えられただろ。
Error: variable 'a' is undefined, line 24
↑のエラーは架空のエラー文(英語下手でも許して)だけど、エラー、出るよね。プログラム組んでたら。んでやっぱいるのよ。エラーを「にらみつける」やつ。解決しねえって言ってんだろ。
「エラー出たんですけど、どうすればいいんですか」
「エラーにはプログラムがなぜコンパイル通らないかの原因がそのまま書かれている。例えば今出ているError: variable 'a' is undefined, line 24は、24行目の変数aが未定義ということを示している。事前に変数aを定義していないか、打ち間違えてsになっているとかではないのかな?」
だいたいが「腑に落ちねぇー」みたいな顔する。まあ、一気に喋りすぎたしな。疑問点1個1個潰していくか。
「何か疑問点ありそう?変数ってなにー、とか、定義ってなにー、とか」「ないです。わかりました!」
わかったのか。よかった。またモニターをにらみつける開始。なんでだよ!!!!「お前顔にチョコついてるぞ」って言われたらチョコ拭き取るだろ。変数aが未定義ですねって言われたら変数a定義すりゃいいだろ。
でもプログラミングド下手なやつ(全人類の7割ぐらい)は、エラーをにらみつけてる。ずっとにらみつけてる。防御力下限まで下がったかな。にらみつけてて何が変わるんだよ。
「英語読めなくて……」
いや「a is undefined」なんて「He is Superman」ぐらいの英語だろなんで読めないんだよ。お前この大学どうやって入ったんだよ。たしかどの入試方式でも英語あっただろ。単語わからんかったらググれ。
「aが未定義って書いてあるんですけど、ここのfor文の私の考えが間違ってるのでしょうか」
いや24行目のaって書いてるだろ。まずなんでそこ無視するんだよ。お前がfor文で使ってんの教科書通りのiだろ。24行目ってわかるか?for文あるの40行目あたりだよな?aとiが違う文字ってわかるか?
「さっきのエラー直したら新しいエラーが出たんですけど、どうすればいいですか」
千尋!贅沢な名だねえ
変数に名前をつけろ。関数に名前をつけろ。クラスに名前をつけろ。全てに名前をつけろ。
C言語の古い教科書だと「a」とか「b」とか「i」とかで書いてるけど、そんなの人間が読めるわけねえだろ。冷静に考えろ。「input」「output」「index」とかにしとけ。
2重for文の変数名i, jにしたら絶対途中で打ち間違えるだろ。お前は打ち間違える。そういうやつだ。2重ループなんてどうせ行列計算の課題だろ。rowとcolumnにしとけ。これで打ち間違っても気づくし、それぞれに意味が付いてくる。
ちなみに同じ長い名前にも優劣がある。「result」よりも「sum」のほうが強い。「result」はなんの結果かわからない(全ては結果であるので)が「sum」は合計値であることがわかるからだ。「password」と「plainPassword」なら「plainPassword」が勝つ。暗号化されていないパスワードであることがわかるので、情報量が多いからだ。
ただし例外はいくつかある。「tmp」は一時変数であることが(プログラマにとって)明らかだ。「dir」はディレクトリであることがわかる。「src」「dist」あたりもよく使われる。このあたりは短くていいんじゃねーかな。
でも、この前温度センサ扱うプロジェクトで「tmp」って変数名使って温度(temperature)と脳内で混線してバグって発狂してた同僚いたけど。そういうときは名前長くするか別の名前使おうな。
関数の名前なんて「calcAverageFromArray」ぐらい長くしていいから。「myFunc」とかしなくていいから。「fetchJsonDataFromUniversityInternalServer」とかでいいから。マジで。いやこれ本当に。
そもそも今時ディスプレイでかいし、識別子なんて先頭数文字打ったらエディタが補完してくれるし、短くするメリットがない。
それでも名前が長いと感じる?関数がでかすぎるんじゃないか。細かく処理を分けるとかしてみろ。「combineArrayAndFindMax」関数は「combineArray」と「findMax」に分割したらいいと思うぞ。名前が長いと思っても名前を削るな、機能を分割しろ。自然と名前が短くなる。
それかシンプルでかっこいい名前を見つける。「convertEvilHtmlToPeacefulText」は「sanitize」に置き換えることができる。イカす名前だ。
プログラミングできない奴はマジでこれらのことをやらない。ずっとaとかbとかzとか使ってる。お前それ自分で読めんのか。読めねえだろ。myfuncってなんだよ何するんだよ。お前自分で理解できてんのかそれ。
それでも頑なにaとかbとか使う。なんでだよ。
動作原理わからず書き散らすな。動作原理っつってもそんな深いところじゃなくて言語表面上レベルの動作な。
リテラルは値を作成して、代入は値に名前をつけている、とかその程度のレイヤー。メモリがどうこうとかはいらんと思う。あっでもポインタのときはいるか……。めんどくせえな。
まあ動作原理っていうか自分が何やってんのか理解してくれって程度の話になるんだが。
例えばfor文で処理50回まわすとき、「50回分の処理を行なっている」ではなく「ループ開始時に変数を初期化。条件判定して成立していれば文の中を実行する。条件変数の値を変化させてまた条件判定からやり直す」ぐらいの粒度で捉えててほしいかな、という気持ち。
これはfor文で詰まる人がやたら多かったからだ。彼らはfor文をアトミックな操作だと思っていた。つまりfor文はひとまとまりの命令であり、長いfor文とprintfの間に粒度の違いはないと思っていたらしい。
つまり、「for文の中でエラーが起こる」という事象がほぼ理解できない。forはアトミックであり、内部など見えないのだから。じゃあお前が今書いたfor文の中身はなんなんだってやんわり聞くと「さあ…?」みたいな反応が返ってくる。はあ。
関数についてもなかなか誤解が多かった。関数「sum_array(a, b)」と関数「average_three_numbers(a, b, c)」は全く別の原理で動いているのだと。ここでの「全く別の原理」というのはシグネチャが違うとか実装が異なるとかそういう意味ではなく、コーラを飲んでゲップが出る原理と糸電話で声が伝わる原理ぐらいの全くの別、という意味である。
彼らは関数ひとつひとつについて「新しく原理を学習」していたのだ。マジかよ……。どうやったらそんな発想に行き着くんだろう。そりゃ時間かかるわな。
そのため、関数が値を返す(または返さない)ということも理解できておらず、「関数の戻り値と関数の戻り値を足す」とか「関数の引数に関数の戻り値を直接渡す」とかやりだすと大パニックになる。メソッドチェーンとかやった日には大学潰れると思う。ただ、これはC言語が悪い部分もあると思う。配列とかいじりだすと、初心者が書けるレベルの関数だとあんまり値返さないしな。
たのむ、他のはできなくてもこれはできてほしい。自分が何をやりたいのかは理解してほしい。流石にお前のやりたいことなんて他人にはわからんぞ。
「配列の中の数値の合計値を求めたいんです」とか「名前と身長と体重をひとつにまとめた構造体が作りたいんです」とか。簡単なのでいいから。
「いま何やろうとしてどこで詰まってる?」って聞いても「……?」みたいな反応されたら困るんだよ。
例えば「キーボードから数値を10回入力し、それぞれの値を配列に格納して、最後に配列の値を逆順に表示せよ」みたいな問題が出てきたときに、「キーボードから値を入力する」「10回繰り返す」「配列に値を格納する」「配列の値を逆順に表示する」に分解できると思うんだけど、自分が何やりたいのかわからない奴はまずこれができない。
彼らには「キーボードカラスウチヲジュッカイニュウリョクシソレゾレヲハイレツニニュウリョクシテサイゴニハイレツノアタイヲギャクジュンニヒョウジセヨ」に見えている。
かろうじて「キーボード」「ハイレツ」あたりの単語は拾えるらしく、標準入力から値とったり配列を作ったりはしてるんだけど、そこから先に進まない。モニターにらみつけてる。またにらみつけるかよ。
あれだ、算数の文章題できなくてとにかく文章に出てくる数値足したり引いたりするやつ。あれのプログラミング版。文章が読めない。
こういう人にはメモ用紙取り出して、まず文章が何について言ってるのか、どういう工程に分けることができるのか、今後も同じことが起こったときにどうやって分けるのか。みたいなのを教えるんだけど、大抵あんまりしっくりこないらしく、成功したことは皆無。なんとかうまく教えたいんだが。
もうこのあたりになってくるとプログラミング関係なくね……?ってなるんだけど、意外とそういうプログラミング関係ないところで詰まる人めちゃくちゃ多いよ。
今すぐプログラミングをやめろ
いやいや暗号化されたらああやって暗号化に使った文字列とセットで署名ブロックが生成されるんだから、
いじっちゃったらもう認証できないよ
dorawiiより
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 https://anond.hatelabo.jp/20251030170445# -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaQMcIgAKCRBwMdsubs4+ SFBsAQC4Go3LTtN1v1U0eCNTwMezP4/oLqYOFMILYl+vtQLySwEAmpbC71RR1NCb gBhb2b+5S0ubO/bFJcEbDu9Pp5H9Ygs= =f4rI -----END PGP SIGNATURE-----
たとえばクレオパトラのノートパッドに書いて暗号化する場合文章多いほど署名も増えるね
dorawiiより
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 https://anond.hatelabo.jp/20251030135748# -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaQL7rwAKCRBwMdsubs4+ SLimAP4zezv9wdLd5SHc4n1Sl5Vn0DKlYWflp4ZxCkmN9PAh3QEAvL2cVz5b2mJv 67bxMw48FrE9xOpPC7nj8EvnT8kRgQc= =G3DI -----END PGP SIGNATURE-----
先日より騒ぎになっている「ぷまソフト」、VRChat向けアバターに付属(付随?)して販売されていたらしい。
らしい、というのは、自分自身は該当の商品ページすら開いたことがないので詳しいことはわからない。しかしIT目線から見て明らかにまずい代物であることは確かである。
専門的な解説は下記が詳しいのでそちらに任せる。
https://k4na.de/posts/2025/10/pumasoft/
なお、VRChatやそれに纏わる文化などの前提知識の説明は省略する。
まず初めに、「悪意(故意性)の有無はもはや関係ない」という状況ではある。
作者による釈明もどこまで信用すべきかわからない。
その上で悪意がなかったと仮定し、私が推測しているシナリオは、簡潔に述べると以下の通り。
BOOTHでやりとりされているVRChat関連アイテムは、慣例的にunitypackageのDLという形になっている。
これ自体は特に暗号化などはされていない。ゆえにデータの不正共有との戦いが議論され続けている。
作者はおそらくそんな問題に対しての解決策としてぷまソフトを作ったのだろう。
詳細は前述の記事で述べられているが、法に触れる可能性のある挙動や配布形態であった。
その内容に作者自身に悪意がなかったとしても、悪用する第三者の発生の可能性は否定できない。
要するに、「不正利用は許さない!」のお気持ちだけで先走り、技術者倫理というものが致命的に欠けていた結果、自身の制作物がセキュリティホールになりかねないものになってしまったという、皮肉なオチというわけだ。
近年、俗に「反AI」と称される思想の人たちにまつわる事件を初めとして、アマチュアないしはフリーランスのクリエイターたちの法などへの知識や認識の甘さが問題視されている。
自身の創作物を「愛する我が子」とでも言わんばかりに認識するあまり、それらの利用方法に対してとても過剰に防衛し、時に厳密な著作権法すら無視した運用をしがちである。
今回もそれ由来の事件だったのではないだろうか。
ちょっとでもプログラミングを齧っていれば、「この実装どう考えてもまずいよね」と思うはずである。
いずれにせよ、かねてより不信感を抱いていたフリーランスのクリエイターというものの信用は、私にとってこの事件でさらに下落した。
この論文が端的に示しているのは、政治的言説が**「ドッグ・ホイッスル(隠されたメッセージ)」と「ウルフ・クライ(証明できない危険の主張)」**という、本質的に証明が難しい二種類の発話行為(スピーチ・アクト)を互いに非難し合うことで、**解決不能な悪循環(弁証法)**に陥るメカニズムです。
---
この論文は、**ドッグ・ホイッスリング(DW)**と**ウルフ・クライイング(WC)**といった特定の**スピーチ・アクト(発話行為)**に対する**帰属(Attribution)**が、現代の政治的言説において、どのようにして敵対的な弁証法と新たな**発散(Divergence)**を生み出し、解決不能な膠着状態に陥るのかを分析しています [1]。
この問題は、DWもWCも、その性質上、**認識論的に(知識の観点から)帰属が困難な**発話行為であることから発生します [1]。この困難さが原因で、DWやWCに対する**非難や指摘(帰属)**自体が、合理的であるにもかかわらず、**確定的に検証または反証できない**主張となってしまうのです [1]。その結果、これらの帰属のパターンは、DWとWCが相互に強化し合い、固定化する**相互的な悪循環(vicious cycle)**へと発展し、「不幸な現状(unhappy status quo)」を築き上げます [1, 2]。
DWとWCは、政治的環境において特定の影響力を持ち、政治的言説を構成するスピーチ・アクトです [3]。スピーチ・アクトとは、話し手が直接述べた文字通りの意味(locutionary meaning)を超えて、間接的に暗示された力(illocutionary force)や、世界との相互作用において追加された力(perlocutionary force)を持つ発話の形式を指します [4]。
DWは、**論争的ではない公のメッセージ**の中に**論争的な隠されたメッセージ**を埋め込んで送るスピーチ・アクトです [5]。
WCは、**危険が実際には存在しないか、あるいは証明できない**場合に、危険が存在すると主張するスピーチ・アクトです [3]。
これらDWやWCを**「〜という発話行為である」とみなす**行為が、第二階次のスピーチ・アクトであるSAAです [7]。ドッグタウンのシナリオでは、Alphaを除いて、すべての参加者が互いにSAAを行っています [7]。SAAは、他者の行為を指摘する役割と、それ自体が新たなスピーチ・アクトであるという二重の役割を持ちます [7]。
DWとWCがこの弁証法的な問題を引き起こすのは、それらが定義上、間接的で**隠された(covert)**スピーチ・アクトであるため、**誤導的(misdirecting)**な性質を持つからです [8]。
DWは、公衆には無害なメッセージとして聞こえる一方で、特定の受け手にだけ私的なメッセージを送る、話者と受け手の**私的な意図と解釈**に依存するスピーチ・アクトです [8]。
WCは、私的に観察されたとされる危険についての公的なメッセージですが、**その主張の真偽**が外部から証明されていません [9]。
これらのスピーチ・アクトの帰属を行う人々は、証拠の一部しか得られず、全体像の一部のみを見て全体を判断する「盲人と象」のような、**認識論的に不利な立場**に置かれてしまいます [10-12]。
認識論的な困難さの結果、あるスピーチ・アクト(DWまたはWC)を非難する行為(SAA)自体が、相手からは敵対的な別の種類のスピーチ・アクトとして解釈されるという非対称性が生じます [13, 14]。
DWの帰属者(DWA「あいつはDog whistlerだ」と指摘する人)は、隠された秘密のメッセージを証明しなければならない立場に置かれますが、DWの主体は常に自身の意図の直接的な(私的な)証拠に訴えて否定することができます [11, 15]。そのため、DWAは常に**認識論的に不利な立場**に立たされます [11]。
WCの帰属者(WCA「あいつはWolf crierだ」と指摘する人)は、クライアーの個人的な経験に反して、「狼」が存在しないことを証明しなければならない立場に置かれます [12]。WCAは、非観察者でありながら、第一人称の観察者よりも権威ある知識を持っていると主張する不利な立場に置かれます [12]。
この相互に敵対的な帰属の非対称性が、DW帰属がWCとして返され、WC帰属がDWとして返されるという**多極的な相互作用**を生み出し、**認識論的な発散(epistemic divergence)**のプロセスを構成します [18, 19]。
帰属自体がスピーチ・アクトであるため、帰属はそれ自体に再帰的に適用されます。これは**スピーチ・アクト帰属の帰属**として例示されます [20]。ドッグタウンの例では、Alpha(DW候補)→Buddy(DWA)→Charlie(WC A)→Duke(DWA)というサイクルが**無限に継続**します [2, 21]。
このプロセスは、**多極スピーチ・アクト帰属相互性**(DW帰属がWCとして、WC帰属がDWとして相互に強化し合うこと)であり、反復されることで**悪循環**となります [2, 19]。対話参加者全員が、互いの主張が共通の基盤として受け入れられないまま、**非難の応酬**を繰り返します [19]。これは、単に敵意や内集団バイアスから生じるのではなく、**相互的な認識論的な膠着状態**から生じる現象です [18]。
この悪循環が政治的言説の領域内で修辞的な規範として安定化すると、**定常状態の均衡(steady-state equilibrium)**が出現します [2]。これは、参加者が戦略を変えるインセンティブを提供しないため、持続します [2]。
最終的に、**ドッグ・ホイッスル/ウルフ・クライ帰属均衡**が形成され、誰もがデフォルトで互いをDWまたはWCのいずれかであると見なすようになります [22]。これは、相互に矛盾する信念から構成される**信念均衡(belief equilibrium)**の一種です [23]。
この均衡は、参加者が真実を追求しようとする**認識論的な美徳**から生じているにもかかわらず、以下の3つの深刻な問題を引き起こします [24, 25]。
これは、**相互に認識論的に強化し合うが、相互に認識論的に不適合な**視点のシステムです [26]。DWやWCの帰属は、合理的であるにもかかわらず**不確定**である可能性があり、この合理性と確定性の間のギャップが、相互に合理的だが相反する立場が**未解決のまま均衡**することを可能にします [26]。これにより、真実に到達するための「理想的な発話状況」の実現が不可能になり、会話の前提条件が満たされなくなります [26]。
この状態では、**スピーチ・アクトの帰属**が、**事実に関する帰属**を圧倒します [27]。政治的言説の内容は、ほとんどが「あなたの言葉はDWだ」「あなたの主張はWCだ」といった帰属で占められ、事実に関する議論はわずかになります [27]。
この飽和は、最初の扇動的な事実(犬の噛みつき事件など)自体が忘れ去られたり、無関係になったり、解決されたりした後でも継続する可能性があります [28]。なぜなら、最初の出来事Aそのものよりも、「Aに関するスピーチ・アクトの疑わしさ」の方が、政治的に重要であるように見えてしまうからです [28]。帰属飽和は、事実から独立した状態となり得ます [28]。
帰属を行う者の動機が**真実の探求**であるにもかかわらず、その追求自体が、実際には真実に到達しない均衡を生み出すという点で**自己敗北的**になり得ます [25]。
DWやWCの帰属は、特定の認識論的視点から見て合理的であったり、あるいは実際に正しい場合もあります [29]。しかし、不確実性が支配的な状況でこれらの帰属を提案することは、政治的に不安定化をもたらします [29]。したがって、帰属者の真実追求的な衝動こそが、言説をこの悪い均衡の罠に陥れる原因となり得るのです [29]。
この弁証法的な問題は、相互に合理的な認識論的視点から生じる**自己組織化された社会現象**であるため、単一の加害者を特定することはできません [30]。均衡から脱出するためには、政治的コミュニティにおける参加者の**満場一致の同意**が必要ですが、これは強力な反対者によって容易に崩壊する可能性があり、困難です(「一方主義者の呪い」) [30]。
帰属の伝播を防ぐため、すべての当事者に高い検証・反証基準を課すことが提案されます [31]。しかし、誤導的なスピーチ・アクトの性質上、単純な検証や反証はできません [31]。より現実的な解決策は、スピーチ・アクト帰属の飽和を減らし、事実に関する問いを再び顕著にすることです [31]。これには、相互理解を深めるための**修辞的傾聴(rhetorical listening)**のスキルセットが必要となるかもしれません [31]。
帰属の落とし穴を認識し、増幅サイクルを抑制するために、新しい用語を導入する提案もあります [32]。
これらの新しいラベルが、過剰なSAAの力を無力化し、サイクルを終結させることが期待されますが、これらのラベル自体が新たなスピーチ・アクト帰属としてサイクルに貢献する可能性もあります [33]。
最も重要なことは、この問題を真に解決したいと望む人々は、**自分たちのスピーチ・アクト帰属自体が問題を引き起こし、構成している**という痛みを伴う自己認識を持つことです [34]。
「ぶっちゃけ日本のIT技術者のレベルが元々低いだけ」論、読んだけど、雑に日本叩き→雑に海外持ち上げの“気持ちよさ”に全振りしてて、論としては穴だらけだよ。順に潰す。
“発明”って規格?論文?OSS?製品?この区別を曖昧にして「思い浮かばない=ない」をやるのは主観の事実化。
反例を淡々と置く(全部2010年代以降の「世界で通る」技術・成果):
HTTP/3 / QUIC系仕様・QPACKの主要貢献者のひとりは日本人エンジニア(例:Kazuho Oku)。IETFのRFCはまさに“世界標準”。「世界で通用」どころか世界の土台。
Chainer / CuPy(Preferred Networks)は動的計算グラフ系フレームワークの先行例。PyTorch隆盛の流れに技術的影響を与えた。CuPyはいまも広く使われてる。
ソニーのCMOSイメージセンサは世界シェア筆頭。これは“ハード”に見えて、設計・製造・信号処理・ツール群までソフトの塊。スマホのカメラ品質=AI前処理の土台。
日本人が中心メンテに関与した高性能HTTPサーバ(H2O等)はCDNや低レイテンシ配信に採用例多数。
産業用ロボット(FANUC、安川)周辺の制御・通信・ツールチェーンは世界の現場で常用。表に出にくいB2B領域は“見えないだけ”。
「LINEが~」みたいなB2Cの派手さだけが“発明”じゃない。基盤を握るのは地味仕事。あなたが気づかない=存在しない、ではない。
Winny/一太郎/CD-ROM/MIDIを“国民的知名度”で持ち上げて、以後は「思い浮かばない」って、知名度=技術力の誤用。
2000年代以降、ITは不可視化(クラウド、プロトコル、ライブラリ、半導体、サプライチェーン)へシフト。見えないところほど難しくなった。派手なガジェットが減ったからレベル低下、ではない。
問題領域で言語は変える。Webは「5歳児でも」動かせる?今のWebは、
CD/CI、IaC、K8s、SRE、ゼロトラスト、分散トレーシング、暗号化、フロントの再レンダリング戦略……
これらを運用で落とさないのが本番。Cが偉い/Webが軽い、は90年代の教養で止まってる。
起業に国の試験?それ、フィルタにはなるけどイノベーションの十分条件じゃない。
トップダウンは国家プロジェクトやインフラ敷設には強い。しかし、
分野で強弱は揺れる。制度の一軸で「勝ち負け」を断ずるのは幼い。
それ、犯罪としてのサイバー強盗の話でしょ。規制準拠の金融基盤と国ぐるみのハッキングを同じ土俵で比べるのは、
「百メートル走で銃使えば最速」って言ってるのと同じ。比較の土俵設定から破綻。
日本のITが伸び悩んだ要因は複合要因:内需の構造、調達・多重下請け、英語コミュニケーション、ストック報酬の弱さ、エクイティ文化、大学と産業の距離、IPO市場の質、人口動態、為替…
これを全部「技術者のレベル低い」で片付けると、説明力を失う。制度と資本設計の問題は制度と資本で解くのが筋。
「勝ってる」を“B2Cでバズるアプリ”だけに限定するから見落とす。
最後に一個だけ。
このチンピラが オレをナメてんのかッ!
「〇〇〇.com の部分さえあればいい」っていっておきながら
なんで「?より右の部分が暗号化される」ってこたえになるんだ
この…… ド低能がァーーッ
暗号化はセッション層で行われるので、パケットを相手に届けるための〇〇〇.com の部分さえあればいい
URLの?より右の部分はhttpヘッダの領分なので、メッセージボディの一部として暗号化される
ってgoogleが言ってた
そもそもインターネット(WWW)ってのは原理上すべて公開される可能性のあるもんなんだよ
本当にネット上で行う行為が犯罪にあたるものだと自覚しているなら、エンドツーエンド暗号化や追跡困難化が施された特殊なネットワーク上でやり取りすべき
だからネット上で行う時点で、他人をブロックするという考え方は根本からズレていて、ネット上には探せばあらゆるものが置かれてしまっているものだから、見たくないものは各自でフィルタリングする発想をもって使いましょう、っていう自衛ベースの場であるべきなの
情報を置いてる側がクッションや障壁を設けるのはあくまで「親切」であって、それを強制できることはなく、強制しようとするのはローカルルールでしかないんだよ
仮にそういう行為が必要だと判断するなら、それは個人個人が各自の判断で実行するよりも、サービス提供者側がなんらかの基準を定め周知させそれに沿って自動的にコンテンツにフィルタをかけるべき
そういう機能がついてないサービスだという時点で、自分の考える正義のローカルルールを守れてない利用者側だけを責めることは難しいだろう
増田をやっていると、本当かよ!?と思わず調べてしまうことがよくあって、学びになります。
ということで、最近、個人的に増田で学んだことをまとめました。間違っている知識かあったらすみません。
ピラミッドの底辺が砂に埋まっているので、ピラミッドは見た目ではもうちょっと短いらしい。
憲法22条で、職業選択の自由とともに認められています。だから住む場所は自由です。ただし、公共の福祉に反しない限りにおいて、です。
レンタサイクルといえば、電動自転車かママチャリしか借りれないと思っていたのですが、サイクルコースの近くとかではロードバイクをレンタルしてくれるお店もあるそうです。
モロッコには建物が全部、青に塗られているシャウエンという街があります。
職場で見るのにふさわしくないコンテンツ、の意。ポルノとか暴力とか。
おい!!!とか大声で言うだけならセーフ。その後に、殺すぞ!と言ったら脅迫罪、土下座しろ!と言ったら強要罪、金よこせ!と言ったら恐喝罪。
Windows 95 は平成です。
傘差し運転と同じ。公安委員会遵守事項違反、というらしい。その他条例でも禁止されているところがある。
Yahoo!知恵袋調べ。新しければ新品、古ければ古物、その間のやや古いのが中古。
ただし海外勤務の場合はもっと高くて、1300 万円以上ぐらいらしい。
「根性」は仏教的には性根と同じ意味で、もともとは粘り強いとかの意味はなかった。
だから、自力での入賞がなくなった時に「他力本願寺!」と言って祈るのは、合ってる。
このフレーズは17世紀のデカルトの方法序説という本の中に出てくる。それにしても17世紀というのは結構最近に聞こえる。もっと昔の本だと勘違いしていた。
このフレーズは、山本五十六のオリジナルではないが、気に入って色紙とかに書いていたので有名になったらしい。
ちなみに、山本五十六は前線視察中に米国軍機に撃墜されて亡くなった。
平成です。
同じ頃には、ルーズソックスやナタデココ、ポケベルが流行っていました。
クルドとは民族の名前で、そんな名前の国はない。トルコ、イラン、イラク、シリアに多く住んでいて、この地域がクルディスタンと呼ばれたりする。
自分たちの自治領や自治区を他国に作ろうといて、特にトルコと揉めている
ンゴロンゴロ自然保護区という場所がタンザニアにある。近くにコーヒー農園があって、その豆を使用したコーヒーをンゴロンゴロコーヒーという。
ちなみに難易度は年々上がっていて、TOEIC900点でマウントを取る人には「いつ受けたんですか?」と突っ込むのが礼儀。
個人を特定できる情報、という意味ではない。(それはただの個人情報)
フランス語が語源。楽譜を読む訓練、音を聞き取る訓練、リズムを把握する訓練などの総称で、特に子供の音楽教室とかでやるもの。
楽器をやっている人が、ちょっと練習すれば他の楽器も弾けるようになるのは、このソルフェージュの力。
チームの中で、純粋にタイムを狙う人、山岳賞などの特別賞を狙う人、風除けになってサポートする人、補給食などを配る人など、いろいろ役割分担するらしい。
データ保存用のメディアとして使ったことないので、知らなかった。思ったより容量が少ないという印象。ハードディスクをそのままバックアップできるぐらいの容量があると勘違いしていた。
発売開始はアリエールは1986年、エリエールは1979年で、エリエールの方が古い。
ショートショートってどれくらいショートだったらショートショートと言っていいの?と思って調べたら、諸説あることが分かった。
とはいえ、厳しい定義は原稿用紙5枚以下、ゆるい定義は20枚以下ぐらいの幅に収まる。
どちらも通貨偽造の罪だが、もちろん日本円の偽札を作る方が、外国の偽札を作るよりも罪が重い。
また、持っているのが偽札だと知って使うだけでも(作っていなくても)罪になる。
ファイルを暗号化したり署名したりする時に使われるソフトウェア。
ヤッターマンというテレビアニメの中でナレーションとして使われていたフレーズらしい。
ちなみにヤッターマンの初代の放送期間は1977年から1979年まで。昭和である。
ヒジャブはアラビア語で「覆うもの」の意味。全身を覆う布はブルカと呼ばれる。目以外を隠す布はニカブと呼ばれる。
一方JR東海は儲かっているらしい。理由は知らないけど、新幹線が関係していそう。
増田では、離婚するときに子供を連れ去ったら親権が取れる、いいやそれは誘拐だ、という議論がよくなされるので、気になって調べた。ちなみに誘拐は英語で kidnap 。スペルに kid が入っているが、子供以外を誘拐する時にも使える。
Wikipediaによると、歴史的には14世紀ごろにアジアからヨーロッパに入った玩具が元になって生まれたのが起源らしいが、「後付けされたファンタジー的起源」では古代バビロンや古代エジプトの伝説が起源らしい。
どっちも知らなかった。
あの、インドとかで乗客が車両の外まで溢れて乗っているやつのこと。トレインホッピングとも呼ばれる。
乗る列車が貨物列車の場合はフレートホッピングとか呼ばれるらしい。
だんだんめんどくさくなったけど、頑張ってまとめました。
増田は学びが多いSNSです。また学びが溜まったら投稿します。
他にもいい雑学があったら教えてもらえるとありがたいです。
基礎を作らないと1階が、1階を建てないと2階が作れない、躯体ができないと内装に取りかかれない、のがドバイタワー。だから同時に作業できる人は限られる。
暗号化総当たりの場合はそう言う順番の制約が無いので、ざっくりプロセッサの分だけ割り振って同時に進行ができる。だから作業分配さえしてしまえば数を増やした分だけスピードが上がる。
こういうのを「並列性能」といって、コンピュータで動かす仕事なら全部この並列性能が高いわけじゃないんだけど、暗号化の総当たりみたいなのは並列性能が高い問題に該当する。
半導体と暗号化アルゴリズム、ソフトウエア実装の話なので、一般人向けの「十分」に合わせて設計しても、軍事機密を保護するレベルの必要性に合わせて設計しても、コストはほとんど変わらないと言う特徴もあるのよ。
もちろん暗号を切り替えるときなど過渡期では重要性が高いところから優先していくとかで差を付けるのはありうるけど、複数の暗号に対応して運用するのはそれはそれでコストがかかるためあんまり意味ないことでもある。
最新のコンピュータを使っても100年かかる、と言うのは暗号化としてはダメかも。
専用のAISCを作るとそれぐらいの時間はワープできちゃうし、アルゴリズムやハードの革新が起きると数年でクラックできる可能性がある。
わざと計算が重たいアルゴリズムを使用することで、よりクラックされにくくする。
そう言う発想の暗号は存在しないわけではないが、今回話題になっているようなコンピュータ同士が使う暗号には、基本的には暗号は鍵長とアルゴリズムで安全性を担保するのが主流です。
そのまんま鍵の長さ。128とか256とか。組合せの数。これの数が多いほど、鍵になる文字のパターンが多くなる。総当たり攻撃(箸から順番に鍵を試してみる方法)に強くなっていく。
例えば、元々のDESは、56bitの鍵。これは組合せの数が少なく、総当たり攻撃でも1998年に当時のスパコンで23時間で破る事ができた。現在だとスマホクラスでもちょっと待てば破れてしまうだろう。
今問題になっているフェリカの旧タイプの暗号方式、3DESとは、簡単に言うとこのDESを3回かけることにより、鍵長を長くした暗号方式。168bitの鍵長を持っています。
56bitに対して一気に組合せが爆発して、総当たり攻撃で鍵を特定しようとしても現実的な時間で終わらなくなります。
例えば、仮に1秒間に1億回計算出来るチップが1億個あったとしても、10^16年(正確な数字は多少間違っているかもしれないが)かかる。これはこの太陽系の寿命よりも長い時間をかけないと計算が終わりません。
これを利用することによって、正しい鍵を知っている人は省エネで計算でき、知らない人は膨大な時間が必要と言う暗号方式ができあがっている。このような特性をもった方式が優秀とされ、色々な所で使われている。
また、この組合せ爆発の前には、人間が堪えられるレベルの暗号処理の重さはほぼ誤差です。そのため、複合化が軽い暗号化方法で、鍵長を長くするというのが主流というわけだ。
ではなぜこれだけの鍵長がある3DESが破られると言われているかというと、アルゴリズムに問題があるから。
3DESの脆弱性で、最も有名な奴は、暗号化の鍵の中で一部でも既知の部分があると、探索しなければならない鍵のパターンが大幅に少なくなると言う脆弱性がある。
これに、その他のクラック方法を組み合わせて、鍵の一部を入手する。
カードだったら、カードそのものから送信される電磁波や物理的な分解による情報の略取の試み(サイドチャネル攻撃)などを組合せて情報を得るなど。それにこの脆弱性を組み合わせる事により、組合せの数が減る。
コンピュータの性能は良くなっているので僅かな情報で強引に計算が可能になっている、と言うわけ。
フェリカはまだクラックされていないかったが、既にこの手法でクラックされたICカードが存在している。これもかなり前の話なので、今はもっとコンピュータの性能がよくなっているからどうかなー。
今回フェリカがこの方法で破られたかはわからないが、これ以外にも3DESは様々なセキュリティ関連の研究題材になっていて、色々なクラック方法が提案されており、もう安全とは言えないんだよね。これらは論文として公開されている。
だからネットではとっくの昔に非推奨になっていて、ネットの安全性を担保するために今使っている人はほぼいない。
ソニーもそれを認識していて、2011年にアップグレードをかけて移行していたと言う訳だ。
ちなみに、今次世代コンピュータと称して量子コンピュータというものが開発されているが、これを使うとこの組合せ爆発問題を現実的な時間で解けるようになってしまう。まぁ現実と行っても数ヶ月レベルではあるのだが、何らかの技術革新が起きると一気に進むレベル。
そのため、この組合せ爆発を利用した暗号化以外の方法が現在研究されていると言う流れがある。これを「耐量子暗号技術」という。
Q.
という意見に対して
「演算が軽いと短時間で多くの試行ができるからセキュリティ面で見ると重たい方がよくないか」
という反論がありました。
A.
FelicaがAES暗号を採用している理由について、「暗号強度より演算の軽さを重視した」という意見と、「演算が軽いと短時間で多くの試行ができるので、セキュリティ面では重い方が良いのでは」とする反論があります。それぞれの意見の背景を解説します。
Felicaは改札や決済など、リアルタイム性が求められる場面で使われています。
AES暗号は高速に処理できることが特徴であり、大量の利用者が同時に使う状況でも、遅延を最小限に抑えられます。
ICカードや組み込み機器のようなリソースが限られた環境では、暗号化演算の負荷が小さいことが重要であり、AESは処理効率(演算の軽さ)という点でも優れています。
暗号処理の速度が速いと、攻撃者による総当たり(ブルートフォース)攻撃が効率良くなり、試行回数が増えるため安全性が下がるのではないか、という考えです。
確かに一般論として、暗号演算が重い(時間がかかる)場合は、一度にできる攻撃試行数が減るため、攻撃に必要な計算量が増え、一定の抑止力になる面があります。
しかし、AES自体は設計上非常に安全性が高く、推奨される鍵長(128bitや256bit)では現実的な計算資源での攻撃は困難と考えられています。
両者のバランス
Felicaでは、セキュリティ(暗号強度)と利用者の利便性(高速処理)の両立が求められます。
AESは、国際的にも認められた安全な暗号規格であり、演算の軽さと高いセキュリティのバランスに優れているため採用されています。
一方で、もっと強力な暗号方式を選ぶと処理時間や消費電力が増えすぎてしまうため、現状の脅威に照らしてAESで十分と判断されているのが現状です。
「演算が軽いから選ばれている」はFelicaのリアルタイム処理要件ゆえの合理的判断ですが、「速いと攻撃試行が多くなるので重い方が良い」という懸念も一理あります。ただし、AESは現状十分な安全性を持っており、そのうえで高速処理や省電力も実現できるため、多くのICカードやデバイスで広く使われています。
3DESの暗号化キーが流出した場合、古いカードは金額を書き換えられる恐れがあるんじゃないのかな?
中身のデータ構造が分からなくても、Edyのデータのバックアップ取って、Edyで買い物して、バックアップデータを復元したら金額も元通りってなりそうな気がするんだけど、違うのかな。
Yes。ただ既にオフラインだけで決済をやっているのは交通系だけだと思われるので影響は少なく検出は可能。また交通系も決済はオフラインでもその後でオンラインで同期されたときにセンタ側で情報に矛盾が出るので検出出来ると思われる。物販はオンラインのみ。
ニュースが出たって事は、様々な決済端末で古いカードを利用できなくする目処がたったのかな?
セキュリティ会社が自社の技術力を誇示することが目的だと思われる。まともな会社ならこんな公開の仕方はしない。
入退室システムは大丈夫なのかな。リーダーのファームウェア更新で対応できるとは思うけど。
問題はこっちやろな。標的型攻撃で使われると厄介。ただ、入退出システムはそもそも暗号化されていないIDを使っている雑な実装のものも結構あるんで、そもそもアカンやつもある。(例えば、一般の交通系ICを鍵代わりにできる奴はだいたいこれ)
3DESに対応している古い製品ほどやばいような気がするんだけど、そういうのはサポートも終わってそうだけど、現場では使われ続けてたりするしなあ。
恐らくほとんどの製品は3DESに対応してると思う。ただ真面目に作ってあれば3DESを無効にできる機能があるはず。無かったらパッチだろうけどちゃんと当たるかな。
新しいカードやスマホのFelicaは3DESを使ってないから問題なく利用続けられるのはそりゃ当然だと思うんだけど、だからと言って問題がないわけじゃないと思うんだがどうよ?
例えば?
3DESの暗号化キーが流出した場合、古いカードは金額を書き換えられる恐れがあるんじゃないのかな?
最近のGPU使えばかなり高速に解析できるし、キーの解析にチャレンジしてみる人も出てくるんかもしれないよね。
中身のデータ構造が分からなくても、Edyのデータのバックアップ取って、Edyで買い物して、バックアップデータを復元したら金額も元通りってなりそうな気がするんだけど、違うのかな。
見当違いのことを言ってたら教えて。
ニュースが出たって事は、様々な決済端末で古いカードを利用できなくする目処がたったのかな?
入退室システムは大丈夫なのかな。リーダーのファームウェア更新で対応できるとは思うけど。
3DESに対応している古い製品ほどやばいような気がするんだけど、そういうのはサポートも終わってそうだけど、現場では使われ続けてたりするしなあ。
大丈夫なのかな。
新しいカードやスマホのFelicaは3DESを使ってないから問題なく利用続けられるのはそりゃ当然だと思うんだけど、だからと言って問題がないわけじゃないと思うんだがどうよ?