Nymchat প্রযুক্তিগত whitepaper
নিমচ্যাটে কোয়ান্টাম পরবর্তী মূল চুক্তি
ML-KEM-768 পাবলিক কীগুলি একটি ডিরেক্টরি বা রেজিস্টার ছাড়াই আমাদের উপর বিতরণ করে, এবং তাদের একটি গোপনীয়তা থেকে বের করে দেয় যা কোন পাবলিক মূল্য প্রকাশ করে না।
একটি মেসেজারকে একটি পাস-কেনটিম কী বিনিময় যোগ করা বেশিরভাগ ক্ষেত্রে ক্রিপ্টোগ্রাফি সমস্যা নয়. প্রাথমিকগুলি স্ট্যান্ডার্ড করা হয় এবং লাইব্রেরিগুলি বিদ্যমান। দ্বিতীয় পাবলিক কী এবং একটি বিকেন্দ্রীভূত নেটওয়ার্কের স্পষ্টভাবে বলার মতো কোথাও নেই। এই কাগজটি বর্ণনা করে যে নিমচ্যাট কীভাবে উত্তর দেয়-দ্বিতীয় কীটি কোথা থেকে আসে, এটি কীভাবে যাদের প্রয়োজন তাদের কাছে পৌঁছায় এবং ইন্টারফেসকে ফলাফল সম্পর্কে কী দাবি করার অনুমতি দেওয়া হয়-এবং, শেষ বিভাগে, সেই ফলাফলটি কী সুরক্ষা দেয় না।
এই পৃষ্ঠাটি সুবিধার জন্য মেশিন-অনুবাদিত। ইংরেজি মূল সংস্করণ প্রযোজ্য.
1সমস্যা
আমাদের ব্যক্তিগত বার্তাগুলি এনক্রিপ্ট করা হয় NIP-44, যার দুটি আলাদা করা যায় এমন অর্ধেক রয়েছে। অর্ধেকটি যা প্লেইনটেক্সটকে স্ক্র্যাম্বল করে-একটি এইচএমএসি-এসএইচএ256 ট্যাগ সহ সিএইচএ20, এর মাধ্যমে কী করা হয়। হংকং (আর. এফ. সি 5869)-একটি কোয়ান্টাম কম্পিউটার দ্বারা অর্থপূর্ণভাবে হুমকির সম্মুখীন হয় না; গ্রোভারের অ্যালগরিদমের জন্য একটি প্রতিসম কী-এর বিপরীতে একটি বর্গমূল স্পিডআপ খরচ হয় এবং 256 বিট তা শোষণ করে। একমত চাবিটির উপর রয়েছে উপবৃত্তাকার-বক্ররেখা ডিফি-হেলম্যান। এসইসিপি256কে1, এবং শোরের অ্যালগরিদম বিচ্ছিন্ন লোগ্রামটি সরাসরি সমাধান করে. তার পাবলিক সমতুল্য থেকে একটি বেসরকারি কী পুনরায় প্রদর্শন করে প্রতিটি ভাগ্যবান গোপনীয়তা যে কী কখনও উত্পাদিত।
এই ধরণের হুমকি এমন একটি মেশিনের অস্তিত্ব পর্যন্ত দেরী করা হয় না. স্টোরেজের সাথে একটি প্রতিপক্ষ আজ এনক্রিপ্ট টেক্সট রেকর্ড করতে পারে এবং যখনই ক্ষমতা আসে তখন এটি ডিক্রিপ্ট করতে পারে. এখনও গুরুত্বপূর্ণ যা কিছু পাঠানো হয়েছে তা ইতিমধ্যে ক্ষতিগ্রস্ত হয়েছে।
১.১ এই প্রশ্নের উত্তর
প্রশমনটি ভালভাবে বোঝা যায়ঃ ধ্রুপদী বিনিময়ের পাশাপাশি একটি পোস্ট-কোয়ান্টাম কী এনক্যাপসুলেশন প্রক্রিয়া চালান, যাতে আক্রমণকারীকে যে কোনও কিছু পড়ার জন্য উভয়ই ভেঙে ফেলতে হয়। নিমচ্যাট এমএল-কেইএম-768 ব্যবহার করে (ফিফা ২০৩) এটি অবিলম্বে একটি বিতরণ সমস্যা উত্থাপন করে:
আজ অ্যালিসকে বার্তা দেওয়ার জন্য আপনার একটি জিনিস দরকারঃ তার এনপাব। একটি পোস্ট-কোয়ান্টাম এক্সচেঞ্জ যোগ করুন এবং আপনার দ্বিতীয়টি প্রয়োজন-তার এমএল-কেইএম পাবলিক কী। সেই কীটি কোথায় থাকে এবং তাকে কিছু পাঠানোর আগে আপনি কীভাবে তা পাবেন?
আপনি এটি কাগজে লিখতে পারেন, উচ্চতরভাবে পড়তে পারেন, বা একটি স্ক্রিন থেকে স্ক্যান করতে পারেন, এবং এটি আপনার জন্য এনক্রিপশন করার জন্য কেবলমাত্র কেউ প্রয়োজন। একটি ML-KEM-768 পাবলিক কী 1,184 বাইট। এটি উচ্চতরভাবে পড়তে পারে না, এটি একটি ব্যবহারকারীর নামে ঢুকবে না, এবং এটি কেবলমাত্র 32 বাইটের একটি পরিচিতি ছাড়া একটি QR কোডে অন্তর্ভুক্ত নয়।
কঠিন অংশ হল যে একটি দ্বিতীয় চাবিকাঠি তিনটি আলাদা সমস্যা নিয়ে আসে, এবং এই কাগজের বাকি অংশগুলি তাদের একটি উত্তর:
- এটি প্রতিস্থাপন করা যেতে পারে। কেউ এক নজরে পড়তে পারে না একটি চাবিকাঠি ঠিক এমন জিনিস যা একটি আক্রমণকারী নিজের জন্য বিনিময় করে।
- এটি একটি ব্যবহারকারীর ডিভাইসগুলিতে একমত হতে হবে। একটি ফোনে একই অ্যাকাউন্ট এবং একটি ল্যাপটপ একই চাবি উপস্থাপন করতে হবে, অথবা একটিতে সিল করা বার্তা অন্যটিতে খোলা যাবে না।
- এটা হারিয়ে যেতে পারে। পাবলিক চাবি একটি গোপন থেকে পুনরায় প্রকাশ করা হয়, তাই যা সত্যিই বেঁচে থাকতে হবে তা সেই গোপনীয়তা - এবং নির্মাণ দ্বারা অন্য কিছুই এটি পুনর্গঠন করে না।
2ডিজাইন বাধা
চারটি সীমাবদ্ধতা উত্তরটিকে আকার দেয় এবং যে কোনও কোড লেখার আগে তারা বেশিরভাগ সুস্পষ্ট নকশাকে বাতিল করে দেয়।
- যতটা সম্ভব কম রহস্য। প্রতিটি অতিরিক্ত গোপনীয়তা আপনার ইতিহাস হারানোর অন্য উপায়, এবং কেউ যিনি একটি nsec সাবস্ক্রাইব করতে জানেন সে অন্য কিছু সাবস্ক্রাইব করতে জানবে না। বিভাগ 3.1 দেখায় যে এটি সরাসরি পূরণ করা যাবে না - nsec থেকে উত্পাদিত একটি পাস-কোয়েন্টি কী কোনও পাস-কোয়েন্টি সুরক্ষা সরবরাহ করে না - তাই নকশাটি ঠিক একটাই গোপনীয়তা ব্যয় করে এবং আর কিছুই না: প্রতিটি পরিচিতিতে একবার উত্পাদিত, একই আকারে এবং একই জায়গায় উপস্থাপিত একটি কৌশল উপাদান, যাতে যে কেউ জানে কিভাবে একটি বজায় রাখা যায় অন্যটি কীভাবে বজায় রাখা যায়।
- কোনো কর্তৃত্ব নেই। এমন কোনও সার্ভার নেই যা বিশ্বাসযোগ্য হতে পারে যে কোন কী কার অন্তর্গত। এই ধরনের যে কোনও সার্ভার সেই বিন্দুতে পরিণত হয় যেখানে বার্তাগুলি পুনঃনির্দেশিত করা যেতে পারে।
- একাধিক যন্ত্র, একটি পরিচয়। একটি Nostr পরিচয় সাধারণত একই সময়ে কয়েকটি ক্লায়েন্ট থেকে ব্যবহৃত হয়. যে কোনও মূল উপাদানটি তাদের সবগুলিতে একইভাবে শেষ করতে হবে, এবং সেই পথগুলি যে সেখানে নিয়ে যাচ্ছে সেগুলি নিজেদের দ্বারা প্রতিপক্ষের দ্বারা পাঠযোগ্য হতে পারে না যে বৈশিষ্ট্যটি প্রতিরক্ষা করছে।
- কোনো আলোচনা নয়। আপনি কোন সাইফারগুলিকে সমর্থন করেন? & rdquo;-এর যে কোনও ইন-ব্যান্ড এক্সচেঞ্জ এমন একটি পৃষ্ঠ যা আক্রমণকারী দুর্বল বিকল্পটিকে বাধ্য করার জন্য স্ট্রিপ করতে পারে। নকশায় ডাউনগ্রেড করার জন্য কিছুই থাকতে হবে না।
3স্বাধীন গোপনীয়তা
লোড-ভিত্তিক সিদ্ধান্ত হল যে ML-KEM decapsulation কী কোনও পাবলিক মূল্য প্রদর্শনযোগ্য মূল উপাদান থেকে বীজ করা হয়।
pqRoot = 32 bytes from a CSPRNG, generated ONCE per identity
seed = HKDF-Expand(
HKDF-Extract(salt = "nym-pq-root-v2", IKM = pqRoot),
info = "mlkem768/epoch/" || epoch,
64 bytes)
(ek, dk) = ML-KEM-768.KeyGen(seed)
রুটটি ব্যবহারকারীর কাছে একটি nsec এর মত উপস্থাপন করা হয়: বেগম32 মানবতাবাদী প্রসঙ্গে
nympqএতে পড়া হয় যেমন nympq1…, একই প্রদর্শন ইন্টারফেসের পিছনে পরিচয় স্ক্রিনে nsec এর পাশে প্রদর্শিত, একই কন্ট্রোল দিয়ে কপি করা, কখনো লগ করা হয় না এবং কখনো পরিষ্কারে কোথাও পাঠানো হয় না. এটি একটি পাসওয়ার্ড নয় এবং এটি একটি লগইন নয়।
লবণ উদ্দেশ্যমূলকভাবে ডোমেন-পৃথক করা হয়, তাই অন্য কোনও গোপন কখনও একই কীপেয়ার পেতে পারে না। epoch কাউন্টার ড্রাইভ ঘূর্ণন (ধারা 9)।
3.1 কেন চাবি পরিচিতি চাবি থেকে উত্পাদিত করা যাবে না
স্পষ্ট নকশাটি ব্যবহারকারীর ইতিমধ্যে রয়েছে এমন গোপনীয়তা থেকে কীবোর্ডের বীজ বীজ করা হয়:
seed = HKDF(salt = "…", IKM = nsec) // do not do this
এটি চারটি কারণে আকর্ষণীয়, সেগুলি সবই বাস্তবঃ ব্যাক আপ করার জন্য নতুন কিছু নয়, কারণ এন. এস. ই. সি ইতিমধ্যে ব্যাকআপ; প্রতিটি ডিভাইস নির্মাণের মাধ্যমে সম্মত হয়, কোনও সিঙ্ক্রোনাইজেশন প্রোটোকল ভুল হওয়ার জন্য নয়; প্রতি পরিচয়ের জন্য একটি প্রতিস্থাপনযোগ্য ঘোষণা স্পষ্টতই সঠিক, কারণ ডিভাইসগুলি কী সম্পর্কে দ্বিমত পোষণ করতে পারে না; এবং এটি প্রকাশিত হওয়ার আগে বিদ্যমান কী, যাতে একজন ক্লায়েন্ট প্রথম দৌড়ে নিজের কাছে কিছু সীলমোহর করতে পারে।
চারটি সুবিধা মূল্যহীন, একটি কারণে। শোরের অ্যালগরিদম একটি প্রকাশিত এনপাবের বিরুদ্ধে চলে যা এন. এস. সি ফলাফল দেয়। বীজ ব্যুৎপত্তি এন. এস. সি-এর উপর একটি সর্বজনীন অ্যালগরিদম। সুতরাং যে প্রতিপক্ষ ধ্রুপদী অর্ধেকটি ভেঙে দেয় সে একই এইচ. কে. ডি. এফ চালিয়ে কোয়ান্টাম-পরবর্তী অর্ধেকটি পুনর্গঠন করে যা অন্য সবাই চালায়। ফসল-এখন-ডিক্রিপ্ট-পরবর্তী বিরুদ্ধে-যে বৈশিষ্ট্যটি থামানোর জন্য বিদ্যমান একটি হুমকি-এইভাবে প্রাপ্ত একটি কী কিছুই যোগ করে না।
ML-KEM decapsulation চাবিকাঠি entropy থেকে আসতে হবে যা nsec থেকে উত্পাদিত হয় না এবং ক্লাসিকাল-মাত্র এনক্রিপশন অধীনে কখনও প্রেরিত হয় না।
সেই নিয়মের দ্বিতীয় ধারাটি প্রথমটির মতোই কাজ করে। একটি স্বাধীনভাবে তৈরি গোপনীয়তা যা একটি সাধারণ এনআইপি-44 বার্তার মধ্যে ব্যবহারকারীর ডিভাইসের মধ্যে সিঙ্ক্রোনাইজ করা হয় তা অতিরিক্ত পদক্ষেপের সাথে একই ব্যর্থতাঃ একজন প্রতিপক্ষ আজ সেই বার্তাটি রেকর্ড করে এবং তার ক্লাসিক্যাল কীটি পরে পুনরুদ্ধার করে এবং মূলটি পড়ে যায়। এই কারণেই পরবর্তী বিভাগের পথগুলি সেগুলি পথ, এবং কেন তাদের কোনওটিই আপনার অন্য device.&rdquo-এ পাঠায় না।
3.2 ব্যবহারকারীর অন্যান্য ডিভাইসগুলিতে রুট পেতে
অধ্যায় 2 এর সীমাবদ্ধতা 3 - একটি পরিচয়, একাধিক ডিভাইস - এখানে অ্যারিটেমিক দ্বারা সন্তুষ্ট করা যাবে না, কারণ পুরো বিষয়টি হল যে কীটি ইতিমধ্যে ডিভাইসগুলি ভাগ করে নেওয়ার কোনও ফাংশন নয়। nympq1… নিজেদের কোড
মূলটি এইভাবে প্রদর্শিত হয় nympq1… এন. এস. ই. সি-এর পাশে, এবং একটি দ্বিতীয় যন্ত্র এটি একই প্যানেলে আটকিয়ে গ্রহণ করে। এটি পুরো প্রক্রিয়া। যে যন্ত্রটিকে কোড দেওয়া হয়নি সে অংশ নিতে পারে না, যা ধারা 4.2 বর্ণনা করে।
ম্যানুয়াল ট্রান্সফার প্রথম ধাপের পরিবর্তে একটি ইচ্ছাকৃত তল। ধারা 3.1-এর নিয়মে বলা হয়েছে যে মূলটি কখনই ক্লাসিক্যাল-শুধুমাত্র এনক্রিপশনের অধীনে ভ্রমণ করতে পারে না এবং প্রতিটি প্রক্রিয়া যা এটিকে স্বয়ংক্রিয় করে তুলবে-একটি রিলে-এর মাধ্যমে সিঙ্ক করা, পরিচয় কী-তে মোড়ানো-ঠিক তা লঙ্ঘন করে। ব্যবহারকারী যে পদক্ষেপটি সম্পাদন করে তার কারণেই সুরক্ষাটি আসল।
ফরম্যাটটি একটি প্যাচ পথের জন্য জায়গা ছেড়ে দেয়: একটি রেকর্ড একটি প্যাচ তালিকা বহন করতে পারে, প্রতিটি একটি AEAD blob একটি কী ব্যবহারকারী অন্য ডিভাইসে পুনরাবৃত্তি করতে পারেন - একটি passkey PRF আউটপুট, উদাহরণস্বরূপ। nympq1… কোডই একমাত্র উপায়। ধারা 10.1-এ বলা হয়েছে যে এর জন্য কত খরচ হবে।
রেকর্ডটি নিজেই তার নিজস্ব সেটিংস বিভাগে থাকে, nymchat-pq-root, এবং অন্যান্য বিভাগগুলি যেভাবে কাজ করে সেভাবে সিঙ্ক করে। এমনকি কোনও মোড়ক ছাড়াই এটি প্রয়োজনীয় কাজ করেঃ এর উপস্থিতি হল কিভাবে একটি দ্বিতীয় যন্ত্র জানতে পারে যে এই পরিচয়ের ইতিমধ্যে একটি মূল রয়েছে, যা এটি একটি প্রতিদ্বন্দ্বীকে তৈরি করতে বাধা দেয় (ধারা 3.3)।
এর nymchat-pq-root বিভাগ MUST না রুট-ডিরাইভড এম. এল-কে. ই. এম কী-তে এনক্রিপ্ট করা। সেই সারিতে মূলের একমাত্র অনুলিপি থাকে, তাই মূল থেকে উদ্ভূত কী-এর নিচে এটি সীলমোহর করা একটি তালা যার চাবি বাক্সের ভিতরে থাকেঃ যে এটি লিখেছিল তা সহ কোনও ডিভাইস এটি খুলতে পারে না। এটি ক্লাসিকভাবে সিল করা হয়-এন. আই. পি-44 নিজের জন্য-বা একেবারেই নয়। এটি এমন একটি জায়গা যেখানে নকশাটি কেবল ক্লাসিক-সুরক্ষা গ্রহণ করে এবং এটি বহন করতে পারেঃ সারিতে আজ কোনও মূল নেই, কেবলমাত্র একটি বিদ্যমান।
প্রতিটি অন্যান্য সেটিং ক্যাটাগরি রোড-ভিত্তিক কী ব্যবহার করতে পারে এবং করা উচিত. এটি একমাত্র ব্যতিক্রম, এবং এটি শক্তির পরিবর্তে সার্কুলারি সম্পর্কে একটি ব্যতিক্রম।
৩.৩ প্রজন্ম ও গ্রহণ
বুটের সময়, একটি স্থায়ী পরিচয় রাখা, একটি ক্লায়েন্ট এই আদেশে কাজ করে:
- একটি বিদ্যমান খুঁজুন
nymchat-pq-rootরেকর্ড। - রেকর্ড পাওয়া গেছে, এবং এই যন্ত্রটি এটিকে খুলে ফেলতে পারে - এটি গ্রহণ করুন এবং এই পরিচয়টি পোস্ট-কোয়ান্টাম সক্ষম হিসাবে ঘোষণা করুন।
- রেকর্ড পাওয়া গেছে, এবং এই ডিভাইসটি এটি আউট করতে পারে না - একটি নতুন রুট তৈরি করবেন না, এবং কোনও ঘোষণা প্রকাশ করবেন না। ব্যবহারকারীকে এই ডিভাইসটি লিঙ্ক করার জন্য অনুরোধ করুন
nympq1…একটি ডিভাইস থেকে কোড যা ইতিমধ্যে এটি আছে। - রেকর্ড নেই - একটি মূল তৈরি করুন, রেকর্ডটি প্রকাশ করুন, ঘোষণা করুন এবং দেখান
nympq1…ব্যবহারকারীকে একবার কোড দিন যাতে তারা এটি সংরক্ষণ করতে পারে।
ধাপ 3 হল এমন একটি পদক্ষেপ যা ভুল হওয়া সহজ, এবং এই কারণেই প্রতিটি বাস্তবায়নের উপর ছেড়ে দেওয়ার পরিবর্তে ক্রমটি লেখা হয়। দুটি ডিভাইস যা প্রতিটি একটি মূল তৈরি করার সিদ্ধান্ত নেয় তা একটি পরিচয়ের অধীনে দুটি স্বাধীন মূল তৈরি করে এবং এটিই সেই ব্যর্থতা যা প্রতিরোধ করার জন্য এই ক্রমটি বিদ্যমান।
4যোগ্যতা ঘোষণা
উত্পাদিত keypair এর পাবলিক অর্ধেক একটি ঠিকানা হিসাবে প্রকাশ করা হয়
নাইপ-01
ইভেন্ট-টাইপ 30078, ট্যাগ করা হয়েছে nym-pq:
{
"kind": 30078,
"tags": [
["d", "nym-pq"],
["t", "nym-pq"],
["expiration", "<unix seconds>"]
],
"content": {
"v": 2,
"alg": "mlkem768",
"nym": 1,
"epoch": 0,
"pk2": "<base64url ML-KEM-768 encapsulation key>",
"exp": <unix seconds>,
"devices": [ ... ]
}
}
অ্যাড্রেসেবল মানে রিয়েল প্রতিটি ইভেন্ট (কিন্ড, pubkey, ডি-ট্যাগ) রাখে, তাই একটি রিপাবলিক আগের ঘোষণাটি স্থানান্তর করে।
স্বাক্ষর হল বাঁধাই। ইভেন্টটি সনাক্তকরণ কী দ্বারা স্বাক্ষরিত হয়, তাই দাবি “এই ML-KEM কী এই npub” এর অন্তর্ভুক্ত হয়, এটি ঠিক NPUB এর মতো শক্তিশালী।
ঘোষণার মেয়াদ শেষ হয়ে যাচ্ছে। সাত দিন NIP-40 মেয়াদ শেষ হয়ে যাওয়া, প্রতি 24 ঘন্টায় পুনরায় প্রকাশিত হওয়া, রেকর্ডটি এমন একটি ক্লায়েন্ট সম্পর্কে একটি বিবৃতি রাখে যা এখনও চলছে। মূলটি কখনই মেয়াদ শেষ হয় না; শুধুমাত্র এটি সম্পর্কে দাবি করা হয়।
একটি অকার্যকর ঘোষণা ঠিক তেমনই পড়া হয় যা কখনও একটি চাবি বহন করে নাঃ সহকর্মীরা সাধারণ এনআইপি-44 পাঠায়, যা প্রতিটি লগইন পড়তে পারে, এবং ক্লায়েন্ট তার পরবর্তী সংযোগে পোস্ট-কোয়ান্টাম এক্সচেঞ্জ পুনরায় শুরু করে, যখন এটি পুনরায় প্রকাশিত হয়। তাই এক সপ্তাহের বেশি সময় ধরে চুপ করে থাকার জন্য ব্যবধানের সময় পাঠানো বার্তাগুলির জন্য সুরক্ষা খরচ হয়-সেগুলি কোয়ান্টাম-প্রতিরোধী না হয়ে ক্লাসিকভাবে এনক্রিপ্ট করা হয়-এবং অন্য কিছু খরচ হয় না। ডেলিভারি প্রভাবিত হয় না, ইতিমধ্যে প্রাপ্ত কিছুই অপঠনীয় হয় না, এবং ফিরে আসার পরে কোনও পদক্ষেপের প্রয়োজন হয় না।
এই অসমতা একটি দুর্ঘটনার পরিবর্তে মেয়াদ শেষ হওয়ার কারণ। একটি ছাড়া, একটি রেকর্ড তার নাম করা কী-কে ছাড়িয়ে যায়ঃ একটি ডিভাইস যা মুছে ফেলা হয়, পুনরায় সেট করা হয়, বা তার মূল প্রতিস্থাপন করা হয় এমন একটি কী-তে আবদ্ধ করার জন্য একটি স্থায়ী নির্দেশ ছেড়ে যায় যা কেউ আর ধরে রাখে না, এবং এর নীচে পাঠানো বার্তাগুলি উভয় পাশে কোনও ত্রুটি ছাড়াই হারিয়ে যায়। সাত দিন সেই উইন্ডোটিকে সীমাবদ্ধ করে এবং রিলেগুলিকে ক্লায়েন্টদের উপর নির্ভর করার পরিবর্তে রেকর্ডটি ড্রপ করতে দেয়।
মূল ক্ষেত্রটি তার বিন্যাসের নাম দেয়। মাঠটি হচ্ছে pk2, এবং ডিগ্রীটি চুক্তিটির অংশ নয়: এটি ব্যবহার করা যেতে পারে যে কীট ব্যবহার করা যেতে পারে এমন পাইলোড ফরম্যাটের নাম দেয়. একটি পাঠক যা ক্ষেত্রটি চিনতে পারে না, "নিমচ্যাট ক্লায়েন্ট, কোন পাস-কোয়েন্টি কী" এবং সাধারণ NIP-44 পাঠায়, যা প্রতিটি লগইন পড়তে পারে। যা সঠিক ব্যর্থতা দিক, এবং এটি একটি নিয়ম হিসাবে উল্লেখ করা উচিত যে ফরম্যাট নম্বর প্রয়োগ করা হয়: একটি অননুমোদিত সক্ষমতা দাবি সুরক্ষা খরচ করতে হবে, কখনো প্রেরণ করতে পারে না।
4. 1 অনুপস্থিতি অর্থবহ এবং ত্রিমুখী।
একটি সূক্ষ্ম কিন্তু গুরুত্বপূর্ণ বিবরণঃ ঘোষণাটি প্রতিটি নিমচ্যাট ক্লায়েন্ট দ্বারা প্রকাশিত হয়, শুধুমাত্র পোস্ট-কোয়ান্টাম-সক্ষম নয়, এবং মূল ক্ষেত্রটি ঐচ্ছিক। এটি দুটির পরিবর্তে তিনটি স্বতন্ত্র অবস্থা প্রদান করেঃ
| পর্যবেক্ষণ করা হয়েছে। | মানে | আচরণ পাঠান |
|---|---|---|
| একটি চাবি সহ ঘোষণা | নিমচ্যাট, পোস্ট-কোয়ান্টাম সক্ষম | হাইব্রিড |
| ঘোষণা, কোনও চাবি নেই | Nymchat, শুধুমাত্র ধ্রুপদী-পোস্ট-কোয়ান্টাম বন্ধ, বা একটি ডিভাইস যা এখনও পরিচয়ের মূলের সাথে সংযুক্ত নয় | ধ্রুপদী এনআইপি-17 |
| কোনও ঘোষণা নয়। | অজানা ক্লায়েন্ট. যে কোনও Nostr বা Bitchat ব্যবহারকারী হতে পারে | ধ্রুপদী, প্লাস একটি সামঞ্জস্যপূর্ণ মোড়ানো |
একটি চাবিহীন বিজ্ঞপ্তি একটি স্বাক্ষরিত বিবৃতি যে পাঠক Nymchat পরিচালনা করে, যা পাঠানো পথটি একটি অনুমানযোগ্য ক্রস-প্রোটোকল প্যাকেজ বাইপ করতে দেয় যা অন্যথায় এটি সনাক্ত করতে পারে না যে কেউ জন্য অন্তর্ভুক্ত করতে হবে।
4.2 একটি ডিভাইস যা রুট খুলতে পারে না নীরব থাকে
ঘোষণাটি প্রতিস্থাপনযোগ্যঃ প্রতি পরিচয়ে একটি ইভেন্ট, শেষ লেখাটি জিতে যায়। এটিই একক-রেকর্ড নকশাকে কাজ করে তোলে এবং এটি একটি লিঙ্কবিহীন ডিভাইসকে বিপজ্জনক করে তোলে যদি এটি প্রকাশ করে। একটি ডিভাইস যা নিজের জন্য তৈরি করা একটি কী ঘোষণা করে তা আসল রেকর্ডটি বন্ধ করে দেবে এবং প্রতিটি পিয়ারকে এমন একটি কী-এর অধীনে এনক্রিপ্ট করতে পাঠাবে যা অন্য ডিভাইসগুলি খুলতে পারে না।
সুতরাং একটি ডিভাইস যা একটি রুট জানে কিন্তু এটি খুলতে পারে না, এটি কোন বিজ্ঞপ্তি প্রকাশ করে না এবং এটি অ্যাপ্লিকেশনের বাইরে লক করা হয় না: এটি এখনও প্রতিটি বার্তাটি পড়ে যাতে তার জন্য কীগুলি রয়েছে এবং এখনও ক্লাসিকভাবে পাঠায়, যখন ব্যবহারকারীকে এটি লিঙ্ক করার জন্য অনুরোধ করে।
5আবিষ্কার এবং পাঠানোর সিদ্ধান্ত
ক্লায়েন্টরা সমবয়সীদের কী দুটি উপায়ে শেখে। একটি স্ট্যান্ডিং সাবস্ক্রিপশন ব্যবহারকারী প্রকৃতপক্ষে যাদের সাথে যোগাযোগ করে তাদের অন্তর্ভুক্ত করে-খোলা কথোপকথন এবং গোষ্ঠী সদস্য-যাতে তাদের ঘোষণাগুলি সাধারণ ঘটনা হিসাবে আসে। একজন সমবয়সী প্রথমবার মিলিত হওয়ার জন্য, একটি এক-শট প্রশ্ন প্রেরণের সময় চলে, যা 2.5 সেকেন্ডে সীমাবদ্ধ থাকে; যদি এটি সমাধান না করে, বার্তাটি ক্লাসিক হয়, যা একটি নতুন ব্যর্থতা মোডের পরিবর্তে পোস্ট-কোয়ান্টাম যোগ করার আগে বিদ্যমান আচরণ।
একটি নেতিবাচক ফলাফল চিরদিনের চেয়ে দশ মিনিটের জন্য ক্যাশ করা হয়. একটি ব্যবহারকারী যিনি একটি নতুন ডিভাইস সংযুক্ত করে, অথবা যিনি একটি ব্রাউজার-প্রসারী লগইন থেকে একটি স্থানীয় কী থেকে স্থানান্তরিত করে, একটি পোস্ট-কয়ান্টাম ক্ষমতাসীন মধ্য কথোপকথন হয়ে ওঠে, এবং একটি স্থায়ীভাবে ক্যাশ করা “no” তাদের বিজ্ঞপ্তিটির জীবনের জন্য ক্লাসিক এনক্রিপশনে রাখবে।
5.1 কেন কোনও ডাউনলোড আক্রমণ নেই
রুট করার সিদ্ধান্তটি একটি প্রশ্নের মধ্যে কমে যায়:
pq = (we hold a signed, unexpired ML-KEM key for this recipient)
কোনও সক্ষমতা আলোচনা নেই, কোনও সমর্থিত-অ্যালগরিদম তালিকা নেই, এবং কোনও আক্রমণকারী দুর্বল পথকে বাধ্য করার জন্য কোনও ক্ষেত্র পরিষ্কার করতে পারে না। ঘোষণাটি ধরে রাখা হয় একটি অপসারণ বা বাদ দেওয়া বিজ্ঞপ্তি ব্যর্থতা মোড হল যে বার্তাটি ক্লাসিক হয়ে যায় - এই বৈশিষ্ট্যটি আগে স্ট্যাটাস কুও - এর পরিবর্তে যে একটি হাইব্রিড বার্তাটি কিছু ভুয়া হয়ে যায়।
বিপরীতটিও থাকে এবং আরো গুরুত্বপূর্ণ: একটি ক্লায়েন্ট হাইব্রিড পাঠায় শুধুমাত্র যখন এটি একটি চাবি রাখে, এবং চাবি রাখা প্রমাণ করে যে রিসেপশনকারীটি decapsulate করতে পারে. There is no state in which a message is sent post-quantum to someone who cannot read it.
6হাইব্রিড নির্মাণ
নিমচ্যাট এনআইপি-44 প্রতিস্থাপন করে না। এটি এটিকে আবৃত করে। একটি অপরিবর্তিত এনআইপি-44 সাইফারটেক্সট হল ভিতরের স্তর, এবং এমএল-কেইএম কীগুলি এর চারপাশে একটি বাইরের এইএডিঃ
inner = nip44_encrypt(plaintext, conversation_key(sender, recipient))
info = "nymchat-pq2" || sender_secp_pk || recip_secp_pk || kem_ct || recip_kem_pk
prk = HKDF-Extract(salt = "nymchat-pq2-v1", IKM = kem_ss)
key = HKDF-Expand(prk, info || "key", 32)
nonce = HKDF-Expand(prk, info || "nonce", 12)
outer = ChaCha20-Poly1305(key, nonce, plaintext = inner, aad = info)
payload = "pq2." || base64url(kem_ct) || "." || base64url(outer)
বার্তাটি পড়ার জন্য উভয় রহস্যই পুনরুদ্ধার করতে হবেঃ বাইরের স্তরটি শুধুমাত্র একটি এনআইপি-44 সাইফারটেক্সট প্রদান করে, এবং যা খোলার জন্য ধ্রুপদী ইসিডিএইচ প্রয়োজন। একজন কোয়ান্টাম প্রতিপক্ষ যে সেকেপ256কে1 ভেঙে দেয় সে অভ্যন্তরীণ কী পায় এবং এখনও এমএল-কেইএম-এর মুখোমুখি হয়; এমএল-কেইএম-এর একটি বিরতি বাইরের স্তরটি ছিঁড়ে ফেলে এবং এনআইপি-44-কে দাঁড়িয়ে রাখে। প্রতিটি ইনপুট তার স্থান অর্জন করেঃ
kem_ssকেবলমাত্র বাইরের স্তরকেই চাবিকাঠি দেয়. এই উত্পাদনের কিছুই কাঁচা ECDH আউটপুটকে স্পর্শ করে না, যা অধ্যায় 6.1 এর মাধ্যমে ঘটে।kem_ct,recip_kem_pkএবং উভয় পরিচিতি কী সংশ্লিষ্ট ডেটা হিসাবে সংযুক্ত করা হয়, তাই বাইরের স্তরটি সঠিক ট্রান্সক্রিপ্টের প্রতিশ্রুতিবদ্ধ হয় যা এটি উত্পাদন করে।
প্রতিটি বার্তায় নতুন করে এনক্যাপসুলেশন করা হয়। প্রাপকের এম. এল-কে. ই. এম কী দীর্ঘস্থায়ী, তবে প্রতিটি বার্তায় একটি স্বাধীন সাইফারটেক্সট থাকে এবং তাই একটি স্বাধীন বার্তা থাকে।
kem_ssএটিই ননসকে এলোমেলো করার পরিবর্তে আহরণ করা বলে মনে হয়ঃ
চাচা20-পলি1305
একটি (key, nonce) জুটি পুনরায় ব্যবহার করে এটি ভেঙে যায়, এবং এখানে প্রতিটি বার্তা জন্য চাবিকাঠি নিজেই নতুন, তাই কোনও জুটি পুনরাবৃত্তি করতে পারে না।
6. 1 কেন স্তরগুলি আলাদা থাকে
বিকল্পটি হল উভয় গোপনীয়তা একক কথোপকথন কীতে মিশ্রিত করা এবং এটি NIP-44 এ হস্তান্তর করা:
ck = HKDF-Extract(salt = "…",
IKM = ecdh_x || kem_ss || …) // do not do this
এই নির্মাণ ক্রিপ্টোগ্রাফি হিসাবে শোনা যায়. এটি একটি কাঠামোগত সমস্যা আছে: এটি প্রয়োজন
ecdh_xফরেক্স ট্রান্সমিশন (NIP-07) বা একটি দূরবর্তী স্বাক্ষরকারী (NIP-46) কখনোই সেই মান ফেরত দেয় না. এটি ডাক্তারের পক্ষ থেকে NIP-44 প্রয়োগ করে এবং একটি অ্যাকাউন্ট টেক্সট ফেরত দেয়, যা কোথাও অ্যাপ্লিকেশন পৌঁছাতে পারে না কোথাও কী রাখার পুরো পয়েন্ট।
তাই গোপনীয়তাগুলি মেশানো প্রতিটি লগইনকে বাদ দেয় যা স্বাক্ষরকারীর মধ্যে পরিচয় কী রাখে, যা বলা যায় সবচেয়ে সতর্ক ব্যবহারকারী, এবং কী ডেরিভেশনের উপর কোনও পরিমাণ কাজ এটিকে পরিবর্তন করতে পারে না। স্তরটি নির্ভরতা সরিয়ে দেয়ঃ এনআইপি-44 সম্পূর্ণ থাকে এবং যা পরিচয় কী ধারণ করে তার দ্বারা উত্পাদিত হয়, স্বাক্ষরকারী অন্তর্ভুক্ত, যখন কেইএম অর্ধেক ক্লায়েন্ট সরাসরি ধরে রাখা পুনরুদ্ধার কোড থেকে গণনা করা হয়। স্বাক্ষরকারী লগইনগুলি উভয় দিকের সাধারণ পোস্ট-কোয়ান্টাম অংশগ্রহণকারী।
খরচ ব্যান্ডউইথ, এবং এটি ছোট নয়। এম. এল-কে. ই. এম সাইফারটেক্সট 1,088 বাইট এবং প্রতিটি বার্তায় রাইড করে, বেস64ইউআরএল-এনকোডেড 1,451 অক্ষরে; বাইরের এ. ই. এ. ডি একটি 16-বাইট পলি1305 ট্যাগ যোগ করে এবং এন. আই. পি-44 পেলোডকে প্রসারিত করে যা এটি তৃতীয়াংশ দ্বারা মোড়ায়। একটি 50-অক্ষরের বার্তা 176 বাইট থেকে 1,712-এ এবং 2,000-অক্ষরের বার্তা 2,820 থেকে 5,238-এ বৃদ্ধি পায়। বার্তাটি যতই ছোট হোক না কেন প্রতি বার্তায় মেঝে প্রায় 1.5 কেবি হয়, যা একটি ভাগ করা গোপনীয়তা পুনরায় ব্যবহার করার পরিবর্তে প্রতিবার নতুন করে এনক্যাপসুলেট করার মূল্য।
২.২ নিজস্ব প্যাকেজিং
এর pq2. উপসর্গ স্থাপনকে ক্রমবর্ধমান করে তোলেঃ এটি স্ব-বর্ণনা, তাই একজন ক্লায়েন্ট কোনও ট্যাগকে বিশ্বাস করার পরিবর্তে বা কোনও সহকর্মী কী সমর্থন করে তা মনে রাখার পরিবর্তে পে-লোড পরিদর্শন করে ডিক্রিপশনের পথটি বেছে নেয়। যে পাঠক কোনও উপসর্গকে চিনতে পারে না সে পে-লোডটি ভুলভাবে পড়ার পরিবর্তে খুলতে ব্যর্থ হয় এবং উভয় পক্ষের আগে সিল করা বার্তাগুলি কোনও স্থানান্তর ছাড়াই সাধারণ এন. আই. পি-44-এর মতো পাঠযোগ্য থাকতে পারে।
ML-KEM decapsulation কখনোই ব্যর্থ হওয়ার জন্য ডিজাইন করা হয়েছে: একটি ভুল আকারের চিঠির টেক্সটের ভিত্তিতে, Fujisaki-Okamoto রূপান্তরটি একটি ভুলের পরিবর্তে একটি ভুলের পরিবর্তে একটি ডিটেক্টিস্টিক পেসিডো-অনুভূমি গোপনীয়তা ফেরত দেয়. একটি ভুল কী KEM স্তরের উপর মোটেই উপস্থিত হয় না - এটি NIP-44 এর ভিতরে একটি HMAC ব্যর্থতা হিসাবে উপস্থিত হয়, যা একইভাবে একটি ভুল ক্লাসিক কী পৃষ্ঠাগুলি। কলাররা উভয়কে একইভাবে আচরণ করে, তাই ব্যর্থতা কোন পার্থক্য সংকেত বহন করে না।
৬.৩ উপহার প্যাকেজের উভয় স্তর
A NIP-17 ব্যক্তিগত বার্তা একটি NIP-59 উপহার প্যাকেজ: একটি অনির্দিষ্ট গুজব, প্রেরকের পরিচয় চাবিকাঠি (শৈলী 13), তারপর প্রতি বার্তা (শৈলী 1059) দ্বারা উত্পাদিত একটি ডাউনলোড চাবিকাঠি অধীনে প্যাকেজ করা।
একজন স্বাক্ষরকারী লগইন শুধুমাত্র বাইরের স্তরটি পায়। সীলটি সাধারণ এনআইপি-44 হিসাবে স্বাক্ষরকারী দ্বারা তৈরি করা হয়-অ্যাপ্লিকেশনটি কখনই এটি তৈরি করে এমন কীটি দেখতে পায় না-তাই এটি জায়গায় সংকর করা যায় না। প্রশ্নযুক্ত আক্রমণের বিরুদ্ধে এর কোনও খরচ হয় নাঃ সীলটি কেবল মোড়কের মাধ্যমে পৌঁছানো যায়, এবং মোড়কটি যা একটি রেকর্ডার সঞ্চয় করে। রেকর্ড করা ট্র্যাফিক ধারণকারী প্রতিপক্ষকে অবশ্যই এমএল-কেইএম ভাঙতে হবে একটি সীল এমনকি আক্রমণ করতে দৃশ্যমান হওয়ার আগে।
7গ্রুপ বার্তা এবং আংশিক কভারেজ
একটি গ্রুপ বার্তা একক সাইফার টেক্সট নয়. এটি প্রতিটি সদস্যের কাছে প্রেরিত একই স্পষ্ট টেক্সট, প্রতিটি কপি সেই সদস্যের নিজস্ব ML-KEM কীতে ক্যাপসুল করা হয়. একটি সদস্য যিনি একটি কী প্রকাশ করেছেন, একটি হাইব্রিড wrap পায়; যিনি একটি ক্লাসিক wrap পায় না।
এটি একটি অ্যাকাউন্টিং সমস্যা তৈরি করে যা একটি নিরপেক্ষ বাস্তবায়ন ভুল হয়ে যায়. যদি দশ সদস্যের মধ্যে আটটি হাইব্রিড কপি পায়, তবে বার্তাটি না আট-দশমাংশ সুরক্ষিত। একজন প্রতিপক্ষের একটি সরল পাঠ্যের একটি ধ্রুপদী অনুলিপি প্রয়োজন যা দশটির মধ্যে অভিন্ন, তাই বার্তাটি কেবল তখনই সুরক্ষিত থাকে যদি প্রতিটি কপি আছে।
নিমচ্যাট তাই ফ্যান-আউটের সময় প্রতি বার্তার কভারেজ ট্র্যাক করে-গণনাটি কেবল তখনই জানা যায় যখন মোড়কগুলি তৈরি করা হচ্ছে-এবং ব্যাজটি বার্তাটি সুরক্ষিত বলে দাবি করার পরিবর্তে 10 জনের মধ্যে 8 জনের কাছে'কোয়ান্টাম-প্রতিরোধী'রিপোর্ট করে। যেখানে কোনও গণনা উপলব্ধ নেই, যা একটি সাধারণ ক্ষেত্রে গ্রহণ গ্রুপ বার্তা (শুধুমাত্র পাঠকই ফ্যান-আউট হিসাব করে), ইন্টারফেস সম্পূর্ণ সুরক্ষার পরিবর্তে আংশিক রিপোর্ট করে।
৭.১ কী রিপোর্ট দেয় স্কেল
সুরক্ষা বলছে সত্য বার্তাযে সফ্টওয়্যারটি এটি পাঠিয়েছে সে সম্পর্কে নয়ঃ
- সম্পূর্ণ সুরক্ষা: এই স্পষ্ট টেক্সটের প্রতিটি কপি হাইব্রিড হয়ে যায়।
- আংশিকঃ একটি গোষ্ঠী বার্তার কিছু অনুলিপি ধ্রুপদীভাবে প্রকাশিত হয়েছিল। সম্পূর্ণের পরিবর্তে অবনমিত করা হয়েছে, কারণ সাধারণ পাঠ্যের একটি ধ্রুপদী অনুলিপি তাদের সকলের মধ্যে অভিন্ন একটি প্রতিকূল চাহিদা।
- ক্লাসিক বর্ণনা করা হয় সরাসরি নয়, কোন বোর্ড হিসাবে প্রদর্শন করা হয়, কারণ একটি অনুপস্থিত সূচক “অরক্ষিত”, “ ভাঙা”, এবং “এই বিল্ডিং বৈশিষ্ট্য” মিস করে।
সিফার টেক্সট যা ইতিমধ্যে বিদ্যমান হয় তার চেয়ে ভাল সুরক্ষিত হতে পারে না, এবং একটি ইন্টারফেস যা পুরোনো বার্তাগুলি একটি নতুন বিজ্ঞাপনের শক্তিতে পুনর্নির্মাণ করে একটি রেলের বাইট সম্পর্কে কিছু মিথ্যা দাবি করবে।
উপরের গ্রুপ নিয়মগুলি এটি প্রতিস্থাপন করার পরিবর্তে উপরে স্ট্যাক করে: একটি গ্রুপ বার্তা সম্পূর্ণরূপে সুরক্ষিত হয় কেবলমাত্র যখন প্রতিটি সদস্যের কপি ছিল, এবং কোনও কভারেজ হিসাব ছাড়া একটি প্রাপ্ত গ্রুপ বার্তা অন্তর্ভুক্ত হয়।
8নিজের কাছে পাঠানো কপি
ক্লায়েন্টের ক্লায়েন্টের কয়েকটি জিনিস ব্যবহারকারীর নিজস্ব পরিচয়কে এনক্রিপ্ট করা হয়: সমন্বিত সেটিংস, কথোপকথন তালিকা, গ্রুপ কী এবং বার্তা আর্কাইভ। এইগুলি বেশিরভাগ একক বার্তাগুলির চেয়ে বেশী ব্যবহারকারীর সম্পর্কে বহন করে, সুতরাং তাদের ক্লাসিক রাখা তাদের সবচেয়ে দুর্বল সংরক্ষিত আর্দ্রতা তৈরি করবে, যদিও বার্তাগুলি নিজেদের কতটুকু সিল করা হয়েছিল। nymchat-pq-root বিভাগ নিজেই, যা একটি চাবির অধীনে সিল করা যায় না যা শুধুমাত্র এটি উত্পাদন করতে পারে।
একটি সেটিংস blob অথবা একটি আর্কাইভ লাইন বছর ধরে এক জায়গায় বসে থাকে, যা ঠিক একটি জিনিসের আকৃতি যা একটি বীজ-এখন-ডেক্সিপ্ট-পূর্বে প্রতিপক্ষ সংগ্রহ করে - কোনও একক বার্তা থেকে অনেক বেশি, যা ব্যবহারকারীর নিজের মনের মধ্যে অন্তত অস্থায়ী।
একটি সীমাবদ্ধতা চাবির পরিবর্তে এখানে ফরম্যাটটি নিয়ন্ত্রণ করে. একটি স্ব-আপেক্ষিত কপিটি পাঠযোগ্য হতে হবে প্রতিটি অ্যাকাউন্টে ডিভাইস, তাই প্রতিটি ডিভাইস বিজ্ঞাপন দেয় যে এটি তার ঘোষণা বহনকারী রোস্টারে কী খুলতে পারে, এবং অ্যাকাউন্টটি কেবল তা-ই লেখে যা তারা সবাই পড়তে পারে। অন্য কিছু লেখা একটি ডিভাইসকে তার নিজস্ব সেটিংস থেকে লক করে দেবে-একই নীরব ব্যর্থতা বিভাগ 3.2 অন্য উপায়ে এড়ায়, একটি ভিন্ন দিক থেকে আসে।
একটি ডিভাইস যা পরিচয় ধারণ করে কিন্তু মূলটি ধারণ করে না, তার নিজস্ব সেটিংস সহ মূল-প্রাপ্ত কী-তে সিল করা কিছু খুলতে পারে না। এটি একটি ইচ্ছাকৃত পরিণতি, কোনও তদারকি নয়, এবং এই কারণেই ধারা 3.3-এ একটি নতুন মূল তৈরি করার পরিবর্তে লিঙ্ক করার জন্য এমন একটি ডিভাইস প্রম্পট রয়েছেঃ একটি দ্বিতীয় মূল ব্লবকে পাঠযোগ্য করে তুলবে না, এটি কেবল পরিচয়ের মূল উপাদানটিকে দু'ভাগে বিভক্ত করবে। ব্যবহারকারী এটি লিঙ্ক না করা পর্যন্ত, ডিভাইসটি কাজ করে চলেছে-এটি কীগুলির জন্য কী রয়েছে তা পড়ে এবং ক্লাসিকভাবে পাঠায়।
ব্রাউজার এক্সটেনশন বা রিমোট সাইনার (এনআইপি-46) চালানোর জন্য কোনও ডিভাইসের কোনও এন. এস. সি থাকে না, তবে এটি পুনরুদ্ধারের কোডটি ধরে রাখে এবং ধারা 6.1-এর স্তরযুক্ত নির্মাণের অধীনে যা সমস্ত পোস্ট-কোয়ান্টাম অর্ধেক প্রয়োজনঃ সাইনার সর্বদা যেমন থাকে তেমন এনআইপি-44 স্তর তৈরি করে এবং ক্লায়েন্ট বাইরের স্তরটি নিজেই কী করে। এই ধরনের লগইন উভয় দিকেই একজন সাধারণ অংশগ্রহণকারী।
9রুটিন
এর epoch ডিভাইসিংয়ের কন্টারটি নতুন কী উপাদান ছাড়াই রুটিং সম্ভব করে তোলে। এটি বৃদ্ধি করে একই রুট থেকে একটি নতুন কীবোর্ড এবং একটি পুনরায় প্রকাশিত বিজ্ঞপ্তি উত্পাদিত হয়; সহকর্মীরা প্রতিস্থাপনযোগ্য রেকর্ড থেকে নতুন কীবোর্ডটি গ্রহণ করে।
9. 1 পুরনো যুগগুলি রাখা হয় এবং কিছুই পুনরায় এনক্রিপ্ট করা হয় না।
একটি ক্লায়েন্ট বর্তমান যুগ থেকে − 3 পর্যন্ত ডিক্রিপশন প্রার্থীগুলি তৈরি করে, তাই একটি রুটের পূর্বে একটি বার্তাটি সীল করা হয় যা এখনও প্রেরণ করার সময় বর্তমান ছিল।
সেই জানালাটিই ঘূর্ণনকে নিরাপদ করে তোলেঃ এটি ছাড়া, প্রতিটি ঘূর্ণন যা কিছু ছিল তা উড়তে আটকে যায়। ইতিমধ্যে সিল করা যে কোনও কিছু পরিচয়ের জীবনের জন্য পাঠযোগ্য থাকে, কারণ ব্যবহারকারী আর যে বার্তাটি খুলতে পারে না তা তাদের জন্য কঠোরভাবে খারাপ যার সুরক্ষা পূর্ববর্তীভাবে উন্নত করা যায় না (ধারা 10.5)।
10যা রক্ষা করে না
একটি কাগজ যা কেবলমাত্র একটি নকশা যা অর্জন করে তালিকাভুক্ত করে তা একটি সিস্টেমকে বর্ণনা করে না, এবং একটি ইন্টারফেসে একটি নিরাপত্তা বৈশিষ্ট্যকে অত্যধিক গুরুত্ব দেয়া এটি ছাড়ার চেয়ে খারাপ।
10. 1 মূল একটি দ্বিতীয় রহস্য, এবং এটি হারানো অপ্রতিরোধ্য।
এটি নকশার আসল মূল্য। ধারা 2-এর যে সীমাবদ্ধতাটি একজন ব্যবহারকারীর ঠিক একটি জিনিস রাখা উচিত তা পূরণ করা যায় নাঃ শুধুমাত্র এন. এস. ই. সি পোস্ট-কোয়ান্টাম কীটি পুনর্গঠন করে না, কারণ পুরো বিষয়টি হল যে কোনও সর্বজনীন মূল্য এবং অন্য কোনও গোপনীয়তা এটি প্রকাশ করে না। যদি কোনও ডিভাইস মূল ধরে না রাখে এবং ধারা 3.2-এর মোড়কগুলির কোনওটিই খোলা না যায়, তবে মূল-প্রাপ্ত কীতে সিল করা উপাদানগুলি পুনরুদ্ধারযোগ্য নয়। কোনও এসক্রো নেই এবং ইচ্ছাকৃতভাবে কোনও কর্তৃপক্ষ নেই যা একটি ধরে রাখতে পারে।
ম্যানুয়াল ট্রান্সফারের সাথে একমাত্র পথ, এটি প্রথমে পড়ার চেয়ে তীক্ষ্ণ। একজন ব্যবহারকারী যিনি কখনও কপি করেন না nympq1… কোড যে কোন জায়গায় একটি ডিভাইসে এর ঠিক এক কপি থাকে, এবং সেই ডিভাইসটি হারিয়ে ফেলে প্রতিটি পোস্ট-কয়ান্টাম বার্তা, সেটিংস blob এবং আর্কাইভ লাইন সেট করা হয়।
nsec এটি সাহায্য করে না; এটি সেই সম্পত্তি যার উপর পুরো নকশাটি নির্ভর করে।
পরে যোগ করা যে কোনও মোড়ানো পথকে অবশ্যই ম্যানুয়ালটির মতো একই বারটি সাফ করতে হবে। একজন আক্রমণকারী উপলব্ধ সবচেয়ে সস্তা পথে আক্রমণ করে, তাই একটি স্কিম তার সবচেয়ে দুর্বল পুনরুদ্ধারের পথের মূল্যের সমান-উদাহরণস্বরূপ, একটি স্মরণীয় পাসফ্রেজ পুরো জিনিসটিকে পাসফ্রেজের মূল্য হিসাবে রাখবে, এবং মোড়ানো সারিটি ঠিক সেই নিদর্শন যা একটি ফসল-এখন-ডিক্রিপ্ট-পরবর্তী প্রতিপক্ষ অবসর সময়ে অফলাইনে সংগ্রহ করে এবং গ্রাইন্ড করে।
10.2 সনাক্তকরণ, গোপনীয়তা থেকে আলাদা
নোস্টারের প্রতিটি স্বাক্ষর সেকেপ256কে1-এর উপর স্নোর, এবং এটি এখানে অপরিবর্তিত রয়েছে। কোয়ান্টাম কম্পিউটারের সাথে একজন প্রতিপক্ষ স্বাক্ষর নকল করতে পারে এবং বাস্তব সময়ে একজন ব্যবহারকারীর ছদ্মবেশ ধারণ করতে পারে। হাইব্রিড কী বিনিময় যা পরাজিত করে তা হল ফসল-এখন-ডিক্রিপ্ট-পরবর্তীঃ আজকের ট্র্যাফিক রেকর্ডিং আক্রমণকারী এটি পরে পড়তে পারে না। এটি এমন কোনও বার্তাকে অক্ষম করে না যার কাছে ইতিমধ্যে মেশিনটি রয়েছে। এই পার্থক্যটি ইচ্ছাকৃতভাবে অ্যাপ্লিকেশনগুলিতে বহন করা হয়-প্যাডলক সূচক প্রমাণীকরণের প্রতিবেদন করে, ঢাল গোপনীয়তার প্রতিবেদন করে এবং তারা পৃথক গ্লিফ কারণ একটি বার্তায় অন্যটি ছাড়া একটি থাকতে পারে।
ধারা 4-এর ঘোষণাটি কী প্রতিশ্রুতি দিতে পারে তাও এটি সীমাবদ্ধ করে। একটি এনপাব এবং একটি এমএল-কেইএম কী-এর মধ্যে বন্ধন একটি সেকপ256কে1 স্বাক্ষর, তাই যে প্রতিপক্ষ সেগুলি নকল করতে পারে সে তাদের নিজস্ব একটি কী প্রতিস্থাপন করতে পারে। ভবিষ্যতের প্রতিপক্ষের বিরুদ্ধে গোপনীয়তা একজনের বিরুদ্ধে সত্যতা হিসাবে সমান নয়।
10. 3 মেটাডাটা
উপহার প্যাকেজিং পাঠককে লুকিয়ে রাখে, গ্রহণকারী একমাত্র p ট্যাগ, প্রকার, এবং অভ্যন্তরীণ বার্তা টাইমস্ট্যাম্প. এটা লুকাতে পারে না যে একটি ইভেন্ট আছে, তার আকার, বা যখন একটি রিয়েল এটি পেয়েছেন. ট্র্যাফিক বিশ্লেষণ এই নকশা কোন অংশ দ্বারা সমাধান করা হয় না.
৩.৪ Offline Mesh
Nymchat এর ব্লুটুথ নেচ ট্রান্সপোর্ট একটি আলাদা প্রোটোকল, তার নিজস্ব হাত ধরে রাখা, এবং এটি এই কাজ দ্বারা অন্তর্ভুক্ত করা হয় না।
10.5 ইতিমধ্যে পাঠানো বার্তা
উভয় পক্ষই ধ্রুপদী থাকাকালীন রেকর্ড করা সাইফারটেক্সট স্থায়ীভাবে ধ্রুপদী থাকে। এটি ইতিমধ্যে বিদ্যমান এবং পুনরায় সিল করা যায় না। সুরক্ষা সেই বার্তায় শুরু হয় যেখানে উভয় পক্ষই পোস্ট-কোয়ান্টাম কী ধরে রাখে, এই মুহুর্তে বৈশিষ্ট্যটি চালু করা হয়নি।
11বিকল্পগুলি বিবেচনা করা হচ্ছে।
| নিকটবর্তী | কেন না |
|---|---|
| Identification Key থেকে Post-Quantum Key উত্পাদন | প্রত্যাখ্যান করা হয়. ডেরিভেশনটি nsec এর উপর একটি পাবলিক অ্যালগরিদম, এবং একটি কোয়ান্টাম বিরোধী প্রকাশিত npub থেকে nsec পুনরুদ্ধার করে, তাই এটি সঙ্গে পোস্ট-কয়ান্টাম অর্ধেকের উপর ক্লাসিক অর্ধেক হাত ভেঙে। |
| এনআইপি-44-এর মাধ্যমে ব্যবহারকারীর অন্যান্য ডিভাইসে রুটটি পাঠান। | একই কারণে বিভিন্ন পোশাকে প্রত্যাখ্যান করা হয়. ক্লাসিক শুধুমাত্র এনক্রিপশনের অধীনে প্রেরিত একটি রুট যে কেউ যে সেই বার্তাটি রেকর্ড করেছে এবং তার চাবিকাঠি পরে ভাঙে, যা রুট থামানোর জন্য বিদ্যমান শত্রু। |
| প্রতিটি ডিভাইসে আলাদাভাবে উত্পাদিত একটি ML-KEM কীবোর্ড | অস্বীকার করা. ডিভাইসগুলি বিভিন্ন decapsulation কীগুলি রাখবে, এবং প্রতিটি পরিচয় প্রতিটি প্রতিস্থাপনযোগ্য বিজ্ঞাপনগুলি তাদের সবগুলি বহন করতে পারে না. Peers কোনটি চাবি সর্বশেষ প্রকাশিত হয়েছিল সেটি এনক্রিপ্ট করবে, এবং প্রতিটি অন্যান্য ডিভাইস ফলাফল পড়তে সক্ষম হবে না। |
| পিনের নীচে রুট প্যাক করুন | প্রত্যাখ্যান করা হয়. একটি চার সংখ্যক পিন প্রায় 13 বিটের বিরুদ্ধে একটি অফলাইন আক্রমণকারী প্যাকেজিং লাইন বজায় রাখে. এটি দুটি 256-বিট পথের পাশে সরবরাহ করা সবচেয়ে দুর্বল প্যাকেজিং মূল্য প্রদর্শন করবে। |
| উভয় কী বহন করার জন্য এনপাব প্রসারিত করুন | 1,184 বাইট একটি শেয়ারযোগ্য সনাক্তকারী নয়, এবং এটি 32 বাইট হিসাবে সংজ্ঞায়িত একটি ঠিকানার প্রতিটি বিদ্যমান নস্ট্র ক্লায়েন্টের পাসিংকে ভেঙে দেবে। |
| একটি Key Directory সেবা | নেটওয়ার্ক যে কর্তৃপক্ষ আছে তা পুনরায় প্রবর্তন করে যাতে এড়ানো যায়. যিনি অনুসন্ধানের উত্তর দেন তিনি সিদ্ধান্ত নিবেন কে বার্তাটি পড়তে পারে। |
| প্রতিটি বার্তার সঙ্গে কী সংযুক্ত করুন | কিছুই সমাধান করে না: পাঠক প্রয়োজন প্রাপক প্রথম বার্তা আগে চাবিকাঠি, যা ঠিক যখন কোন পূর্ববর্তী বার্তা এটি বহন করতে হয় না। |
| ইন-ব্যান্ড সক্ষমতা আলোচনা | একটি ডাউনগ্রেড পৃষ্ঠ তৈরি করে। একজন আক্রমণকারী যে একটি সক্ষমতার পতাকা খুলে ফেলতে পারে সে শাস্ত্রীয় পথকে বাধ্য করে। |
| শুধুমাত্র পরবর্তী কয়েন, কোন ক্লাসিক পা | অনেক কম বয়সী আদিমের বিনিময়ে সেকেপ256কে1-এর কয়েক দশকের বিশ্লেষণ বাতিল করে দেয়। একটি সংকর কেবল তখনই ব্যর্থ হয় যদি উভয় ফাইল |
12বাস্তবায়নের সমতা
নিমচ্যাট এই নির্মাণের দুটি স্বাধীন বাস্তবায়ন পাঠায়-একটি ওয়েব অ্যাপ্লিকেশনের জন্য জাভাস্ক্রিপ্টে, একটি মোবাইল অ্যাপ্লিকেশনের জন্য ডার্টে, একটি ফ্রম-স্ক্র্যাচ এমএল-কেইএম-768 পোর্ট সহ। একই আদিম দুটি বাস্তবায়ন সাধারণত একটি দায়, তাই এগুলি সম্মত হওয়ার জন্য নির্ভরযোগ্য না হয়ে একে অপরের বিরুদ্ধে পিন করা হয়।
ডার্ট এমএল-কেইএম বাস্তবায়ন আধিকারিকের বিরুদ্ধে বৈধ।
ACVP এর
এমএল-কেইএম-768-এর জন্য পরিচিত-উত্তর পরীক্ষা (ML-KEM-*-FIPS203) — 25 কী-জেনারেশন, 25 encapsulation এবং 10 decapsulation ক্ষেত্রে, তাদের নিজস্ব সুইডেন হিসাবে পরিচালিত হয়। এগুলি NIST একটি বাস্তবায়ন যাচাই করার জন্য ভেক্টর প্রকাশ করে, তাই তাদের অতিক্রম প্রমাণ করে যে পোর্টটি সঠিক, শুধুমাত্র প্রমাণ নয় যে দুটি ক্লায়েন্ট একে অপরের সাথে একমত। উপরন্তু, পরীক্ষা ভেক্টরগুলির একটি ভাগ করা ভেক্টর - বীজ উত্পাদন, encapsulation, উভয় পাইলোড ফরম্যাট এবং সম্পূর্ণ উপহার ওভার - জিজ্ঞাসাবাদ থেকে উত্পাদিত হয় এবং উভয় পরীক্ষা সুইডেন দ্বারা চেক করা হয়।
nympq1… কোড মানে বা যে বাইটগুলির সাথে একটি বার্তা সিলিং করা হয়. একটি বিচ্ছিন্নতা উভয় বাস্তবায়নে একটি বার্তা উত্পাদন করার পরিবর্তে একটি নির্মাণ ব্যর্থ হয় যা অন্য ক্লায়েন্টটি খুলতে পারে না।
ফিঙ্গারপ্রিন্ট এগুলির মধ্যে নামকরণের যোগ্য। এটিই একটি যন্ত্রকে বলে যে & ldquo; এই মূলটি আমি ধরে রেখেছি & rdquo; থেকে & ldquo; এটি একটি ভিন্ন & rdquo; এবং যে ক্লায়েন্ট অন্য ক্লায়েন্টের ফিঙ্গারপ্রিন্ট পুনরুত্পাদন করতে পারে না সে কোনও রেকর্ড ছাড়াই একটি নিখুঁত ভাল রেকর্ড পড়বে-এবং তারপরে, ধারা 3.3 অনুসরণ করে, একটি দ্বিতীয় মূল পুদিনা করুন এবং পরিচয়টি বিভক্ত করুন। এটি ঠিক সেই কারণে একটি ভেক্টর।
Nymchat এর মুক্ত উৎস AGPL-3.0. এখানে বর্ণিত ক্রিপ্টোগ্রাফিক কোর
js/nym-crypto.js এবং js/modules/pq.js ওয়েব ক্লায়েন্ট এবং
lib/core/crypto/ সঙ্গে lib/features/identity/pq_registry.dart মোবাইল গ্রাহকদের মধ্যে।
সংক্ষিপ্ত, অ-টেকনিক ব্যাখ্যা জন্য, দেখুন Quantum-resistant encryption সম্পর্কে জ্ঞান বেস পৃষ্ঠা.