並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 41件

新着順 人気順

ハッシュ関数の検索結果1 - 40 件 / 41件

  • ブラウザからDBに行き着くまでただまとめる

    はじめに あなたはブラウザからデータベース(DB)に情報が行き着くまでにどんな技術が使われているか説明できますでしょうか? どのようなプロトコルが用いられ、どの技術を駆使してサーバと通信しているのか、Webサーバでは何が行われ、どのようにして負荷が分散されているのか、トランザクションはどのように管理されているのか、そしてデータベースではシャーディングや負荷対策のためにどのような対策が取られているのか… なんとなくは理解しているものの、私は自信を持って「こうなっている!!」とは説明ができません。 そこで今回は「大規模サービス」を題材としてブラウザからデータベースに至るまでの、情報の流れとその背後にある技術について、明確かつ分かりやすく解説していきたいと思います。 対象としてはこれからエンジニアとして働き出す、WEB、バックエンド、サーバーサイド、インフラ、SREを対象としております。 1.

      ブラウザからDBに行き着くまでただまとめる
    • IPA高度資格「情報処理安全確保支援士」暗記すべき用語を体系整理 - Qiita

      はじめに ◆この記事は何? IPA高度資格「情報処理安全確保支援士」のシラバスに掲載されている用語の備忘録です ◆対象は? 情報処理安全確保支援士の試験勉強をされる方 ◆この記事のねらい 試験範囲の用語の階層を整理します 試験勉強の一助となれば幸いです ◆この記事について シラバスの用語を参考書等を読みながら自分なりに整理した私の暗記用のノートです シラバスver4.0 試験に向けて高頻度で更新しています ご助言、誤り等あればご指摘いただけると幸いです 試験範囲全体 試験範囲の分解 暗号 認証 ネットワークセキュリティ データベースセキュリティ クライアントセキュリティ httpセキュリティ メールセキュリティ 攻撃と対策 注目技術 ※参考文献の目次をベースに、試験範囲を分解 暗号技術 共通鍵暗号方式 ブロック暗号 ECBモード CBCモード CTRモード(Counterモード) ストリー

        IPA高度資格「情報処理安全確保支援士」暗記すべき用語を体系整理 - Qiita
      • SSL/TLS実践入門 ──Webの安全性を支える暗号化技術の設計思想

        2024年4月25日紙版発売 2024年4月25日電子版発売 市原創,板倉広明 著 A5判/456ページ 定価3,740円(本体3,400円+税10%) ISBN 978-4-297-14178-3 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto 本書のサポートページサンプルファイルのダウンロードや正誤表など この本の概要 SSL/TLSは,通信の秘密を守るために利用されている通信プロトコルです。HTTPSやHTTP/3にも利用されており,今日のWebでは利用が一般的になっています。本書では,その最新バージョンであるTLS 1.3のしくみと,その使い方を解説します。SSL/TLSは公開されている実装例などを真似すれば基本的

          SSL/TLS実践入門 ──Webの安全性を支える暗号化技術の設計思想
        • 世界一わかりやすいゼロ知識証明 Vol.2: Zero-Knowledge Proofs in the Context of Modern Cryptography

          このブログシリーズをグラントプロジェクトとしてサポートしてくださっているイーサリアム財団、また執筆に際してフィードバックとレビューをしてくださった末神奏宙さんに感謝します。 Special thanks to Ethereum Foundation for awarding grants to this blog post series, and Sora Suegami for feedback and review. このブログシリーズは、ソフトウェアエンジニアに限らず、あらゆる日本の読者のみなさんに向けて、最先端の暗号技術とその重要性をわかりやすく説明するという趣旨で書かれています。それぞれ単体の記事としてもお読みいただけますが、順番に読み進めていくことでより理解が深まります。まだお読みでない方は、ブロックチェーンやコンセンサスアルゴリズムの仕組みについて解説しているVol.1を先に

          • 来たるべき量子コンピューターの時代に向けて一般人が知っておくべき「ポスト量子暗号」の基礎知識まとめ

            世界中の研究機関や企業が、従来のコンピューターでは複雑すぎて解けない問題を解ける量子コンピューターの開発競争を繰り広げており、中には「量子コンピューターは既にRSA暗号を解読できるようになっている」と主張する研究者もいます。登場が時間の問題ともいわれている量子コンピューターと、量子コンピューターによる暗号解読に対抗するために開発が進められている「ポスト量子暗号(PQC)」についてのFAQを、アメリカ国立標準技術研究所(NIST)がまとめました。 ・目次 ◆1:そもそも量子コンピューティングとは? ◆2:ポスト量子暗号化アルゴリズムとは? ◆3:「ポスト量子暗号」と「量子暗号」の違いは? ◆4:そんな危険な量子コンピューターがなぜ開発されているのか? ◆5:現行の暗号化技術とそれを量子コンピューターが解読する仕組み ◆6:ポスト量子暗号はどう役に立つのか? ◆7:なぜ今からポスト量子暗号の開

              来たるべき量子コンピューターの時代に向けて一般人が知っておくべき「ポスト量子暗号」の基礎知識まとめ
            • スマートフォンアプリのA/Bテスト実装例 - エムスリーテックブログ

              これは エムスリー Advent Calendar 2023 の3日目の記事です。 前日は三浦さん(@yuba)による「9時間足すんだっけ引くんだっけ問題~あるいは、諸プログラミング言語はいかにタイムゾーンと向き合っているか」でした。 こんにちは、エムスリーエンジニアリンググループ・マルチデバイスチームの藤原です。 マルチデバイスチームでは複数のスマートフォンアプリを開発しており、新機能の追加やレイアウト変更をする際はA/Bテストをすることもしばしばです。 今回は弊チームで採用しているA/Bテストの実装方法を2通り紹介します。 スマートフォンアプリのA/Bテスト Remote Configを用いた実装例 GraphQLを用いた実装例 GraphQLで実装してみてちょっとした感動があった We are hiring!! スマートフォンアプリのA/Bテスト A/Bテストとは、特定の要素を変更し

                スマートフォンアプリのA/Bテスト実装例 - エムスリーテックブログ
              • フルスクラッチして理解するOpenID Connect (3) JWT編 - エムスリーテックブログ

                こんにちは。デジカルチームの末永(asmsuechan)です。この記事は「フルスクラッチして理解するOpenID Connect」の全4記事中の3記事目です。前回はこちら。 www.m3tech.blog 9 JWT の実装 9.1 JWT概説 9.2 OpenID Connect の JWT 9.3 ヘッダーとペイロードの実装 9.4 署名の実装 公開鍵と秘密鍵を生成する 署名処理を作る 10 JWKS URI の実装 (GET /openid-connect/jwks) 11 RelyingParty で ID トークンの検証をする 12 OpenID Connect Discovery エンドポイントの実装 (GET /openid-connect/.well-known/openid-configuration) まとめ We're hiring 今回は全4回中の第3回目です。 (

                  フルスクラッチして理解するOpenID Connect (3) JWT編 - エムスリーテックブログ
                • Real World HTTP 第3版 ミニ版

                  TOPICS 発行年月日 2024年05月 PRINT LENGTH 207 ISBN 978-4-8144-0083-6 FORMAT PDF EPUB 本書は、2017年に発行し、2024年に第3版を発行した『Real World HTTP 第3版』のエッセンスを凝縮した、無料の電子書籍です。 HTTP/1.0、HTTP/1.1、HTTP/2と、HTTPが進化する道筋をたどりながら、ブラウザが内部で行っていること、サーバーとのやりとりの内容などについて、プロトコルの実例や実際の使用例などを交えながら紹介しています。 ミニ版のため、一部の内容を割愛しています。詳しくは本書の「まえがき」をご覧ください。 ミニ版の使用について ミニ版の図版やテキストは、著作権法で認められている引用の範囲に加えて、有志での勉強会、自社の社員向けの研修に用いるプレゼンテーション資料のために、全体の10~20%程

                    Real World HTTP 第3版 ミニ版
                  • memcached proxyで使うハッシュアルゴリズムを比較した話 - Mirrativ Tech Blog

                    memcached proxyのハッシュアルゴリズム比較 はじめまして!hibikiです(@add_bakkers) 現在大学3年生で、最近はネットワークに興味があり勉強中です。2023年8月からインフラチームにインターンとして参加しました。 本記事ではmemcached proxyのハッシュアルゴリズム比較の結果を紹介します。 memcached proxyのハッシュアルゴリズム比較 1. 背景と目的 ミラティブでのmemcachedの利用 課題: クライアントサイドでサーバ決定をしている memcached proxyの検討 2. memcached proxyに求められるアルゴリズム キーの分散 移動率の抑制 パフォーマンス ハッシュアルゴリズムの比較 3. 今回行うベンチマークの概要 計測対象とシナリオ 分散と移動率のベンチ 処理性能のベンチ 4. ベンチマークの結果と比較 移動率

                      memcached proxyで使うハッシュアルゴリズムを比較した話 - Mirrativ Tech Blog
                    • ジャンプTOON マンガビューワ を支える Flutter の技術

                      ジャンプTOON アプリチーム 2024 年新卒の西峰です。 5 月にサービスを開始した「ジャンプTOON」は、Flutter を採用し Android, iOS, iPadOS 向けのアプリを提供しています。 本記事では、ジャンプTOON モバイルアプリのために独自に開発されたマンガビューワについて紹介したいと思います。 マンガビューワとは マンガ作品を閲覧できる機能です。 本アプリでは、快適に縦マンガを閲覧いただけるよう、スクロールや拡大縮小操作に工夫を加えています。また、作品の転載防止のため、画面録画、ミラーリングの禁止機能も存在します。(本記事では解説しません) ビューワを自作した目的 本アプリではビューワ機能を自作していますが、その目的はいくつかあります。まず、柔軟に独自の機能を追加しやすくするためです。連続して話を読んだり、お気に入りやコメント、いいね、拡大縮小といった要件を全

                        ジャンプTOON マンガビューワ を支える Flutter の技術
                      • いま「新しい数学」が必要だ。助けて数学者!|shi3z

                        最初に言っておくが、僕は数学は全く苦手だ。数学が得意な人から見たらかなり的外れなことを言ってるのかもしれないが、僕にとっては切実な悩みなのである。「そんなのは簡単だよ」という人がいたらどうか教えて欲しい。 点がある。 これを0次元と言う。 点が横に並行移動して伸びて線になる。この線は無限大の長さまで伸びることができる。これを一次元という。 任意の長さ1の線が縦に1だけ動く、正方形になる。これを二次元と言う。 正方形を長さ1だけ今度は奥行方向に伸ばす。立方体になる。これを三次元という。 ここまでに「3つの方向」が出てきた。横、縦、奥行。 そのどれでもない四つ目の方向を考える。ただしこれは「時間軸」ではない。自由に行き来できる縦、横、奥行、ではない四つ目の「方向」だ。 立方体をそっち側の方向に動かす。これを超立方体といい、この空間を4次元という。 この長立方体をさらに「べつの方向」に動かす。こ

                          いま「新しい数学」が必要だ。助けて数学者!|shi3z
                        • Microsoft Defenderが「このコンテンツは利用できなくなりました」と書かれたテキストファイルを「重大な脅威」と誤検知して削除してしまうと判明

                          WindowsにはMicrosoftが開発したアンチウイルスソフトウェア「Microsoft Defender」が搭載されており、一般ユーザーであればサードパーティー製のセキュリティスイートを入れずとも強力なウイルス対策が可能とされています。しかし、このMicrosoft Defenderに特定のテキストファイルを重大な脅威と見なしてしまうバグが発見されました。 Microsoft Defender flags text file containing ‘This content is no longer available.’ as a severe threat | Tom's Hardware https://www.tomshardware.com/software/antivirus/microsoft-defender-flags-text-file-containing-th

                            Microsoft Defenderが「このコンテンツは利用できなくなりました」と書かれたテキストファイルを「重大な脅威」と誤検知して削除してしまうと判明
                          • Real World HTTP 第3版

                            本書はHTTPに関する技術的な内容を一冊にまとめることを目的とした書籍です。HTTPが進化する道筋をたどりながら、ブラウザが内部で行っていること、サーバーとのやりとりの内容などについて、プロトコルの実例や実際の使用例などを交えながら紹介しています。さまざまな仕様や実例、またGoやJavaScriptによるコード例を紹介しながら、シンプルなHTTPアクセスやフォームの送信、キャッシュやクッキーのコントロール、SSL/TLS、Server-Sent Eventsなどの動作、また認証やメタデータ、CDNやセキュリティといったウェブ技術に関連する話題を幅広く紹介し、いま使われているHTTPという技術のリアルな姿を学びます。 第3版では、より初学者を意識した導入や、スーパーアプリなどプラットフォーム化するウェブに関する新章を追加。幅広く複雑なHTTPとウェブ技術に関する知識を整理するのに役立ち、また

                              Real World HTTP 第3版
                            • 楕円曲線暗号方式の強度について - dwango on GitHub

                              ※本ブログは2024/2に執筆されています。そのため、アップデートによってここに記載されている内容が現状と乖離する可能性があります。記載する内容を参照する場合は自己責任でお願いします。 はじめに こんにちは! ドワンゴでエンジニアをやっている小林と申します。競技プログラミングを趣味にしています。 今回は業務には関係ありませんが、個人的に興味のあるトピックであるセキュリティーについて執筆します。 対象読者: 以下のどれかを満たす人 AtCoder で青色〜黄色以上、あるいは意欲のある水色以上 暗号理論に興味のある人 数学が好きな人 また、簡単な群論の知識を仮定します。(群の定義など) まとめ セキュリティーの強さはセキュリティーレベルと呼ばれる尺度で測ることができます。 \(k\) ビットセキュリティーはおよそ \(2^k\) 回の計算を要するレベルです。 \(n\) ビットの楕円曲線暗号方

                                楕円曲線暗号方式の強度について - dwango on GitHub
                              • 仕事で悩んだときに出会う本 - NRIネットコムBlog

                                本記事は 【Advent Calendar 2023】 6日目の記事です。 🎄 5日目 ▶▶ 本記事 ▶▶ 7日目 🎅 はじめまして、檀上です。 普段は顧客の社内システムの要件調整・基本設計などを担当しています。 さて、私は仕事で悩んだときにとりあえず本屋に行って本を買い漁るという癖があり、自宅には、読書が趣味ではない人にしては結構な数の本があります。 読み終わった後に心に残らなかったら売りに出すので、自宅に残っている本は個人的にかなりおススメできる本になっています。 今日は私の本棚に置いてあるおすすめ本を何本かピックアップして紹介させていただきます。 悩める社会人の皆様の一助になれば幸いです。 その1:セキュリティってどうやって守られてるの? その2:アジャイルってどうやって進めたらいいの? その3:チームでのふりかえり、どうやって話したらいいの? その4:社会人らしくふるまえない

                                  仕事で悩んだときに出会う本 - NRIネットコムBlog
                                • 楕円ElGamal暗号の変種とその安全性

                                  初めに 『暗号技術のすべて』(IPUSIRON)を読んでいたら、私が知ってる楕円ElGamal暗号と少し違う方式(変種)が紹介されていました。 「なるほど、そういうのもあるのだな」と思ったのですが、よく考えると安全性が損なわれているのではと思って考えたことを書いてみます。 単に、不勉強な私が知らなかっただけで大昔からの既知の事実だと思いますが、探してもあまり見当たらなかったのでまとめておきます。 楕円ElGamal暗号 まずは『現代暗号の誕生と発展』(岡本龍明)でも紹介されている、私が知っていた方式を、記号を変えて紹介します。用語は楕円ElGamal暗号も参照してください。 記号の定義 0 以上 r 以下の整数の集合を [0, r], そこからランダムに整数 x を選ぶことを x ← [0, r] と書くことにします。 G を楕円曲線の点 P を生成元とする素数位数 r の巡回群 \lan

                                    楕円ElGamal暗号の変種とその安全性
                                  • 情報Ⅰ本、未収録原稿供養 その1

                                    https://weknowledge.jp/blog/post_4392 情報Iで利用されるプログラミング言語は、教科書によってバラバラで、特定の言語に依存しているわけではありません。また、いくつかの教科書では複数のプログラミング言語を取り扱っています。 なぜ一つの教科書で複数のプログラミング言語を利用するのでしょうか?これは複数のプログラミング言語を通じて、プログラミング言語に依存しない、プログラミングの本質(=アルゴリズム)を身に着けるためだと考えられます。 たとえば、共通試験の試作問題では次のような穴埋め問題が登場しました。これは、ある金額が与えられた最に、何枚の硬貨が必要なのかを求めるものです。空欄に何が入るか分かるでしょうか? https://www3.jitec.ipa.go.jp/JitesCbt/html/openinfo/pdf/questions/2023r05_ip

                                      情報Ⅰ本、未収録原稿供養 その1
                                    • 次期マイナカードは何が変わる? 新デザインに暗証番号統合、「マイナンバーカード」の名称変更も検討へ

                                      デジタル庁は3月18日、マイナンバーカードの次期カードについて、最終案をとりまとめた。カードデザインを刷新する他、券面での性別表記の撤廃、4つ設定する必要のあった暗証番号を2つに統合するなど、使い勝手の改善も図っている。 デザイン変更 変更点だが、まず物理カードのデザインを刷新する。偽造防止対策、ユニバーサルデザイン対応、視覚障害者への配慮(カードの表裏識別など)を目的としたシンプルなデザインで、文字サイズやフォントなど読みやすさも考慮されているという。カードから性別表記が削除された他、国の保証のもとに発行されていることを明確化するため、券面に「日本国 JAPAN」という表記を追加。追記欄も拡大する。 一方で、カード内部のICには氏名、生年月日、住所、顔写真、性別を含めた券面記載事項が記録されており、国はその情報を個人情報に配慮しつつ読み取るためのスマートフォンアプリを無償配布する予定。こ

                                        次期マイナカードは何が変わる? 新デザインに暗証番号統合、「マイナンバーカード」の名称変更も検討へ
                                      • 鍵流出攻撃Dark Skippy - Develop with pleasure!

                                        ハードウェアウォレットからマスターシードを流出させるDark Skippyという新しい攻撃手法が最近公開された↓ https://darkskippy.com/ 悪意ある署名デバイスによる攻撃 Dark Skippyも、ハードウェアウォレットのような署名デバイスで悪意あるファームウェアが実行された場合の攻撃手法の1つ。このような状況は、 署名デバイスが改竄され、悪意あるファームウェアがロードされる ユーザーが騙されて悪意あるファームウェアをインストールする サプライチェーン攻撃により、悪意あるデバイスを購入してしまう といった原因で発生する可能性がある。 ハードウェアウォレットが侵害されている状態では、これまでも以下のような種類の攻撃が実行される可能性がある。 所定のシード攻撃 署名デバイスが攻撃者が設定した所定のシードフレーズを出力する攻撃。実際にTREZORに似せた偽のウォレットで、こ

                                          鍵流出攻撃Dark Skippy - Develop with pleasure!
                                        • エミリーの情熱と量子暗号の開発 - 叡智の三猿

                                          ChatGPTによる「量子暗号」をテーマとした物語 エミリーは、量子暗号の研究者であり、その革新的な技術を用いて、安全な通信手段を模索していた。彼女は、量子ビットと量子エンタングルメントの原理を理解し、古典的な暗号技術よりもはるかに安全な暗号化手法を開発することに情熱を傾けていた。 ある日、エミリーは新しいプロトタイプの量子暗号通信装置をテストしていた。この装置は、量子ビットを用いて情報を暗号化し、量子エンタングルメントを利用して受信者との間で情報を安全に共有することができるものだった。彼女は、装置を使って簡単なメッセージを暗号化し、それを彼女の友人であるアダムに送信することに決めた。 アダムはエミリーの研究に興味を持っており、彼女からの暗号化されたメッセージを受け取るのを楽しみにしていた。彼は、受信したメッセージをデコードするために彼女が提供した量子暗号通信装置を使い、メッセージを解読す

                                            エミリーの情熱と量子暗号の開発 - 叡智の三猿
                                          • DynamoDB のキャパシティユニット、テーブル構造、パーティション分割について図解でおさらい | DevelopersIO

                                            DynamoDB のキャパシティユニット、テーブルの構造、パーティショニングの仕組みについて図解します。開発環境ではうまくいっていたのに本番環境で大量のデータを処理しないといけなくなった場合に DynamoDB の性能が落ちるのは、パーティショニングによる内部的な処理の分散が原因の一端となる場合があります。 コーヒーが好きな emi です。 DynamoDB の調査をする機会があったのですが、DynamoDB の仕組みについてすっかり忘れてしまっていたため、絵を描きながらおさらいしました。 ドキュメントはこちらのチートシートがよくまとまっていて便利です。 キャパシティユニット (Capacity Unit、CU) DynamoDB テーブルでは書き込みと読み込みの性能を「キャパシティユニット (Capacity Unit、CU) 」という単位で換算します。 RCU と WCU 読み込みキャ

                                              DynamoDB のキャパシティユニット、テーブル構造、パーティション分割について図解でおさらい | DevelopersIO
                                            • 「AIは人間より高性能だが一部のテストでは人間の方が優秀」「高性能AIの学習コストは数百億円」などをまとめたスタンフォード大学のレポート「AI Index Report 2024」が公開される

                                              AIの研究開発は急速に進んでおり、「日常会話もコーディングも可能なAI」「高品質な画像を生成できるAI」「ロボットを高精度に動かせるAI」など高性能AIが続々と登場しています。そんなAIの現状をまとめた「AI Index Report 2024」をスタンフォード大学が公開しました。 AI Index Report 2024 – Artificial Intelligence Index https://aiindex.stanford.edu/report/ スタンフォード大学はAIの能力や研究状況などをまとめたAI Index Reportを2017年から毎年公開しています。2024年4月15日に公開されたAI Index Report 2024には、2023年までのAIに関する膨大なデータを分析した結果が掲載されており、ページ数は502ページに及びます。レポートの要点は以下の通り。 ◆

                                                「AIは人間より高性能だが一部のテストでは人間の方が優秀」「高性能AIの学習コストは数百億円」などをまとめたスタンフォード大学のレポート「AI Index Report 2024」が公開される
                                              • 電磁波の闇に挑む特殊チーム - 叡智の三猿

                                                ChatGPTによる「電磁波攻撃による情報搾取」をテーマとした物語 2040年の未来、世界は電磁波の支配下にある。技術の進歩により、人々は電磁波を利用して情報を送受信し、制御する能力を持っていた。それは便利で革新的な方法であり、通信は以前に比べてはるかに迅速かつ効率的になった。 しかし、この技術は暗い側面も持っていた。悪意ある者たちは、電磁波を使って情報を盗み、操ることで権力を握ろうとしていた。彼らは巧妙な手法で、電磁波を介して個人の秘密や企業の機密情報を盗み出し、それを利用して不正行為や脅迫を行った。 主人公は、この電磁波の悪用に立ち向かうために活動する特殊なチームの一員だった。彼らは、テクノロジーと戦術を駆使して、電磁波を使って情報を搾取する犯罪者たちを追跡し、彼らの悪事を阻止する使命を負っていた。 ある日、彼らのチームは大規模な犯罪組織が企てる巨大な計画を突き止める。この組織は、電磁

                                                  電磁波の闇に挑む特殊チーム - 叡智の三猿
                                                • 広く使用されているユーザー認証プロトコルを危険にさらす「Blast RADIUS攻撃」が報告される

                                                  RADIUSはネットワーク接続の際に用いられる一般的なユーザー認証プロトコルです。元はダイヤルアップ接続を念頭に1991年に開発されたものでしたが、記事作成時点でもほぼすべてのスイッチ・ルーター・アクセスポイントなどでサポートされています。新たに報告された「Blast RADIUS攻撃」は、そんなRADIUSをバイパスして攻撃アクターがネットワークデバイスやサービスにアクセスできるようになる攻撃手法とのことです。 BLAST RADIUS https://www.blastradius.fail/ RADIUS/UDP vulnerable to improved MD5 collision attack https://blog.cloudflare.com/radius-udp-vulnerable-md5-attack New Blast-RADIUS attack breaks 3

                                                    広く使用されているユーザー認証プロトコルを危険にさらす「Blast RADIUS攻撃」が報告される
                                                  • GoによるTLS1.3サーバーの実装

                                                    はじめに TLSプロトコルの理解を目的として、Go言語によりTLS1.3のフルハンドシェイクのサーバー実装を行いました。この記事では、実装の過程で得た学びをまとめたいと思います。Go言語はTLSをOpenSSLではなく自前で実装しています。暗号処理関連のパッケージが整っているため、TLSプロトコルの仕様に沿った自然な実装がしやすい言語だと思います。 実際に書いたコードはgo-tlsで公開しています。また、同内容はスライドとしてLearning-TLS1.3-with-Go-full.pdfでもまとめています。 暗号処理 TLSの内容に入る前にまず暗号処理の概要について見ていきます。次の3つの性質が重要です: 秘匿性 (Confidentiality) 通信内容が通信相手以外から読み取られないこと 完全性 (Integrity) 通信内容が途中で改ざんされていないこと 正真性 (Authen

                                                      GoによるTLS1.3サーバーの実装
                                                    • BigQueryでチェックサムをする方法

                                                      目次 チェックサムとはBigQueryでチェックサムをする方法まとめ参考 チェックサムとは チェックサムとは、データの整合性を確認するための手法です。 データから特定のアルゴリズム(ハッシュ関数など)を利用して、固定長のチェックサム値を生成します。チェックサム値が同じ場合、データの中身が一致している可能性が高く、チェックサム値が異なる場合、データの中身が異なると判断できます。 クエリをリファクタリングする際や、テーブルを書き換えたときに、書き換え前後で値が一致している(デグレしていない)ことをチェックするのに役立ちます。 データベースによってはチェックサム用の関数が用意されていることもあります。例えば、Oracle Databaseではチェックサム関数が用意されています。 BigQueryでチェックサムをする方法 BigQueryの標準SQLでチェックサムをするには、以下のクエリを実行しま

                                                        BigQueryでチェックサムをする方法
                                                      • Pythonを用いた情報セキュリティマネジメント試験対策: データ暗号化とセキュアなハッシュ関数の実装 - Python転職初心者向けエンジニアリングブログ

                                                        情報セキュリティマネジメント試験は、セキュリティに関する専門的な知識とスキルを測る重要な試験の一つです。今回はPythonを利用して、試験の一部であるデータ暗号化とセキュアなハッシュ関数に焦点を当て、具体的なコードとともに詳しく説明します。 データ暗号化の基本概念 データ暗号化は、機密性を保護するために情報を変換するプロセスです。代表的な対称鍵暗号としてAES(Advanced Encryption Standard)を使用してみましょう。 from Crypto.Cipher import AES from Crypto.Random import get_random_bytes from Crypto.Util.Padding import pad, unpad import base64 def encrypt_data(data, key): cipher = AES.new(k

                                                          Pythonを用いた情報セキュリティマネジメント試験対策: データ暗号化とセキュアなハッシュ関数の実装 - Python転職初心者向けエンジニアリングブログ
                                                        • Bloom Filterの数理 - Qiita

                                                          Mastering Bitcoin の読書会をやっていました。読み直す度に新しい発見があるのがこの本であり Bitcoin の技術でして、その中で Bloom Filter についての話題があります。 Bloom Filter というのは確率的アルゴリズムの一つです。このエントリでは、 Bloom Filter とはどういうものか、そしてその数理はどうなるのかを記述したいと思います。 Bloom Filter の特徴 まず Bloom Filter というのは確率的アルゴリズムの一つでして、「ある要素 $e$ が、$n$ 個からなるデータ集合の中に含まれているか否か」という命題に答えるために使われます。 この命題を解くための一番直感的な方法は、$n$ 個のデータからなる集合を作った後で、要素 $e$ がその集合に入っているかどうかを先頭から見に行くという方法だと思います。この方法の時間計算

                                                            Bloom Filterの数理 - Qiita
                                                          • ARC認証の整理しておきたいポイント | 朝から昼寝

                                                            電子メールの送信元ドメインが詐称されていないかを検証する送信ドメイン認証 (Sender Domain Authentication)。 本記事は、ARC(Authenticated Received Chain)認証についてまとめたものです。 SPF、DKIM、DMARC、ARC、BIMIといった送信ドメイン認証のまとめ記事はこちらです。 本記事では、整理しておきたいポイントを中心に記載しています。ネット上に解説記事が多そうな内容については省略している場合があります。 基本 ARCの認証対象と認証成否 メールヘッダ(ARC-*ヘッダ)にある電子署名を認証します。 このARC-*ヘッダは、メールを中継するシステム(ARC対応のMTA等)によって追加されるたびに増えます。 電子署名の中で指定されたドメインのDNSに登録されたレコード(DKIMと同様)に基づいてその署名を検証する等、ARC認証

                                                              ARC認証の整理しておきたいポイント | 朝から昼寝
                                                            • シャーディング経験者に向けたSpannerのコンセプト解説

                                                              この記事の目的 リレーショナルデータベース(以下、RDBMS)を大規模に利用されるときの構成手法として、データベースシャーディング(Database sharding)という方法があります。オンラインゲームやSaaSなどアクセス頻度が高く、個別のユーザーごとの操作による更新量が大きい用途などでデータベースの書き込み性能の限界に対しての回避策として多くの場面で利用されている手法です。 この手法の実現方法や得失について簡単に解説したあと、この手法の経験者がSpannerを使う場合にシャーディングでの概念をどのようにSpannerに対応できるか解説します。 シャーディングについては十分わかっており、概念の読み替えだけを知りたい方は最後の表をご覧ください。 RDBMSでのシャーディングの構成 シャーディングは通常水平分割で実現されます。つまり1つのテーブルのレコードを複数の異なる物理データベースに

                                                                シャーディング経験者に向けたSpannerのコンセプト解説
                                                              • RDBMSの基礎を学ぶーインデックス編

                                                                エンジニア何年もやって、ちゃんとDB学んでいなかった悔しさがずっとあったので、この間は色々とコースなり、本なりを探って勉強した。 DBMSは非常に大きなトピックで自分もまだまだほんの少ししか触れていなかったが、この記事では、とりあえずはインデックスからスタートしてようと思う。 (結構長くなってしまったので、TL;DRとして節ごとにまとめを置いています) DBMSのアーキテクチャー概要 データベースによって実装が異なるが、一般的に含まれるDBMSの構成コンポーネントとして、次のように挙げられる[1]。 DBMSはサーバークライエントのモデルを使っている。クライエントはクエリーを構成してトランスポートのレイヤーを経てサーバー側に送られる。クエリーに対してサーバー側が解析や最適化して、適切な実行プランを出す。実行プランは実行エンジンに渡されて、ローカルとリモートの実行結果を集計する。リモートとい

                                                                  RDBMSの基礎を学ぶーインデックス編
                                                                • OCI Artifact

                                                                  OCI image specification 1.1.0が正式リリースされたことでOCI Artifactと呼ばれていた仕様が確定したので、これについてまとめていきます。 OCI Image specification まずOCI Image specificationのおさらいです。OCI (Open Container Initiative)はコンテナの標準化のためのLinux Foundationのサブ団体で、次の3つを定めます: Runtime specification コンテナの実行環境に関する標準化です。今回は関係しません。 Image specification コンテナのデータ形式に関する標準化です。今回の主題です。 Distribution specification コンテナのデータをHTTPS上でやり取りするためのAPIの定義です。今回の記事に関係しますがあまり深

                                                                    OCI Artifact
                                                                  • ゼロ知識証明を使用せずに部分証明と存在証明をやってみる - Qiita

                                                                    ゼロ知識証明について調べていたら、発行者が作成した証明書の一部だけを公開してプライバシーを守るとか、証明したい部分を伏せて存在を証明することができる、といった解説をよく見かけます。さらに調べていくうちに、なぜかゼロ知識証明を使わずに実現する方法について興味が湧いてきました。 もちろん複雑なことはZK-SNARKやZK-STARKの活用が必須となりますが、大きな実装難易度や計算コストも伴います。最近Symbolのコア開発者もKASANEというSTARK開発に向けて発表がありましたのでどんな仕組みになるのか楽しみですね。 コミュニティからのレポートもあるのでご紹介しておきます。 今回はゼロ知識証明を使わずに、ゼロ知識証明の定番ユースケースをsymbol-sdkを使用して実装してみます。速習Symbol方式で実行検証できますので、お試しください。 // Symbol SDK のインポート con

                                                                      ゼロ知識証明を使用せずに部分証明と存在証明をやってみる - Qiita
                                                                    • 結局ユーザーパスワードはどう保存すればいいんだ?

                                                                      はじめに ユーザーパスワードの管理は、システム開発において最も重要なセキュリティ課題の一つです。 OAuthやAWS Cognitoなどの認証サービスを利用することで、パスワードの管理を外部に任せることもできますが、 プロジェクトによっては自前でパスワードを管理する場合もあります。 では自分たちでパスワードを管理する際に、どのように暗号化すればいいのでしょうか? 万が一パスワードが漏洩した場合ちゃんと対応できるのでしょうか? 本記事では、ユーザパスワードいくつの暗号化手法及びそのリスクについて解説したいと思います。 前提知識 まず暗号化の三兄弟 - Encode, Hash, Encrypt の違いを理解しておきましょう。 Encode 単に文字列を別の形式に変換するだけ キーがなくても元に戻せる 例:Base64エンコード、URLエンコード Hash 一方向の変換 キーがないため元に戻せ

                                                                        結局ユーザーパスワードはどう保存すればいいんだ?
                                                                      • MD5は簡単に衝突させられる - Buri Memo:

                                                                        MD5 (Message Digest 5) は暗号学的ハッシュ関数で、電子署名やパスワードのハッシュ化のような暗号的な用途に利用されていた(が、今は暗号用途で使ってはいけない)。 暗号学的ハッシュ関数はこの性質を満たさなければいけないとされている。 一方向性: ハッシュ値から元の値の復元が困難である 第二現像困難性: あるハッシュ値があったとき、それと同じハッシュ値となる入力値(元の値でなくて良い)を求めるのが困難である 衝突困難性: 同じハッシュ値になる任意の入力値を求めることが困難である ハッシュ関数の品質として通常利用時に偶然衝突する確率が非常に低いことはもちろん、悪意を持って衝突しようとしても偶然衝突するレベルの確率でしか成功しないようにする必要がある。ここでいう「困難」は総当たり攻撃や誕生日攻撃 1 よりも効率的な攻撃方法が無いと言い換えられる。 攻撃難易度は、 一方向性 >

                                                                          MD5は簡単に衝突させられる - Buri Memo:
                                                                        • CDリッピング環境について考える - Qiita

                                                                          はじめに この記事の内容はWindows環境を想定しています。 MacとかLinuxは対象外です。ごめんね。 筆者の環境:Win10 Pro 22H2、BH14NS58 CDのリッピングとは CDリッピングとは、音楽CDに入っているデジタルデータを、PCに音楽ファイルとして保存(取り込み)すること。 リッピングソフトはCDの楽曲情報をインターネット上から取得し、皆さんご存知のMP3やFLAC等の圧縮フォーマットに変換する作業を同時にやってくれる。 大サブスク時代にCDリッピングは必要か? 世間的にはサブスク(Apple MusicやSpotify等)で音楽を聴くスタイルがメジャーになっていますが、私はサブスクを完全に信用してはいません。 配信していない曲がそれなりに存在する、大人の事情で突然配信停止されることもある、スマホが圏外だと使えない、サブスクを解約したら何も聴けなくなる1、etc.

                                                                            CDリッピング環境について考える - Qiita
                                                                          • 8文字の複雑なパスワードも1時間で解読、GPUを使ったサイバー攻撃の危険な現状

                                                                            Webサーバーなどからパスワードが盗まれたり漏洩したりする事件が後を絶たない。通常、パスワードはそのままの形(平文)では保存されていない。ハッシュ値と呼ばれる文字列に変換されてサーバーに保存されているので、そのままでは悪用できない。 だが安心はできない。進化が著しいGPU(画像処理半導体)を利用すれば、「力業」でハッシュ値から元のパスワードを推測できる。セキュリティーベンダーの米Hive Systems(ハイブシステムズ)によれば、8桁の数字だけのパスワードなら瞬時、8文字の複雑なパスワードでも1時間以内に解読できるという。 あなたのパスワードは大丈夫だろうか。 ハッシュ値からパスワードを推測 Webサービスなどでは、ユーザーが設定したパスワードはハッシュ関数でハッシュ値に変換されて保存される。認証時にはユーザーが入力したパスワードを同じハッシュ関数で変換し、得られたハッシュ値と保存されて

                                                                              8文字の複雑なパスワードも1時間で解読、GPUを使ったサイバー攻撃の危険な現状
                                                                            • 暗号学の現在―現代暗号入門

                                                                              受講登録する(無料) この講座はビジネスdアカウント連携ユーザのみ受講登録できます。 詳細は、こちら(受講条件)をご確認ください。 講座内容 数千年の歴史をもつ暗号は1970年代以降に根本的で急峻な変革を遂げ、今日、暗号の科学と技術は様々な形で日常生活に深く浸透するに至りました。これを現代暗号と呼びます。この講座では現代暗号の原理と特徴、基本的な機能、社会基盤とのかかわり、そして近い将来に求められる暗号の機能について、要点を平易に紹介します。これにより暗号を切り口として、情報社会の現在と未来を垣間見ることにもなります。なお、現代暗号は数学的な理論に基づくものですが、できるだけ直観的な説明に努め、記法や概念を定義するときは高等学校「数学I」や「数学A」の言葉を使うよう配慮します。 Week1:現代暗号の基本的な道具 現代暗号の安全性の基礎となる数学的仕組みについて解説します。それが一方向性関

                                                                                暗号学の現在―現代暗号入門
                                                                              • GoogleやGoogle DeepMindが2023年のAIとコンピューティングについての研究成果を振り返る

                                                                                Googleの技術研究部門であるGoogle ResearchとAI部門のGoogle DeepMindが、2023年におけるAIとコンピューティングについて発表したさまざまなAIモデルや研究成果を振り返っています。 2023: A year of groundbreaking advances in AI and computing – Google Research Blog https://blog.research.google/2023/12/2023-year-of-groundbreaking-advances-in.html Googleは2023年3月21日に、チャットボットAIのBardを公開しました。このBardはテキストの生成、言語の翻訳などさまざまなコンテンツを作成できます。 GoogleがChatGPTのライバル「Bard」の一般公開を開始、実際に質問するとどん

                                                                                  GoogleやGoogle DeepMindが2023年のAIとコンピューティングについての研究成果を振り返る
                                                                                • 速いぞ。0.00015秒。250,000倍速い高速化エンジニアリング。超速の ハッシュ計算とはなんですか。CPU Time: 38.7979  GPU Time: 0.00015 - Qiita

                                                                                  速いぞ。0.00015秒。250,000倍速い高速化エンジニアリング。超速の ハッシュ計算とはなんですか。CPU Time: 38.7979  GPU Time: 0.00015 Python初心者ポエムChatGPTQwen 物語:GPUハッシュ計算プログラムの冒険 ある小学校6年生の男の子、ケンタはコンピュータに夢中な子どもでした。ある日、ケンタは「ハッシュ関数」というものについて学びました。それはコンピュータがビットコインマイニングを高速で行うために使う特別な方法だと聞きました。 ケンタが学んだハッシュ関数のアルゴリズムは、データを受け取って、一定のルールに従って別の形に変えるというものです。たとえば、「Hello World」というメッセージがあったとします。ハッシュ関数はこのメッセージを一定のパターンで変換して、長い数字の列にします。この数字の列はそのメッセージにだけ特有で、同じ

                                                                                    速いぞ。0.00015秒。250,000倍速い高速化エンジニアリング。超速の ハッシュ計算とはなんですか。CPU Time: 38.7979  GPU Time: 0.00015 - Qiita