Cryptosim: Cryptosat API を試す

Dec 05 2022
Cryptosat は小型衛星を構築し、地球低軌道 (LEO) に打ち上げます。そこでは、物理的に誰の手の届かないところにあり、機密性の高い操作とプロトコルを保護し、エントロピーの収集、暗号プロトコルの信頼できるセットアップ、宇宙からのトランザクションとデータの署名など​​の機能を実行する最も安全な暗号モジュールとして機能します。

Cryptosat は小型衛星を構築し、地球低軌道 (LEO) に打ち上げます。そこでは、物理的に誰の手の届かないところにあり、機密性の高い操作とプロトコルを保護し、エントロピーの収集、暗号プロトコルの信頼できるセットアップ、宇宙からのトランザクションとデータの署名など​​の機能を実行する最も安全な暗号モジュールとして機能します。

ほとんどの開発者とユーザーは宇宙産業から遠く離れており、人工衛星と直接やり取りしたことはありません。これが、開発者にいくつかの可能性と、衛星コンステレーションを操作する際の制約についての感覚を与えることが非常に役立つと考えた理由です.

この投稿では、 Cryptosim (Cryptosat Simulator)について詳しく説明します。これは、Cryptosat を開始して以来開発してきたサンドボックス シミュレーターおよびインタラクティブなチュートリアルです。Cryptosim は最新のブラウザーを使用してアクセスでき、開発者は実際に製品パイプラインと統合する前にサテライトの機能について学ぶことができます。

Gil Shotan が開発した Cryptosim の最初のバージョンのスクリーンショット。

シミュレーターの UI は、Cryptosat でサポートされている API 機能を説明するチュートリアル (右側)、衛星の軌道を示すマップ、およびユーザーがプログラムで API を試してシミュレートされたものとやり取りできる JS コンソールに分かれています。サテライトは、そのステータスを要求し、メッセージに署名し、ランダム性を要求し、遅延暗号化キー ペアを生成します。
チュートリアルでは、Cryptosat の一般的な前提を説明し、通信ウィンドウと衛星の可用性、衛星への非同期インターフェイスについて説明し、Cryptosat でサポートされているさまざまな暗号化機能と、それらをコンテキストで使用する方法を紹介します。ランダム ビーコンまたはVRFとも呼ばれるPublic Randomness
の例を見てみましょう。(検証可能なランダム関数)。

公開ランダム性の例。注: ここでは、応答検証キーを取得する方法を使用しますが、実際には、衛星の公開キーは、中間者によって制御できない別のチャネルを介して提供されます。

Cryptosat は定期的にランダム ビーコンをブロードキャストします。これは、衛星に搭載されたエントロピーから生成される予測不可能なビット シーケンスです。このビーコンは、宝くじの実行、ランダムな NFT シャッフルの生成などに使用できます。呼び出すと、cryptosat.getPublicRandom()Cryptosat の衛星コンステレーションから受信した最新のビーコンが返されます。

物理学の観点からは、軌道上のすべての移動物体を監視する米国機関である NORAD から取得したデータ ( TLE )に基づいて、最初の衛星である Crypto1 の実際の軌道を実際に地図上に示しています。より多くの衛星を打ち上げるにつれて、Cryptosim にそれぞれの軌道を追加する予定です。

非同期 API

衛星は 100% の時間、地上局から見えないため、ユーザー要求の実行に大幅な遅延が生じることがあります。したがって、サテライト API は非同期です。関数はリクエスト オブジェクトを返します。.status()メソッドを呼び出すことで、リクエストの完了ステータスを照会できます。要求ステータスは、Pending衛星が地上局の到達範囲外にある限り維持されます。実行されるとすぐに、ステータスが に切り替わりますReady。その後、ユーザーは.result()メソッドを安全に呼び出して衛星応答を取得できます。

非同期リクエスト API の使用

ユースケースの例

Cryptosim は、ユーザーが Cryptosat サービスを使用する可能性があるいくつかのユース ケースを示しています。それらすべてに共通するテーマは、Cryptosat 衛星を改ざん防止、信頼性、および安全な暗号ルート オブ トラストとして使用することです。これは、物理的に最も手の届かないところにあるため、正しく動作し、暗号の完全性を提供することが信頼できます。洗練された敵。

Cryptosim の現在のバージョンには、次の例が含まれています。

  • パブリック ランダムネス (ランダム ビーコン)
  • プライベート ランダム性 — ユーザーは、要求で提供する公開鍵に暗号化されるランダム ビットを要求できます。
  • 署名付きタイムスタンプの取得 — 信頼できる時間のソースを必要とするアプリケーションや、現実世界で一定の時間が経過したことを確認する必要があるスマート コントラクトで使用できます。
  • スペース内のデータへの署名
  • 遅延暗号化 — サテライトが暗号化キー ペアを生成し、公開キーを発行します。秘密鍵は、指定された時間が経過するまで解放されないため、公開された公開鍵に暗号化されたデータが早期に復号化されることはありません。これは、たとえば、オークション、投票スキームなどで使用できます (あなたが興奮しているユースケースを送ってください!)。

RESTful API

自己完結型のブラウザー ベースのシミュレーションに加えて、RESTful API へのアクセスを開放するために取り組んでいます。この API により、許可されたユーザーは実稼働衛星にアクセスできるだけでなく、開発およびテスト目的でシミュレートされた星座にもアクセスできます。

オープンソースへの貢献

追加のアイデアを提供したり、Cryptosat の使用例を提案したりすることに興味がある場合は、 Githubで入手できる Cryptosim ソース コードで遊ぶことができます。メイン リポジトリはありますcryptosim-tutorialが、微調整したい部分によっては、cryptosimおよびcryptosim-visualizationリポジトリもチェックアウトすることをお勧めします。

Cryptosat 衛星の使用

要点は、API の使用方法を学び、実際の Cryptosat 衛星を使用して、宇宙から提供されるリクエストを取得することです。本番システムとの統合方法の詳細については、[email protected]までお問い合わせください。Cryptosat とその API に関する技術情報は、ドキュメンテーション ポータルにあります。