{"id":101,"date":"2025-10-18T09:06:55","date_gmt":"2025-10-18T09:06:55","guid":{"rendered":"https:\/\/ciphermq.com\/blog\/?p=101"},"modified":"2025-10-18T09:33:56","modified_gmt":"2025-10-18T09:33:56","slug":"message-transmission-process-and-examplescenario-labs-and-research-centers","status":"publish","type":"post","link":"https:\/\/ciphermq.com\/blog\/index.php\/2025\/10\/18\/message-transmission-process-and-examplescenario-labs-and-research-centers\/","title":{"rendered":"Message Transmission Process and ExampleScenario (Labs and Research Centers)"},"content":{"rendered":"\n<p><strong>Message Transmission Process<\/strong><\/p>\n\n\n\n<p>Objective To enable secure data transmission from senders to receivers via a central server using CipherMQ, leveraging mTLS for authentication and x25519 encryption for message security.<\/p>\n\n\n\n<p><strong>Process Steps<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Initial Setup<\/strong><ol><li>Server Configuration: The server is configured with TLS 1.3 for secure communication.<\/li><\/ol>\n<ol class=\"wp-block-list\">\n<li>Client Configuration: Receivers register their public keys with the server; senders retrieve and load the public keys of intended recipients.<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><strong>Message Generation &amp; Encryption<\/strong><ol><li>Senders generate messages in a standardized format: { &#8220;message_id&#8221;: &#8220;&#8221;, &#8220;sender_id&#8221;: &#8220;&#8221;, &#8220;sent_timestamp&#8221;: &#8220;&#8221;, &#8220;content&#8221;: &#8220;&#8221; }<\/li><\/ol>\n<ol class=\"wp-block-list\">\n<li>Messages are encrypted for each recipient using their x25519 public key, including message_id, receiver_client_id, and ciphertext.<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><strong>Transmission to Central Server<\/strong><ol><li>Senders connect to the server via mTLS for secure authentication.<\/li><\/ol><ol><li>Encrypted messages are sent with a publish command.<\/li><\/ol>\n<ol class=\"wp-block-list\">\n<li>The server stores metadata in the table and sends an ACK to the sender.<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><strong>Processing &amp; Distribution<\/strong><ol><li>The server queues messages using a high-performance DashMap.<\/li><\/ol><ol><li>Based on routing_key and bindings, messages are directed to recipient queues.<\/li><\/ol>\n<ol class=\"wp-block-list\">\n<li>Messages are delivered to connected recipients.<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><strong>Reception &amp; Decryption<\/strong><ol><li>Receivers connect to their designated queue, consume messages, and decrypt them using their private key.<\/li><\/ol>\n<ol class=\"wp-block-list\">\n<li>Decrypted messages are saved in a standardized file.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<p>Receivers send an ACK to the server, which updates acknowledged_time in the database, removes the message from the queue, and retains only metadata<strong>.<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>ExampleScenario: Labs and Research Centers<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"933\" height=\"664\" src=\"https:\/\/ciphermq.com\/blog\/wp-content\/uploads\/2025\/10\/image.png\" alt=\"\" class=\"wp-image-107\" srcset=\"https:\/\/ciphermq.com\/blog\/wp-content\/uploads\/2025\/10\/image.png 933w, https:\/\/ciphermq.com\/blog\/wp-content\/uploads\/2025\/10\/image-300x214.png 300w, https:\/\/ciphermq.com\/blog\/wp-content\/uploads\/2025\/10\/image-768x547.png 768w\" sizes=\"auto, (max-width: 933px) 100vw, 933px\" \/><\/figure>\n\n\n\n<p><strong>Locations Defined<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Labs (Senders)<\/strong>: These generate and encrypt data.<\/li>\n<\/ul>\n\n\n\n<p><strong>FL-LAB<\/strong> (Florida Laboratory) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p><strong>PA-LAB<\/strong> (Pennsylvania Laboratory)<\/p>\n\n\n\n<p><strong>MA-LAB<\/strong> (Massachusetts Laboratory)&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p><strong>IL-LAB<\/strong> (Illinois Laboratory)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Research Centers (Receivers)<\/strong>: These receive and decrypt data.<\/li>\n<\/ul>\n\n\n\n<p><strong>CA-RC<\/strong> (California Research Center)<\/p>\n\n\n\n<p><strong>NY-RC<\/strong> (New York Research Center)<\/p>\n\n\n\n<p><strong>SF-RC<\/strong> (San Francisco Research Center)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Central Server (Headquarters)<\/strong>: server, responsible for managing and distributing messages.<\/li>\n<\/ul>\n\n\n\n<p><strong>DC-HQ<\/strong> (Washington D.C Headquarters)<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div style=\"height:146px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Event<\/strong><\/p>\n\n\n\n<p><strong>FL-LAB<\/strong>: Generates raw data (FL-LAB_DAT_20251008_001), encrypts it for <strong>CA-RC<\/strong> and <strong>SF-RC<\/strong>, and sends via mTLS to <strong>DC-HQ<\/strong>.<\/p>\n\n\n\n<p><strong>PA-LAB<\/strong>: Generates report (PA-LAB_RPT_20251008_125), encrypts it for <strong>CA-RC<\/strong>, <strong>NY-RC<\/strong> and <strong>SF-RC<\/strong>, and sends via mTLS to <strong>DC-HQ<\/strong>.<\/p>\n\n\n\n<p><strong>MA-LAB<\/strong>: Generates raw data (MA-LAB_DAT_20251008_045), encrypts it for <strong>NY-RC<\/strong> and <strong>SF-RC<\/strong>, and sends via mTLS to <strong>DC-HQ<\/strong>.<\/p>\n\n\n\n<p><strong>IL-LAB<\/strong>: Generates report (IL-LAB_RPT_20251008_175), encrypts it for <strong>CA-RC<\/strong> and <strong>SF-RC<\/strong>, and sends via mTLS to <strong>DC-HQ<\/strong>.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Processing at Headquarters:<\/strong><\/p>\n\n\n\n<p>Routes messages to queues (ca_rc_queue, ny_rc_queue, sf_rc_queue) based on routing_key.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Reception at Research Centers:<\/strong><\/p>\n\n\n\n<p><strong>CA-RC<\/strong>: Receives and decrypts messages from <strong>FL-LAB, PA-LAB, IL-LAB<\/strong>.<\/p>\n\n\n\n<p><strong>NY-RC<\/strong>: Receives and decrypts messages from <strong>PA-LAB, MA-LAB<\/strong>.<\/p>\n\n\n\n<p><strong>SF-RC<\/strong>: Receives and decrypts messages from <strong>FL-LAB, PA-LAB, MA-LAB, IL-LAB<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Message Transmission Process Objective To enable secure data transmission from senders to receivers via a central server using CipherMQ, leveraging mTLS for authentication and x25519 encryption for message security. Process Steps Receivers send an ACK to the server, which updates acknowledged_time in the database, removes the message from the queue, and retains only metadata. ExampleScenario: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-101","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/ciphermq.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ciphermq.com\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ciphermq.com\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ciphermq.com\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ciphermq.com\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=101"}],"version-history":[{"count":4,"href":"https:\/\/ciphermq.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/101\/revisions"}],"predecessor-version":[{"id":124,"href":"https:\/\/ciphermq.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/101\/revisions\/124"}],"wp:attachment":[{"href":"https:\/\/ciphermq.com\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ciphermq.com\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ciphermq.com\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}