MENU
  • ホーム
  • エンジニア技術MEMO
  • デザインチーム
    • webコーダー挑戦
    • Webデザイナ挑戦デザイナーがWebデザイナーに挑戦し、コーディングやデザインマターでの困りごとや調査内容、他の専門家との情報交換等を投稿します。
    • WordPressWordpressのサイト構築あれこれ!
    • コーダー技術MEMO
    • デザインチーム
  • IT TOOL
    • ECサイトIT TOOL ECサイト
    • レッスン施術サービスレッスン施術サービス予約サイト
    • 美容院予約美容院予約システム
    • 会議室予約
    • 家事代行予約
    • 求人サイト
    • 発注・請求システム
  • IT導入補助金
  • 電気自動車(EV)
  • FAQ
  • どこの国
  • 業務効率化
    • 見積
    • 請求
  • ホーム
  • エンジニア技術MEMO
  • デザインチーム
    • webコーダー挑戦
    • Webデザイナ挑戦デザイナーがWebデザイナーに挑戦し、コーディングやデザインマターでの困りごとや調査内容、他の専門家との情報交換等を投稿します。
    • WordPressWordpressのサイト構築あれこれ!
    • コーダー技術MEMO
    • デザインチーム
  • IT TOOL
    • ECサイトIT TOOL ECサイト
    • レッスン施術サービスレッスン施術サービス予約サイト
    • 美容院予約美容院予約システム
    • 会議室予約
    • 家事代行予約
    • 求人サイト
    • 発注・請求システム
  • IT導入補助金
  • 電気自動車(EV)
  • FAQ
  • どこの国
  • 業務効率化
    • 見積
    • 請求
  • ホーム
  • エンジニア技術MEMO
  • デザインチーム
    • webコーダー挑戦
    • Webデザイナ挑戦デザイナーがWebデザイナーに挑戦し、コーディングやデザインマターでの困りごとや調査内容、他の専門家との情報交換等を投稿します。
    • WordPressWordpressのサイト構築あれこれ!
    • コーダー技術MEMO
    • デザインチーム
  • IT TOOL
    • ECサイトIT TOOL ECサイト
    • レッスン施術サービスレッスン施術サービス予約サイト
    • 美容院予約美容院予約システム
    • 会議室予約
    • 家事代行予約
    • 求人サイト
    • 発注・請求システム
  • IT導入補助金
  • 電気自動車(EV)
  • FAQ
  • どこの国
  • 業務効率化
    • 見積
    • 請求
  1. ホーム
  2. エンジニア技術MEMO
  3. 【公開鍵暗号方式とは】公開鍵と秘密鍵をざっくり分かりやすく説明してみる【public key】【private key】

【公開鍵暗号方式とは】公開鍵と秘密鍵をざっくり分かりやすく説明してみる【public key】【private key】

2024 6/06
エンジニア技術MEMO
2024年6月6日

こんにちは、3年間のエンジニア経験を経て、現職ではデザイナ・コーダーをやっています、オッコです。

本番環境に接続する「公開鍵」「秘密鍵」を作成する機会に何度か直面してきたのですが、これが何かずっとふわふわしたままだったので、一旦言語化を試みることにしました。

実際の具体的な状況を想定しつつ、すごく簡単な例えで説明してみたいと思います。

・暗号方式について勉強を始めたばかりの方

・専門用語が多すぎて何を言っているのかいまいちよく分からない挫折しかけの方

が、まずざっっっくりと公開鍵暗号方式についての概要をつかむための一助になれば、大変嬉しいです。

なお、先に言っておきますが、正確性より初手の分かりやすさを優先しています。

基本情報の勉強だとか、細かい知識を覚えるのには参考にならないかもしれません。頭パンク気味の意気消沈エンジニア向けです。

まず一応、定義から確認します。

目次

定義

公開鍵とはなんぞ

公開鍵とは、通信を暗号化するときに使うキーのことです。公開鍵暗号方式で使われる2種類の暗号鍵の一つで、誰でも利用できるように広く公開されています。

秘密鍵から作られ、その秘密鍵と対となることで高い秘匿性を実現し、電子署名(デジタル署名)にも活用が可能です。

https://it-trend.jp/encryption/article/64-0089

秘密鍵とはなんぞ

秘密鍵とは、対になる公開鍵で暗号化された通信を復号化するために使うキーのことです。特定のユーザーのみが持つため、公開鍵によって暗号化された電子メールなどの通信は、第三者に読み取られる心配がありません。

https://it-trend.jp/encryption/article/64-0089

私が鳥頭なのが悪いのですが、明日には忘れてしまいそう。鳥に謝ります。

もっと簡単にイメージしましょう。

公開鍵暗号方式とは何か? イラストでイメージ

まずあなたのパソコンから、お客さんの本番サーバーにアクセスしたいとします。

そんなときに公開鍵暗号方式を採用した場合の鍵の登録の流れは以下です。

  • ①あなたが公開鍵、秘密鍵を両方とも作る
  • ②お客さんのサーバーの管理者の人に、公開鍵をあげる
  • ③あなたはいつでも、秘密鍵を使ってサーバーにアクセスできるようになる

個人的には、両方鍵と言っているから分かりにくいのではと思います。(※正確性に欠けるであろうガバガバポイント)

なので、図に置き換えてみましょう。

lock_nankinjou.png (320×321)

↑これが公開鍵(南京錠)

↑これが秘密鍵

これらがセットになって、「鍵」として使えるようにするのですね。

重要なのは、これらを両方ともあなた(ローカル側)が作るということです。

鍵を用意する、と聞くと、サーバー側に鍵穴が既についてて、解除するためのキーを用意するのかと思いがちですが、そうではありません。

※大丈夫です、いざ、実際に作るぞ!となったときは、両方ワンセットでちょいちょいっと作ってくれるサービスがあります。(PuTTYgenとかね)

そして、南京錠(公開鍵)をサーバー管理者に渡すと、サーバー管理者があなたの公開鍵をサーバー側に登録してくれます。こんな風に↓

computer_lock.png (800×642)

パソコンがお客さんのサーバーだと想像してください。

もともとあったサーバーに、あなたが作った公開鍵を登録することで、あなたがそのサーバーにアクセスできるようにしてくれるというわけです。

※細かいことを言うと、南京錠と鍵に例えてしまうと、サーバーにアクセスできる人数分の南京錠がサーバーに巻き付いていて、ぜんぶ解除しないといけないように思えてしまいますが、実際は自分の鍵ペアだけあればサーバーに接続できます。ガバガバポイントその2です。

あなたの公開鍵も、先輩の公開鍵も、上司の公開鍵も、全部サーバーに登録されています。みんなそれぞれの鍵ペアを使って、サーバーに接続しているのです。

ここで担保! セキュリティ性

なんか、私が一番疑問だったのは、「あまりにも鍵作るの簡単じゃね?」ということでした。ほんとにすぐ作れるんですよ。(PuTTYgenとかね)

それに、「公開鍵は誰に見られても大丈夫」とよく書かれているじゃないですか。

こんなんでいいの? これでセキュリティをどう担保しているの? とずっと疑問をいだいたまま、先輩に言われるがままに設定していました。

けど、「誰でも公開鍵をサーバーに登録してもらえるわけではない」ということが、セキュリティ性担保に繋がっていたのですね。

つまりあなたの気をつけるべきことは、これです

・生成した秘密鍵は、ローカルPCのめっちゃ大事なところに保管する

保存場所の作り方はググったら出てきます。

泥棒が秘密鍵を手に入れて、複製して、かつサーバーの基本的な情報を知っていて、あなたの秘密鍵のパスワードがデスクトップの隅にメモされていたら、アウトですからね。

その場合はサーバー管理者に連絡して、公開鍵を無効にしてもらいましょうね。

また、企業によっては、先輩が公開鍵と秘密鍵をセットで作って、あなたに秘密鍵だけくれるとか、そもそも先輩の秘密鍵を複製してあなたにくれるとか、上記①~③の手順の一部だけあなたが知っている可能性もあります。

そんなガバ企業ないと信じたいですが、全貌は①~③になるので、ぜひこれを前提に考えてみてください。

分かりにくい箇所があればコメントをいただけたら、改訂します。

以上です。

参考文献

https://it-trend.jp/encryption/article/64-0089

https://www.irasutoya.com/search?q=%E5%8D%97%E4%BA%AC%E9%8C%A0

[cc id=1656]

エンジニア技術MEMO
Private key Public key サーバー 公開鍵 公開鍵案方 秘密鍵 鍵ペア
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
  • YouTubeのiframeのサイズ調整CSS
  • phpからjQueryへ配列データを引き渡す方法【smarty】【Laravel】【javascript】

この記事を書いた人

オッコのアバター オッコ

関連記事

  • phpからjQueryへ配列データを引き渡す方法【smarty】【Laravel】【javascript】
    2024年6月10日
  • LINE内で使うアプリ開発のために、LIFFを試す(スターターキットを立ち上げてみる)
    2024年3月14日
  • git管理下でsourcetreeとmonacaを併用してハイブリッドアプリの開発をする【Vue.js】~環境構築とクラウド反映確認~
    2024年3月5日
  • monaca Android リリースビルド失敗について
    2023年7月28日
  • 「.rej」ファイルって一体何なのか
    2022年10月28日

コメント

コメントする コメントをキャンセル

カテゴリー

  • ECサイト
  • IT TOOL
  • IT導入補助金
  • monaca
  • PC関連
  • Shopify
  • webコーダー挑戦
  • Webデザイナ挑戦
  • Web制作
  • Wordpress
  • アパレル
  • エクセル・ワード
  • エンジニア技術MEMO
  • お知らせ
  • コーダー技術MEMO
  • スマートガジェット
  • セキュリティ
  • セルフオーダーシステム
  • デザインチーム
  • どこの国
  • ネットで販売
  • ブログ
  • ブログ
  • ブログ収益化
  • プロンプト
  • マーケティング
  • レッスン施術サービス
  • 会議室予約
  • 回線・インターネット
  • 家事代行予約
  • 未分類
  • 業務効率化
  • 画像生成AI
  • 発注・請求システム
  • 社内用
  • 社長
  • 美容院予約
  • 見積
  • 見積
  • 請求
  • 電気自動車(EV)

最近の投稿

  • 100記事書いてもアクセスが増えない?記事リライト後の測定のコツとアクセス数の目安を解説
  • ブログアクセス数が目安に届かない…100記事書いたのにアクセスが増えない人の改善ステップ
  • 100記事書いてもアクセスが増えない?記事リライトのコツとアクセス数の目安を解説
  • 初心者向け:なぜ記事が “表示回数0” のまま放置されるのか?実例で学ぶSEO改善の基本
  • SWELLテーマで埋め込み(oEmbed)がうまくいかない?原因と対処法まとめ

最近のコメント

  1. Elementor Pro ライセンス・更新について に wpmaster より
  2. Elementor Pro ライセンス・更新について に 志村和久 より

アーカイブ

  • 2025年5月
  • 2025年4月
  • 2025年3月
  • 2025年2月
  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年4月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年12月
  • 2023年11月
  • 2023年10月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月

APICE

問い合わせ

アピステクノロジー|tec note

  • ホーム
  • エンジニア技術MEMO
  • デザインチーム
    • webコーダー挑戦
    • Webデザイナ挑戦
    • WordPress
    • コーダー技術MEMO
    • デザインチーム
  • IT TOOL
    • ECサイト
    • レッスン施術サービス
    • 美容院予約
    • 会議室予約
    • 家事代行予約
    • 求人サイト
    • 発注・請求システム
  • IT導入補助金
  • 電気自動車(EV)
  • FAQ
  • どこの国
  • 業務効率化
    • 見積
    • 請求

 〒224-0032 神奈川県横浜市都筑区茅ケ崎中央42−21 第2佐藤ビル 203

電話番号: 045-532-4480

お問い合せ

© .

目次