EpisoPass
というかパスワードを生成するシステム
自分の
エピソード記憶をもとにランダムぽい文字列を生成し、それをパスワードとして利用する
データを全部公開可能なので、秘密の何かを覚えておくストレスが無い
これ使いたいんですけど、そもそも使えそうなエピソード記憶が思いつかない……

小学校の頃の友達?いないです……
人間のリストは問題としてはあまり良くないかもです

エピソードを知ってる人がいるだろうし、問題を作りにくいので
変なエピソードだと喧嘩になるかもしれないし
トップのGIFアニメは変えた方がよさそうですね
あと下手したらScrapboxに情報を流しているかも
場所の問題が良いと思ってます

どこかでケガしたとか、何か見たとか、粗相をしたとか
小学校のころに盛大に転んでしばらく泣いていた場所とかにすれば、確かにいけそうです
Scrapboxに「そういうことが昔あった」と書いたとしても、詳細な場所までは流石に書かない
問題なさそう

の場合、子供のころ額にケガしたとか右足を切ったとかがありますね
スピード違反でつかまったとか
忘れないけどわざわざ他人には言わないみたいなエピソード
場所のリストは適当に作っておきます
ダミーの場所のリストを自動生成できるようにするともっと楽に設定できそうです
そうですね。どうやればいいのか...

同じぐらい確からしい場所のリストを作る必要がある
いろんな粒度でかまわない
e.g. 神宮前 青山 品川 新宿 横浜 四国 九州 サンフランシスコ ニューヨーク イギリス アフリカ
粒度を揃える必要がありますね
極端な例ですが、「
新潟、
青森、
目黒、
群馬」というリストだと、目黒が絶対に怪しいと分かる
行ったことある可能性が同じならわからないんじゃないですかね?

目黒でコケたか、青森でコケたか、アメリカでコケたか、同じぐらいありそうなので
ここでいう粒度はなにを表していますか?
自分の訪問履歴という意味でした

粒度という表現はやめます すみません

逆に「目黒」を不正解するのもありか?
ただそしたら「目黒はぜったい違う」とわかって選択肢が絞られてしまう
「行ったことがある可能性」で納得しました
行ったことがないものを選択肢に含めた場合、行ったことある場所は詳細に書く一方で行ったことない場所は大雑把に書かれてしまうと懸念していました
それで良いと思うのですが、問題ありますかね?

「他の地名は県名までなのに、この選択肢だけ町名まで書いてある」→「やけに詳しい」→「ほかは行ったことない場所だがこの選択肢は行っていそうな場所だ」→「じゃあこれが正解だろ」
と推測できてしまうのではないかと思いました

が湘南在住なのはすぐわかるので、湘南の細かい地名が出るのはOKかと思うわけです

藤沢でコケたかイギリスでコケたかはわからないと思う
確かにそうですね……じゃあ場所の細かさは関係ない?
同じぐらいありそうなら良いと思います

行ったことある場所なら詳しい地名だって分かる
しかし、全部行ったことある場所ならだいたい同じくらい詳しく書けるから、場所の情報の細かさが一様になる(はず)
ロンドンのKing's Cross駅、ぐらい細かく書いた方がいいてことですかね?

ひとつだけ駅名まで書いてあるのにほかは町名までしか書いていなかったら怪しいなと思いました
全部駅名まで書いていたり、全部町名までになっていれば気にしなくていいですが
ですが確かに藤沢でコケたかイギリスでコケたかはわからないですし、あんまり関係なさそうです
違和感を感じるのは確かなので、工夫は必要かもですね

「イギリス、藤沢、フランス、ロシア、…」で藤沢が正解だったら突破される可能性が高いかもです
イギリスやフランスなど、べつの選択肢が正解なら問題なさそう
いや、どこでコケたかはわからないでしょう...

「目立つ選択肢が押される確率が高い」と仮定するなら、ちょっとあれかも
問題は沢山利用するので大丈夫です

コケたのは藤沢だけどヘンなものを食べたのはイギリス、みたいに
ヘンなものを食べたのが藤沢かイギリスかは同じぐらいありそう
あ、そうか、たとえここでたまたま正解になったとしても、他にも問題があるからそこで間違えますね
たまたま正解になったのがわからないのがこの
手法の醍醐味な気がする

たまたま全て正解できる確率なんてまず低すぎる
そうです。同じぐらい確からしい回答を並べられればいいんですね

こういうことを考えないと使えないというのは問題かもしれません

地名リストの候補はGoogleの移動履歴データから作れるかも

の場合は、いろんな県に行ったことがあるから県名を使ってますが
あんまり外出しないひとは、別の問題を作ったほうが良さそうですね
ローソンとかイトーヨーカドーとかでもいいと思います

ローソンでコケることもありそうだし
ローソンでコケたら恥ずかしいから忘れないし、他人には言わないでしょう
ローソンとイギリスが同レベルで並んでたら違和感あるかなー
namorみたくダミーの日本語を作ってくれるAPIがあればいいのですが……あるかな?
馴染みのある場所とか旅行で行ったことがある場所のリストを作り、それらについてのエピソードを思い出すと問題を作りやすいかもしれません

イギリスで何か経験したとか、新宿で何か経験したとか、小出町で転んだとか、etc.
そうやって思い出したエピソードのリストと場所のリストをシャッフルすればできあがり
逆に問題に使わない方がいいエピソード記憶
人名
他人を不快にする可能性すらあるので

偽回答は作りやすいんですけどね
誰かに言ったり書き込んでしまったりしそうなこと
自慢的なのはよくないです

しゃべってしまう可能性があるから
とするとコケた場所は結構問題に最適なのか
twitterに「うわコケた」とか書いちゃう人はだめそうだけど
w 昔の経験なら大丈夫でしょう

よく食べる菓子
それ秘密じゃないでしょう...

趣味
他人にわかるし、趣味が変わる可能性もあるので良くないです

「小学生のとき好きだったのは?」 という問題がわからなくなったことあります
しかし「X子ちゃんが住んでた場所は?」という問題だと間違えないです
これ記号も使えるんですね
passwordに記号入れて使っているので
大丈夫だと思います

シード文字列はASCIIでお願いします
!@#$%^&
みたいなのは大丈夫です
使えない記号はないハズ
了解です
むしろASCIIじゃない記号使うパスワードってあるのかな……?
今のところはないでしょうね

あんまり下手に記号を使うとseedを覚えるのが厄介になるのか
serviceごとに (=1gwJuJ\Kp91^~S
なんていうseed値は覚えられない
s=twitter&y=2020
ぐらいが良さそう
s
に各種service名を入れて、 y
に年号を入れる
serviceごとにhtmlを生成して保存しておけば良いのか
seed値なんて覚える必要なかった
そうです

赤の他人は知らないけど身内の数人は知っていることしか出てこない……
まあ身内が知っている程度なら良いか
そもそも身内でEpisoPass知っている人1人もいないし
最悪バレても身内なら別に良い
子供のころコケた、みたいなのありませんか?

某遊園地でコケて大泣きしてた覚えがある

多分今後とも忘れることはない
そういう記憶の地名とか県名とかが良いのでは

コケたことで覚えているの一度しかない

川で流されそうになったこと使うか
今後もまた川に流されそうになったら、どっちの思い出か混乱する可能性がある?
川に流される機会滅多になさそう
あっても最初の方という認識でいいのでは
「最初に川に流されたとこは?」にしよう
それいいですね

私もあるんです
問題作成支援に入力してから問題編集ボタン押したら何も表示されなかった
てか入力したもの全部消えた?
もう一回入力して再現できるか試してみる
ナビバーの 問題編集
ではなく文章中の 問題編集
を押さないといけなかった
押せるものだとは思っていなかった
<kdb>
とかで強調表示しているだけかと勘違いしていた
いろいろすみません...

いえいえ。予めメモ帳にコピペしてなかったこっちもこっちですから
DASパターンはなるべく簡単にしたほうが押し間違いが減る
最初50個くらいの選択肢でランダムにパターンを選んでいたら、回答に何度も間違えて全然違うpasswordしか出てこなくなった
25 ~ 30個の選択肢(1画面に表示できる範囲)を戸惑わずに選べるようなパターンにすると良さそう
生成したhtmlファイルをscrapboxに置いておくと便利
私はGitHubにも置いてます

HTMLファイルはあちこち置いておいておくと安心だと思います
問題作成をランダムでやるとき
https://masui.github.io/EpisoQ/?qa=${url}
でurlにJSで書いた問題データを渡せば簡単に作れる
問題作成はサクサクできた
利用ページ作成フローがちょっとわからなかった
めっちゃ固有名詞⇔問いのパターンを考えて入れたら途中で切れた
DASパターンとしてつながらない問題があった
既にあるのに、重複して地名を追加してたからっぽい
お、すみません

そのあたりまだ出来が悪いです
バグもあるのでしょう... スマソ
県名なぞなぞみたいにJSを書いてもらうことが可能なら、
episoq
というコマンドを使えます
npm
でインストールできます
問題作成を重荷と思わない人がいるのは朗報
遊び感覚でネタ出しができて良かった

問題作成支援
「住んでいた県はどこですか?」「利用していた路線はありますか?」
に答えると、回答項目が作られると良さそう
三田線のようなページから
Copy plain
すればいいか
不慮の事故で記憶飛んだらダメそう

物理的控えは大事だな
私は印刷して封筒に入れてフォルダに置いてあります

EpisoPassに限った話じゃないですが
用途とは違うけど、「これは誰のEpisoPassでしょう?」みたいなクイズがあったら面白そう

パ滅のEpisopass!!
DASを記憶させるところで,二回目の確認が引っかかるな
1回めが終了したあと,マウスカーソルがあるところを2回目の1マス目として踏んでしまう
始点=終点みたいな器用なやり方は考えられる
改良するか!
これちょっと疑問なんですが、暗号的には、「
EpisoPassを使っている」と他人に知られたとして、その前後で、
探索数が減らないことが必要だと思います

毎回の選択肢の数を全部掛け合わせると探索数が出ます
そこは保証されてる感じですか...?
シードが漏洩してない場合、シードの分も探索数にカウントできそうですね
シードさえ漏洩していなければ探索数の問題は解決しそう
例えば、パスワードに使える文字の種類が100種類だけあるとします。EpisoPassが10文字のパスワードを、50の選択肢がある10の質問で出力するとします。
このとき、 50^10 << 100^10
であるために、暗号の強度が著しく低下していることになります。
「探索空間の大きさを維持しつつ、人間のエピソード記憶への特性を利用して効率的に記憶できる」というコンセプトが重要なのでは
シードを秘匿情報として管理しておく、ということになるんですかね
つまり、「HTMLファイルは流出させないように!!」とちゃんと伝えたほうがいいのでは
他人もHTMLファイルが見えるとやばいですよ多分

ソースコード拝見しました。seed見えてますね。
おそらく charset
が使える文字ですよね。102文字かな?
試しに、30件の選択肢10問で表示される
こちらを試してみました。常に左上を押し続けて
Jglkkr77822734
という14文字が出ました。
まず持ってこの時点で、英語6字+数字8文字だと容易に推測できます。これはかなりやばいです。
「もともと受付可能なのが英数字14文字に限られていた」という良心的な仮定でも、36^14>>52^6+8^10ですので、すぐに公開を取りやめ、パスワードを変更なさったほうがいいかと。。。
どのくらいやばいかというと、攻撃者はもともとかかるはずだった労力の 0.00003530009%
であなたのパスワードを攻略できるようになったというわけです。

大文字を考慮していなかったので、計算に誤りがありました。訂正しました。
実際にはより深刻です(実際のパスワードには記号も使えただろうから)。
上の考察は間違っていいます。安全性に問題はありません。 
DASを使う場合設問と回答は関係ないのでしょうか?

DASパターンのとおりに同じ地名が出るので、設問に関係なくそれをなぞっていくことができるということ?
例:最初に東京が出たら東京をDASパターンのとおりに押し続ける
↑のページのscreenshotは古いやつなので、新しいのをここに貼っておきます
このscreenshot(defaultの状態)では 東京
がどの設問でも回答として選択されているため、DASに沿った回答も全て 東京
になってしまいます
(脱線)問題編集ページや概要ページをURLで指定できないのは面倒ですね……

URLで指定できるようにしてほしい
わかる

HTMLに引数つければ可能ですね

最初に書いたDASに沿って正答が出るということだと思いましたが、そうではなかったので詰まりました
できました!ありがとうございます

「問題データベース編集」からやってしまったのが敗因でした
問題データベースを作成した→EpisoPassページ作成でページを作るということをやると上の疑問が出ます
手順がわかりにくいのは問題ですね... 検討します
