一年の振り返り

もう大晦日ですね。

こんばんは。Soraです。

今年一年を振り返り、来年への糧へとしていきたいと思います。

1月

パズドラ復帰しました

なんか色々変わっててビックリしました。アカウントずっと持っててくれた友人には感謝です。

京都に旅行に行きました

楽しかったです

2月

宇都宮に行きました

写真に残ってるから行ったのだと思います。

何したのかも覚えてないし何で行ったのかも覚えてないです。

マジで怖い

くら寿司にハマる

週1、下手したらそれ以上の頻度で2ヶ月くらいくら寿司に行ってました。

何だったんすかね

急に冷めて以降ほとんどいってないです

3月

春休み

朝までAPEXやって夕方まで寝てを繰り返してました

4月

進級

進級しました

諏訪に行きました

楽しかったです

5月

整体に行き始めました

肩が痛すぎて起き上がるのすらしんどかったので整体に通い始めました

良かったです

横浜に行きました

楽しかったです

6月

サウナに行き始めました

整体でサウナの話をしているお客さんがちょくちょく居て、ピーナッツくんが話題にしていたのもあって気になっていたので行くようになりました

今では疲れたらすぐ行くし、旅行先は必ずサウナがある場所を選ぶようにしています

引っ越しました

引っ越しました

7月

コロナ罹患

コロナになりました

たいへんでした

20歳になる

酒解禁です

ただでさえアレだったのにここから更に太り始めた気がします

8月

シェアカーで擦りました

たいへんでした

…いや、ガチで。

仙台に行きました

擦った二日後くらいに行ったので、正直気が気じゃなかったです

9月

PS5購入

念願のPS5を手に入れました

60fps最高です

10月

甲府に行きました

昇仙峡きれいでした

名古屋に行きました

ご飯おいしかったです

大阪に行きました

NGK楽しかったです

全部で9万くらい使いました やりすぎた

11月

冷凍唐揚げ飲みにハマる

近所のスーパーで冷凍唐揚げを買ってハイボールやレモンサワーで飲むことにハマりました

今もこのブログをレモンサワーと共に書いてます。おいしーかもー!!

12月

NullPointerException

Exception in thread "december" java.lang.NullPointerException at nullSample.sample.getSubstr...

【完全準同型暗号】node-seal導入手順

はじめに

完全準同型暗号とは?node-sealって? みたいな説明はこちらの記事に任せます。

qiita.com

私からは、こちらのライブラリの導入と、簡単な加法ができるまで、その結果をHTMLで表示するまでを書いていきます。 また、ライブラリのドキュメントは以下の記事に書いてあります。

docs.morfix.io

全文英語ですがそんなに難しくもないと思うので、時間がある方はこちらを読んだ方がいいと思います。

node-sealとは

完全準同型暗号ライブラリであるMicrosoft社のSEALを、WebAssemblyでラップしたライブラリになります。

JavaScriptで利用できることから、一般的なWebサービスにも組み込むことが容易になりました。

インストール

# npm install node-sael
もしくは
# yarn add node-seal

これだけです。

必要になる環境

node-sealはSEALをWeb Assemblyでラップしているライブラリになるので、Web Assemblyの環境構築を行います。

M1 Macの場合、以下の記事を参考に環境構築を行えば良いです(2022/11/18時点)。

私はM1 Macでしか動かしてないので、他の環境はわかりません。ごめんなさい。

qiita.com

また、今回はブラウザ上で動かしたいので、webpackを入れます。

webpackの説明と環境構築手段については以下のサイトに全て載っていますのでお任せします。

ics.media

加算をしてみる

まずは動かしてみましょう。

とりあえずソースコードを貼ります。ある程度はコメントに説明を書いておきました。

ソースコード(BFV形式)

hoge.js

// ライブラリのインポート
import SEAL from 'node-seal'

//非同期関数を定義する
export async function Add() {
    const seal = await SEAL()
    ////////////////////////
    // Encryption Parameters
    ////////////////////////
    
    // 準同型暗号化方式を定義
    const schemeType = seal.SchemeType.bfv    

    // セキュリティレベル(暗号強度)を定義
    const securityLevel = seal.SecurityLevel.tc128


    // 多項式環の次数を定義
    const polyModulusDegree = 4096
    // 多項式環の法を定義
    const bitSizes = [36,36,37]
    // Batching処理に使われる法を定義
    const bitSize = 20
    
    // 値渡し
    const encParms = seal.EncryptionParameters(schemeType)
    encParms.setPolyModulusDegree(polyModulusDegree)
    encParms.setCoeffModulus(
      seal.CoeffModulus.Create(
        polyModulusDegree,
        Int32Array.from(bitSizes)
      )
    )
    encParms.setPlainModulus(
      seal.PlainModulus.Batching(
        polyModulusDegree,
        bitSize
      )
    )

    ////////////////////////
    // Context
    ////////////////////////
    
    // 暗号化パラメータを使用してContextを作成する
    const context = seal.Context(
      encParms,
      true,
      securityLevel
    )

    // Contextが正常に作られたことを確認する
    if (!context.parametersSet()) {
      throw new Error('Could not set the parameters in the given context. Please try different encryption parameters.')
    }

    ////////////////////////
    // Keys
    ////////////////////////
    
    // Contextを元に新しいKeyGeneratorを作成する
    const keyGenerator = seal.KeyGenerator(
      context
    )

    // 秘密鍵を生成
    const Secret_key_Keypair_A_ = keyGenerator.secretKey()

    // 公開鍵を生成
    const Public_key_Keypair_A_ = keyGenerator.createPublicKey()

    /* 公開鍵の出力
       const publicBase64Key = Public_key_Keypair_A_.save()
       console.log(publicBase64Key)
    */

    ////////////////////////
    // Variables
    ////////////////////////

    // 平文を格納する変数
    const PlainText = seal.PlainText();
 
    // 暗号文を格納する変数
    const CipherText = seal.CipherText();

    ////////////////////////
    // Instances
    ////////////////////////

    // 各種演算操作を行う際に利用する
    const evaluator = seal.Evaluator(context)

    // BFV形式で使用される、バッチエンコーダの定義
    const batchEncoder = seal.BatchEncoder(context)

    // 平文を暗号化するために使用される
    const encryptor = seal.Encryptor(
      context,
      Public_key_Keypair_A_
    )

    // 暗号文を復号するために使用される
    const decryptor = seal.Decryptor(
      context,
      Secret_key_Keypair_A_
    )
  
    ////////////////////////
    // Homomorphic Functions
    ////////////////////////
    
    encryptor.encrypt(
      PlainText,
      CipherText
    )
    
    // 平文の定義(多項式である必要があるので、数列を代入する)
    const plainText = batchEncoder.encode(
        Int32Array.from([1, 2, 3 ,4, 5]) // This could also be a Uint32Array
    )

    // 暗号化
    const cipherText = encryptor.encrypt(plainText)
    const cipherTextD = seal.CipherText()

    // 加算
    evaluator.add(cipherText, cipherText, cipherTextD)

    // 復号
    const plainTextD = decryptor.decrypt(cipherTextD)

    // 出力できるようにする
    const decodedA = batchEncoder.decode(plainText)
    const Cipher = cipherText.save()
    const decodedD = batchEncoder.decode(plainTextD)

    console.log('Input:\n',decodedA);
    console.log('Input + Input:\n',decodedD);
    console.log('cipher:\n',Cipher);

}
Add();

実行方法

実行結果として平文(input)、計算結果(input + input)、暗号文(cipher)を出力します。作成した公開鍵の出力はコメントアウトしてあるので、欲しい方は解除してください。

めっちゃ長くなるので別ファイルに出力することを推奨します。

# node hoge.js > result.txt

webブラウザ上で動かす

node-sealを使う(恐らく)最大の目的であるブラウザ上で動作させるための手順を書きます。とはいっても、大体はwebpackの作業です。

ディレクトリを作成する

まずは作業するディレクトリを作りましょう。

コマンド

# mkdir nodeseal_test
# cd nodeseal_test

webpackの準備

コマンド

# npm init -y
# mkdir src
# touch src/index.js src/bfv.js

src/index.js

import {Add} from "./bfv.js";

Add();

src/bfv.js

先ほどのソースコードの末尾に以下の3行を追記し、関数を実行していた行をコメントアウト(または削除)してください。

-- 省略 --
    document.getElementById('plaintext').value = decodedA;
    document.getElementById('ciphertext').value = Cipher;
    document.getElementById('results').value = decodedD; 

}
//Add();

webpackでまとめる

コマンド

#npx webpack

distディレクトリが作成され、その配下にmain.jsファイルが作成されます。

HTMLからはこのファイルを呼び出すことで、jsに外部ライブラリを用いていてもインポートを解決して動作するようになります。

HTMLファイルを作成する

コマンド

#touch dist/index.html

dist/index.html

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- script -->
    <script src="main.js"></script>

    <title>SEAL Test</title>
</head>
<body>
    <div class="title ">
        <h1>SEAL Test</h1>
    </div>
    <div class="input">
        <h1>Input</h1>
        <textarea id="plaintext" disabled readonly></textarea>
    </div>
    <div class="cipher">
        <h1>Cipher</h1>
        <textarea id="ciphertext"  disabled readonly></textarea>
    </div>
    <div class="output">
        <h1>Input+Input</h1>
        <textarea id="results" disabled readonly></textarea>
    </div>
</body>
</html>

確認する

HTMLファイルを開いてみてください。

以下の画像は記事用に少し整形していますが、おおよそ同じような表示が得られたのではないかと思います。

実行結果

まとめ

完全準同型暗号ライブラリであるMicrosoft SEALをラップしたライブラリであるnode-sealの使い方についてまとめました。

完全準同型暗号をブラウザ上で動かしてみたい、という方の助けになれば幸いです(ただし、各種処理にはそこそこの時間がかかるため、あまり重い処理を複数行うとリクエストタイムエラーになることに注意してください)

コロナ感染日記

1日目

7月2日 

引越しを終えてからの初めての休日である土曜日。起きると喉が少し痛かった。

1時間で切れるようにしてはいたもののエアコンをつけて寝ていたのが原因か。いや、しかしこんなクソ暑い夏にエアコンをつけずに寝ろというのも苦な話だろう。

母には「口開けて寝ていたんじゃないの」と言われた。確かに今までもそういうことはちょくちょくあったのできっとそうだろうと思った。

この日は整体の予約をしていたので少し面倒ではあったが東京駅まで出かけた。帯状疱疹と引越しで2週間行けてなかったので硬くなっているのではと心配していたが、担当してくれたお姉さんが上手で終わった時にはスッキリした。スタバでコーヒー飲んで帰ろうと思っていたが混んでいたのでやめた。代わりに母が絶賛していたダイエーに寄り、ジュースを買った。確かに広いし安かったので、これは便利だと思った。同時に、自腹で買わされることが増えそうだな、なんてことを考えた。

帰ると、妹から「1000円拾った」とLINEが来た。運がいいやつだ。しかし私はコロナ禍になってから、(いやそれ以前からだったような気もするが、)落ちているものを拾おうとはなかなか思えない。妹は私とは胆力が違うのだ。

私の部屋には今机がない。この日は代わりに段ボールに置いたモニターにps4の画面を写して友達とゲームをして寝た。

2日目

7月3日

起きるとまだ喉が痛かった。それに加えなんか体調がおかしかったので、熱を測ると微熱があった。……まあコロナ禍になってから体調悪くすることは初めてではないしな。そんなこともあるだろうと思い、あまり気にはしていなかった。近くの病院は日曜休みばかりだったので、明日病院へ行くことに決めた。

この日は友達とゲームをやっている時に寒気を感じたので、早めに切り上げてさっさと寝た。

3日目

7月4日 〜夕方

明らかに体調がおかしい。喉が痛い。熱がある。寒気もする。痰が絡むようになってきたし、血も混じっていた。

とりあえず病院が開いてる時間になったので行こうと思ったのだが、そういえばコロナ禍になってから病院の在り方が変わったと聞いた。少し調べてからに。

発熱がある人は電話してからでないと受け付けてくれないそうだ。面倒だがこういうご時世だものな。しょうがない。

…どこに電話をかければいいんだ?そういえば引っ越してから一週間も経ってないからかかりつけ医が居ないではないか。どうしようかと考えていると、"東京都発熱相談センター"なるものを見つけた。かかりつけ医が居なかったり、どうすればいいか分からない人向けの相談センターらしく、近くの病院も紹介してくれるらしい。便利だなぁ。

電話をすると、3軒の病院を紹介してもらうことができた。1軒目…今日はもう無理ですか、そうですか。2軒目…夕方以降になってしまうのか、とりあえず他も当たってみよう。

3軒目でようやく予約することができた。コロナ感染者が増えているというニュースは本当なんだなぁと実感した。

病院に着くと、入り口前で電話しろと言われていたことを思い出した。電話をかけると、「迎えに上がるので待っててください」と言われた。現れた看護師は全身防護服だった。

連れていかれたのは他の患者とは全然違い待合室の反対側にある廊下。部屋ですらなかった。小さい病院だったのでしょうがないのだろうが、少し寂しさを感じた。問診票を書き、看護師に渡すと、完全防護服の男性医師から抗原検査の説明を受けた。

どうやら抗原検査の方がコロナの陽性検出率は低いのだが、結果が出るのが早く、PCRの場合検出率は高いものの結果が出るのが遅い、ということらしい。なのでまずは抗原検査で陽性か陰性かを確認し、陰性だったら再度PCRで検査、という形をとっているそう。

説明を了承し、まず抗原検査を受けた。鼻に細い綿棒を刺された。ちょっと痛かった。結果は10分程度ですぐに出た。「Soraさん、陽性ですね」と。

いやまじか。 え?風邪じゃないんすか?いうても割と元気っすよ?

なんて思いながら陽性になった場合のアレコレを説明された。薬の処方で1時間待たされることになったが、周りの人間への報告をしていたら一瞬だった。書き忘れていたが、同時に溶連菌の検査も受けた。そっちは陰性だった。

帰ると母から様々な注意を受け、部屋に隔離された。

7月4日夜

この日の夜から様々な症状が出ることになる。

熱、頭痛、血痰、そして喉の痛み。喉が一番きつい。ご飯が全然食べれない。夜ご飯もお蕎麦をちょろっと食べて終わりにした。心なしか量も食べれなくなっている。

薬を飲んでそろそろ寝ようとした頃、吐き気がやってきた。これがマズかった。

…21時ごろ。吐いた。寝たいのに気持ち悪くて寝付けない。

…22時ごろ。寝ていたのに気持ち悪さで起きてしまった。吐いた。

…23時ごろ。吐いた。もう横にすらなれなくなった。気持ち悪い。眠れない。

…24時ごろ。いつの間にか眠っていたらしいが、また吐き気で目が覚めた。吐いた。スマホを見てもさっき吐いた時間から1時間しか経ってない。え、まじ?朝までこれ?

…25時ごろ。吐いた。

…26時ごろ。吐いた。

……………………………………………………………………。

4日目

7月5日

………

…16時ごろ。ようやく吐き気がなくなった。気づいたら夕方だった。

夜ご飯にゼリーを食べれた。

母がFastDoctorを呼んでくれて自宅で点滴も受けた。ちょっとだけ楽になった。二日ぶりに小便が出た。

5日目

7月6日 この日は体調がだいぶ良くなった。

熱も下がり、頭痛もなく、喉の痛みもなかった。

吐きまくったせいか声が出なかったことと、ちょっとしたことで息切れを起こすようになっていたことくらいだ。

母がずっと吐いたり寝込んでいた間に各所に電話してくれていたらしく、明日からホテル療養になるそうだ。

6日目

7月7日 ホテル療養が始まった。

デカタクシーに揺さぶられ、ホテルに着くと係員から色々と説明をされた。

お茶と野菜ジュースがいっぱい置いてあった。取っていいそうなので1本ずつもらった。

部屋に戻ると、事務員や看護師と電話でのやり取りが始まった。恐らくこのまま対面では1回も会わずにホテル療養を終えるのだろうな。

お昼の時間になり、お弁当を取りに行くと、どこからともなく現れた他の感染者たちが無言で列を成していた。 綺麗に整列された弁当を各自無言で取り、部屋に戻っていく。

なんだか刑務所みたいだ。

お茶と野菜ジュースは野菜ジュースは飯のたびに取っていいそうなので再度受け取った。しかし野菜ジュースは1日2本も要らなかったかな、と部屋に戻ってから思った。

7/7 昼 東海道新幹線弁当

味は微妙だった。これはコロナのせいか、弁当が悪いのかは分からなかった。

お昼ご飯を食べてからは夕ご飯までぼーっとテレビを見ながらこのブログを書いていた。

7/7 夕 カツ弁当

夕ご飯を食べる前はお腹が空いていたので余裕で食えるかなあと思っていたのだが、意外と食べるのがしんどくて1時間くらいもぐもぐしていた。

普段は夜ご飯長くても30分くらいで食べ終わるので、不思議な気分だった。

というか、こんなご飯を毎食食べていたら太ってしまうのではないだろうか。とはいえ捨てるのはもったいないよなぁ…悩ましいところだ。

食べ終わった後ぼーっとしていたら寝落ちしてしまった。

さっとシャワーを浴びて、ゆっくりお茶を飲みながらぼーっとテレビを見ていた。

ぼーっとしてばかりだ。きっと退所までこんな感じなのだろう。今日はもう寝る。おやすみなさい。

7日目

7月8日 ホテル療養2日目

フレンチトースト弁当

美味しかったけど朝から重たいよ…。

7月8日 朝 フレンチトースト

朝食後は実習に参加していない分遅れを取り戻そうと作業…思ったより進まなかった。かなしい。

昼飯は抜きました。野菜ジュースだけ飲みました。全然お腹空かなかった

7月8日 夕 幕の内弁当

夕食の幕の内弁当はこれまでで一番美味しかったです。結局普通の白米と鮭、味噌汁とかが一番うまい。夕食後は一眠りしてしまいました。金ロー見たかったから焦ったけど中止になったらしい。らっきー

今日は初めての手洗濯をしました。ホテルには洗濯機がないから手で洗濯するしかありません。たいへんでした。2時間くらいかかったし後半は適当になってしまった、昔の人はすごいなぁ

8日目

7月9日 もうすっかり元気だ。声も出るようになった。

今日は友達と喋った。それくらい。特に記憶がない。なにもしていない。

強いていうならコロナ感染者が爆増しているからか、飲み物が一食一本はもらえなくなった。朝行ってお茶とか水を取っていなければ、その日の飲み物配給はないのかもしれない。明日は昼も行ってみる。

7月9日 朝 なに弁当?

7月9日 夕 中華弁当

9日目

7月10日 今日はよく寝た。朝ごはんを食べた後もうとうとしてしまったし、昼ごはんを食べた後はお昼寝してしまった。

ホテル療養にも慣れてきて、1日が長く感じてきた。アニメや漫画を読んでいてもしょうがないので少しだけ学校の作業を行なった。ちょっとだけ進捗が生まれたが面倒なのでいまいちそこから進めるやる気が出ない。

やる気が出ないのはコロナの副作用とあるが、正直本人次第だと思う。仕事や勉強をやらない期間が続くのでやる気が出ないだけなんじゃないかな。息切れはしょうがないけど。

それと感染者が増えてきて飲み物が争奪戦になっていることもあるのだが、まず弁当を取りに行くのに時間がかかる。このホテルでは一定の時間になるとそこから1時間の間お弁当を受け取りに行くことができるのだが、この弁当受け取りに20〜30分ほどかかる。これがまーーーー面倒くさい。どうにかならないものかなあ。あとwifiがめちゃ遅い。

7月10日 朝 金目鯛弁当
めちゃくちゃ美味しかった。明治座の弁当は可もなく不可もなしって感じだけど、他のお弁当は当たり外れの幅がすごく大きいな、という感想を抱いだ。弁当マスターになってきたぞ。

7月10日 昼 中華チャーハン弁当

そういえば昨日言っていた飲み物の件だが、お昼はお茶とお水が少しだけ残っていた(100本ないくらい)なので、お茶を取った。このブログを書いているのは夜なのだが、既にお茶を2本とも飲み切ってしまったので、やはり飲み物は最低2本は欲しいなと思った。また、お昼にお茶を取るとき、水を5本持っていったおばちゃんを見かけた。こういう人がいるから一食一本分配給されてるはずの飲み物がなくなっていくのではないだろうか…

7月10日 夕 ハンバーグ弁当

そして夕飯を食べる前、ホテルから内線がかかってきた。明日で退院らしい。急に言われても…と思ったが飽きていたので嬉しかった。

10日目

朝ご飯を食べて、準備を整える。 飽き飽きしていた弁当もこれで終わりだと思うとなんだか感慨深かった。

7月11日 朝 なんか健康になりそうな弁当

ホテルから出る直前、色々あったが、全て自分のミスが原因で恥ずかしい思い出なのでここには書かない。

言えるのは、荷物忘れがないかどうかはしっかり確認しよう。ということだけだ。

ホテルの外に出た時、空気の美味しさにびっくりした。 東京は空気がなんだか重たい、なんて言われるが、ずっと閉塞的な空間に居たから何度も深呼吸をした。(ホテルでは窓の開閉すら不可だった)

特に外には誰も居なかった。人望がない。

自分で自分を労いながら、帰路に着く。

なんだか、貴重な経験ができたな、と思う。

Visual Studio 2015をインストールする

前座

お久しぶりです。ちょっと勉強しようと読んでいた本の中で使用されているサンプルコードがVSでは2015以前のバージョンにしか対応していなかったため数年ぶりにVS2015をインストールしたのですがなんか色々変わっててかなり面倒になってたのでまとめておきます。

インストール方法

1.下記のURLから「無料のDev Essential プログラム」をクリック visualstudio.microsoft.com

f:id:Tsunamayomayo:20211028010933j:plain
青字のやつ

2.「今すぐ参加またはアクセス」をクリック f:id:Tsunamayomayo:20211028011158j:plain

3.アカウントにサインインする

4.「ダウンロード」→「Visual Studio Community」で検索 f:id:Tsunamayomayo:20211028011501j:plain

5.ダウンロードします

20~30分くらいかかります

6.ダウンロードしたisoをマウントし「vs_community.exe」を起動

7.画面に従ってインストール

.......

この製品は既にインストールされています

本題

さて、ここからが本当に書きたかったことです。

私の場合、以前ダウンロードしたVS2015がなぜかアンインストール出来ておらず、一部残った状態になっていました。今回はそのために新規にVS2015をインストールしようとしても「既に存在している」と言われDLすることが出来なかったので、その解決までのいくつかの手順と方法を示したいと思います。

インストーラからアンインストールする

インストーラに表示されずアンインストールできず

おらびっくりした

Visual Studio のアンインストール | Microsoft Docs

InstallCleanup

どうしても解決できずクリーンアップしました。

やり方

1.VSやインストーラを全部閉じます

2.cmdを管理者権限で開きます

管理者じゃなくてもいけるかもだけど管理者の方が確実だと思います

3."C:\Program Files (x86)\Microsoft Visual Studio\Installer\InstallCleanup.exe"

クリーンアップを実行します

4.なんかそれっぽい表示が出てきます

5.確認します

6.あれ?となります

はい、なんと状況は変わりませんでした。アプリと機能にも表示されたままです、びっくり。(写真撮り忘れました)

Visual Studio の削除 | Microsoft Docs

VisualStudioUninstallerを使う

私はこれでうまくいきました

VS2015のアンインストール方法を求めネットを探し回り、野を越え山を越え海を渡りGitHubにこんなツールがありました。

github.com

使い方

1.Visual Studio UninstallerのReleasesをダウンロード

Releases · microsoft/VisualStudioUninstaller · GitHub

2.Setup.ForcedUninstall.exe を管理者権限で実行

管理者権限じゃないと弾かれます

3.「本当に消す?」みたいなこと聞かれるので「Y」と大文字で元気よくお返事をします(小文字でも全く問題ありません)

4.全部消えます

5.アプリと機能などで消えたことを確認します

6.嬉しいので小躍りします

おわりに

なぜ公式のツールより非公式のツールの方が消す精度高いんでしょうか

不思議です。

ただし非公式なだけあって関連ファイル全てを消してくれるわけではないっぽいので、もしかしたら人によっては多少自力でファイルの削除等が求められるかもしれません。(私はツールの実行のみできれいさっぱり消えました)

VSのインストールだけでなんと丸1日溶かしてしまった

環境構築で詰まるとガチで萎えますね…ではでは。

【Cisco ASA】HostScan有効後にAnyConnectやASDMのインストールをする

先日解決に時間かかったのでネットに残しておきます。

【問題】
一発でDL画面に行かずJavaのバージョンがどうのこうのだとか色々言われてDLまで辿り着けない、またはLoginしようとしてもLogin Failedとなる

 

【原因】
DAPの設定

 

【解決方法】
DAPに不要な設定によってアクセスができない状態になっていないかを確認する

 

【補足】

・なんでこれで解決できるの?

エラー対応は世の中に全然載ってないですけど解説記事はなぜか一杯あるのでそちらを参照ください

www.infraexpert.com


https://(ASAIPアドレス)にアクセスした場合の表示画面が異なる場合がある

HostScanが有効となっていると、「VPN Web」みたいな(正確に覚えてないです、すみません)画面が出てくるが、これは以下のコマンドで無効化できる

#conf t
(config)#webvpn
(config-webvpn(←多分こんな))#no hostscan image disk0:/[略] (config-webvpn(←多分こんな))#no hostscan enable

【Cisco ASA】ASDMでログイン管理設定をしてもAnyConnectで接続できてしまう

今日つまって解決に30分くらいかかったので一応ネットに残しておこうと思います。

 

【原因】
DAPの設定におけるAAA Attributeの設定

【解決方法】
ASDM内 Configuration > Remote Access VPN > Network (Client) Access > Dynamic Access Policies(以下DAP)からデバイスに直接不要な条件を削除する

(例:デバイスAに対して有効だがデバイスBに対して有効な条件(LDAPなど)を削除する)


【補足】
・なぜこの手順により解決できるか
ASAにおけるDAPの条件設定がデフォルトで「AND」になっているため。

なお、DAPのAAA Attribute及びEndpoint Attributeの設定箇所の下に「Advanced」という設定項目が隠されている。

これを開くと条件を「AND」「OR」のどちらで管理を行うか設定することができるので、それによって対応することもできる。というかこっちの方が一つのDAPで複数管理できていいかもしれませんね。

AESについて

0.前書き

ゼミで「AESについて」という大味なタイトルで輪講をしました。
頑張ったのにゼミ内だけで済ませるのはもったいない気がしたのでそこで使用した資料を上げておこうと思います。

いつも書いている前書きは最後に入れてます。

1.AESとは

www.slideshare.net

1.1.参考文献及び動画など

[暗号入門] 実装して理解する AES - YouTube
-日本語の文献が非常に少ない中、詳細な説明と実装しながらの解説が大変参考になりました。感謝しかありません。ほんとに。

C#でAES暗号化アルゴリズムを外部ライブラリに一切頼らず完全実装してみた - Qiita
-スーパー中学生のスーパー記事です。すごい、未来は明るい。プログラムから処理内容を理解したいときにかなり読みました。感謝です。

AESを理解する - Qiita
-日本語でここまでしっかりとした詳細な解説を書かれている記事はこれだけだと思います、言い回しやわからないことがあったらここを読んでいました。正直輪講なのに本よりこっち読んでました、先生ごめんなさい、書いてくれた方、ありがとうございます...

その他コメントを書くと長くなるのでコメントは省略させていただきますが、以下の論文や記事にも大変助けられました。世の中のネットに所感や解説をあげてくれている人間に足を向けて寝られません。

共通鍵ブロック暗号の変遷(なぜかタイトルの埋め込みがうまくいかない)
https://www.risk.tsukuba.ac.jp/pdf/group-work2005/2005group-4-resume.pdf

AES (Rijndael) の MixColumns を理解する | 晴耕雨読

また、スライド内で紹介している記事もありますのでそちらも是非ご参照ください。

2.近況報告

お久しぶり過ぎます、Sorasukeです。
毎週更新するとか言っといて全然更新してませんでした。

この1か月くらい、くっっっっっっっっそ忙しい毎日を過ごしておりました。

家に帰ってからパソコンや教材と向き合っていて全くゲームする時間もなく、月頭から教習も始まりまして、この1か月くらいは学校かバイト先か教習か、家にいるときはずっとゼミの輪講資料を作成していた、といった感じです。
なんとかゼミの輪講も終わり、教習も少し落ち着いてきて、バイトも少し仕事を減らして頂いてるので記事を書く時間ができました。

あ、無事インターンも決まりました。1社は何度かプロコンなどでお話したことのある企業様で、もう1社様は正直受かると思ってなかった大手ECサイトを運営している企業様です。詳細はいつか話せればなと思います、許可もとらなきゃですね。

一般的にも広く普及しているAESですが、その構造や処理の内容について理解されている方は日本語の文献の少なさからあまり居ないのかな、と思いました。今回はゼミでの発表用に作成した資料を貼って終わりとさせていただきますが、何かご質問等ありましたらコメント頂けたら返すかもしれません。

また、今回初めてSlideShareを埋め込んでみたのですが、見づらいと自分で思ったら何か変えるかもしれません。

それでは今日は疲れてるので早いですがこの辺で。では。