সূচিপত্র
1. ভূমিকা
ওয়েবসাইট অ্যাকাউন্ট এবং পাসওয়ার্ড ফাঁসের অবিরাম রিপোর্ট তথ্য ও পাসওয়ার্ড নিরাপত্তার গুরুত্বকে স্পষ্টভাবে তুলে ধরে। ওয়েবসাইটের দুর্বলতা একটি কারণ হলেও, পাসওয়ার্ডের নিজস্ব নিরাপত্তাই সর্বাধিক গুরুত্বপূর্ণ। সাধারণ অনিরাপদ পাসওয়ার্ড চর্চার মধ্যে রয়েছে কীওয়ার্ড-ভিত্তিক পাসওয়ার্ড, জনপ্রিয় বাক্যাংশের ব্যবহার, ব্যক্তিগত তথ্য অন্তর্ভুক্তি এবং পাসওয়ার্ড পুনরায় ব্যবহার। কৃত্রিম বুদ্ধিমত্তা এবং বৃহৎ ভাষা মডেলের উত্থান আক্রমণকারীদের আরও কার্যকরভাবে পাসওয়ার্ড অনুমান করতে সক্ষম করছে।
এই গবেষণা ক্রিপ্টোগ্রাফিকভাবে নিরাপদ সিউডো র্যান্ডম নাম্বার জেনারেটর (PRNG) ভিত্তিক একটি নিরাপদ পাসওয়ার্ড জেনারেটর প্রস্তাব করে। এটি কীড-হ্যাশ মেসেজ অথেন্টিকেশন কোড (HMAC), সাইফার-ভিত্তিক মেসেজ অথেন্টিকেশন কোড (CMAC), বা KECCAK মেসেজ অথেন্টিকেশন কোড (KMAC) ব্যবহার করে নিরাপদ র্যান্ডম সংখ্যা উৎপাদনের জন্য PRNG গঠন করে, যা পরে পাসওয়ার্ড তৈরি করতে ব্যবহৃত হয়। উৎপন্ন সংখ্যাগুলোর র্যান্ডমনেস NIST SP 800-90B মানদণ্ডের বিপরীতে এনট্রপি এবং স্বাধীন ও অভিন্নভাবে বিতরণিত (IID) পরীক্ষার মাধ্যমে যাচাই করা হয়।
প্রধান অবদান:
- পাসওয়ার্ড তৈরির জন্য HMAC, CMAC, এবং KMAC ভিত্তিক নিরাপদ PRNG গঠন।
- বিভিন্ন অক্ষর সেট এবং দৈর্ঘ্য সীমাবদ্ধতার অধীনে পাসওয়ার্ডের নিরাপত্তা বিশ্লেষণ, AES-128/256 এর সাথে তুলনা সহ।
- NIST SP 800-90B এনট্রপি এবং IID পরীক্ষা ব্যবহার করে ব্যবহারিক যাচাইকরণ।
2. সাহিত্য পর্যালোচনা
2.1. লিনিয়ার কনগ্রুয়েনশিয়াল জেনারেটর-ভিত্তিক PRNG
C এবং Java এর মতো ভাষায় সাধারণভাবে ব্যবহৃত, LCG একটি লিনিয়ার পুনরাবৃত্তি সম্পর্ক ব্যবহার করে সংখ্যার একটি ক্রম তৈরি করে। একটি বীজ $k$ দেওয়া হলে, প্রাথমিক মান $f_0(k)$ হিসাবে গণনা করা হয় $f_0(k) \equiv a \oplus k \ (\text{mod} \ m)$। পরবর্তী সংখ্যাগুলো তৈরি করা হয় $f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$ দ্বারা। যাইহোক, LCG অনিরাপদ কারণ অবস্থাটি $f_{i-1}(k) \equiv (f_i(k) - c) \times a^{-1} \ (\text{mod} \ m)$ ব্যবহার করে বিপরীত করা যেতে পারে, যা বীজ এবং সম্পূর্ণ ক্রম প্রকাশ করে দেয়।
2.2. নিরাপদ সিউডো র্যান্ডম নাম্বার জেনারেটর
LCG-এর দুর্বলতা মোকাবেলায়, ক্রিপ্টোগ্রাফিকভাবে নিরাপদ PRNG অপরিহার্য। এই গবেষণাপত্রটি তিনটি NIST-প্রস্তাবিত গঠনের উপর দৃষ্টি নিবদ্ধ করে।
2.2.1. HMAC-ভিত্তিক PRNG
নিরাপত্তা হ্যাশ ফাংশনের (যেমন, SHA2, SHA3) একমুখী বৈশিষ্ট্যের উপর নির্ভর করে। একটি কী $k$ এবং বার্তা $M$ এর জন্য, HMAC হিসাবে গণনা করা হয় $r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$, যেখানে $ipad$ এবং $opad$ ধ্রুবক। একটি দীর্ঘ বিটস্ট্রিম তৈরি করতে, একটি কাউন্টার মোড ব্যবহার করা হয়: $M_i = i \ || \ KDF \ || \ 0x00 \ || \ M \ || \ L$, যা আউটপুট $r_{hmac,i}$ উৎপন্ন করে।
2.2.2. CMAC-ভিত্তিক PRNG
নিরাপত্তা অ্যাডভান্সড এনক্রিপশন স্ট্যান্ডার্ড (AES) এর উপর ভিত্তি করে। কী $k$ সহ সাইফার ব্লক চেইনিং (CBC) মোড ব্যবহার করে, বার্তা $M$ কে ব্লক $M'_1, M'_2, ...$ এ বিভক্ত করা হয়। সাইফারটেক্সট পুনরাবৃত্তিমূলকভাবে গণনা করা হয়: $c_{i+1} = AES(k, c_i \oplus M'_{i+1})$, যেখানে $c_0 = Pad0(0)$। চূড়ান্ত আউটপুট $r_{cmac}$ শেষ ব্লক থেকে প্রাপ্ত।
2.2.3. KMAC-ভিত্তিক PRNG
SHA-3 (KECCAK) হ্যাশ ফাংশনের উপর ভিত্তি করে, KMAC একটি পরিবর্তনশীল-দৈর্ঘ্যের আউটপুট প্রদান করে এবং পোস্ট-কোয়ান্টাম ক্রিপ্টোগ্রাফির জন্য একটি শক্তিশালী প্রার্থী হিসেবে বিবেচিত। এর গঠন একটি অনুরূপ প্রমাণীকৃত হ্যাশিং নীতির অনুসরণ করে, উচ্চ নিরাপত্তা গ্যারান্টি প্রদান করে।
2.3. র্যান্ডমনেস যাচাই পদ্ধতি
NIST SP 800-90B মানদণ্ড র্যান্ডম নাম্বার জেনারেটরের গুণমান মূল্যায়নের পদ্ধতি প্রদান করে। দুটি মূল দিক মূল্যায়ন করা হয়:
- এনট্রপি যাচাইকরণ: ডেটায় প্রতি বিটের অপ্রত্যাশিততা বা "র্যান্ডমনেস" পরিমাপ করে। নিরাপদ পাসওয়ার্ডের জন্য উচ্চ এনট্রপি অত্যন্ত গুরুত্বপূর্ণ।
- IID (স্বাধীন ও অভিন্নভাবে বিতরণিত) যাচাইকরণ: পরীক্ষা করে যে উৎপন্ন ক্রমটি পরিসংখ্যানগতভাবে স্বাধীন কিনা এবং একটি অভিন্ন বন্টন অনুসরণ করে কিনা, নিশ্চিত করে যে কোনো প্যাটার্ন বা পারস্পরিক সম্পর্ক নেই।
3. প্রস্তাবিত নিরাপদ পাসওয়ার্ড জেনারেটর
সিস্টেম আর্কিটেকচারে দুটি প্রধান পর্যায় জড়িত:
- নিরাপদ র্যান্ডম নাম্বার জেনারেশন: একজন ব্যবহারকারী ঐচ্ছিকভাবে একটি হ্যাশ করার বার্তা (TBHM) প্রদান করতে পারেন। এটি, একটি ক্রিপ্টোগ্রাফিক কী সহ, নির্বাচিত নিরাপদ PRNG (HMAC/CMAC/KMAC-ভিত্তিক) দ্বারা প্রক্রিয়াজাত হয়ে একটি ক্রিপ্টোগ্রাফিকভাবে শক্তিশালী র্যান্ডম বিট ক্রম উৎপন্ন করে।
- পাসওয়ার্ড জেনারেশন: র্যান্ডম বিটগুলো একটি ব্যবহারকারী-সংজ্ঞায়িত বা সিস্টেম-সংজ্ঞায়িত অক্ষর সেটে (যেমন, আলফানিউমেরিক প্লাস চিহ্ন) একটি নির্দিষ্ট দৈর্ঘ্যে ম্যাপ করা হয় চূড়ান্ত টেক্সট-ভিত্তিক পাসওয়ার্ড তৈরি করতে। নিরাপত্তা শক্তি বিশ্লেষণ করা হয় AES-128/256 এর সাপেক্ষে, অক্ষর সেটের আকার এবং পাসওয়ার্ড দৈর্ঘ্য দ্বারা প্রদত্ত এনট্রপি বিবেচনা করে।
4. পরীক্ষা এবং ফলাফল
4.1. পরীক্ষামূলক সেটআপ
PRNG আউটপুটের র্যান্ডমনেস যাচাই করার জন্য পরীক্ষা পরিচালিত হয়েছিল। টেস্ট স্যুটটি তিনটি PRNG প্রকার থেকে উৎপন্ন র্যান্ডম সংখ্যার বৃহৎ নমুনার উপর এনট্রপি অনুমান এবং IID পরীক্ষার জন্য NIST SP 800-90B মূল্যায়ন পদ্ধতি বাস্তবায়ন করেছিল।
4.2. র্যান্ডমনেস যাচাই ফলাফল
ফলাফল সারসংক্ষেপ: প্রস্তাবিত HMAC, CMAC, এবং KMAC-ভিত্তিক PRNG গুলো সবই সফলভাবে NIST SP 800-90B এনট্রপি এবং IID যাচাইকরণ পরীক্ষায় উত্তীর্ণ হয়েছে। উৎপন্ন ক্রমগুলো প্রকৃত র্যান্ডমনেস থেকে পরিসংখ্যানগতভাবে উল্লেখযোগ্য কোনো বিচ্যুতি প্রদর্শন করেনি, যা ক্রিপ্টোগ্রাফিক পাসওয়ার্ড তৈরির জন্য তাদের উপযুক্ততা নিশ্চিত করে।
চার্ট বর্ণনা (কল্পিত): একটি বার চার্ট যা তিনটি PRNG প্রকারের জন্য NIST পাসিং থ্রেশহোল্ডের বিপরীতে সর্বনিম্ন-এনট্রপি অনুমান (প্রতি বিটে বিটে) তুলনা করে। তিনটি বারই থ্রেশহোল্ড লাইনের উল্লেখযোগ্যভাবে উপরে দেখানো হবে, যেখানে KMAC সম্ভবত সর্বোচ্চ মান দেখাবে, তারপর ঘনিষ্ঠভাবে HMAC-SHA3 এবং CMAC-AES256।
4.3. কর্মদক্ষতা বিশ্লেষণ
গণনামূলক দক্ষতার (যেমন, প্রতি সেকেন্ডে জেনারেশন) একটি তুলনামূলক বিশ্লেষণ করা হয়েছিল। CMAC-ভিত্তিক জেনারেটর (AES-NI হার্ডওয়্যার এক্সিলারেশন ব্যবহার করে) সাধারণত সর্বোচ্চ থ্রুপুট দেখিয়েছে, তারপর HMAC-ভিত্তিক (SHA2/SHA3), যেখানে KMAC গণনামূলকভাবে ভারী কিন্তু শক্তিশালী পোস্ট-কোয়ান্টাম নিরাপত্তা বৈশিষ্ট্য প্রদান করে।
5. উপসংহার এবং ভবিষ্যৎ কাজ
এই গবেষণা সফলভাবে ক্রিপ্টোগ্রাফিকভাবে নিরাপদ PRNG (HMAC, CMAC, KMAC) এর উপর নির্মিত একটি নিরাপদ পাসওয়ার্ড জেনারেটর ডিজাইন এবং যাচাই করেছে। উৎপন্ন পাসওয়ার্ডগুলো তাদের নিরাপত্তা এই অন্তর্নিহিত ক্রিপ্টোগ্রাফিক আদিম উপাদানগুলোর প্রমাণিত দৃঢ়তা এবং PRNG আউটপুটের যাচাইকৃত উচ্চ র্যান্ডমনেস থেকে অর্জন করে। ভবিষ্যৎ কাজের মধ্যে রয়েছে জেনারেটরকে ব্রাউজার এক্সটেনশন বা পাসওয়ার্ড ম্যানেজারে একীভূত করা, পাসওয়ার্ডের বাইরে ক্রিপ্টোগ্রাফিক কী তৈরি করতে এর ব্যবহার অন্বেষণ করা এবং সম্পূর্ণ সিস্টেমের উপর সাইড-চ্যানেল আক্রমণ প্রতিরোধ বিশ্লেষণ পরিচালনা করা।
6. মূল বিশ্লেষণ ও বিশেষজ্ঞ মন্তব্য
মূল অন্তর্দৃষ্টি: এই গবেষণাপত্রটি সাইবার নিরাপত্তার চিরন্তন দুর্বল লিঙ্কের প্রতি একটি ব্যবহারিক, প্রকৌশল-কেন্দ্রিক প্রতিক্রিয়া: মানুষের দ্বারা নির্বাচিত পাসওয়ার্ড। এর মূল মূল্য নতুন ক্রিপ্টোগ্রাফিতে নয়, বরং একটি নির্দিষ্ট, উচ্চ-প্রভাব ব্যবহারের ক্ষেত্রে বিদ্যমান, যুদ্ধ-পরীক্ষিত গঠনগুলোর (HMAC, CMAC, KMAC) সঠিক প্রয়োগ এবং কঠোর যাচাইকরণে। এটি সঠিকভাবে চিহ্নিত করে যে পাসওয়ার্ড জেনারেশন ব্যবহারকারীর মস্তিষ্ক থেকে একটি যাচাইকৃত ক্রিপ্টোগ্রাফিক প্রক্রিয়ায় স্থানান্তর করা একটি মৌলিক নিরাপত্তা আপগ্রেড, কী এক্সচেঞ্জের জন্য সিমেট্রিক থেকে অ্যাসিমেট্রিক ক্রিপ্টোতে স্থানান্তরের অনুরূপ।
যুক্তিসঙ্গত প্রবাহ: যুক্তিটি শব্দ এবং একটি ক্লাসিক প্রয়োগ গবেষণা প্যাটার্ন অনুসরণ করে: সমস্যা সংজ্ঞায়ন (দুর্বল পাসওয়ার্ড) → সাধারণ সমাধানের সমালোচনা (অনিরাপদ LCG) → একটি শক্তিশালী সমাধানের প্রস্তাব (CSPRNG-ভিত্তিক জেনারেটর) → ব্যবহারিক যাচাইকরণ (NIST পরীক্ষা)। যাচাইকরণ বেঞ্চমার্ক হিসেবে NIST SP 800-90B এর পছন্দ চমৎকার, কারণ এটি ক্রিপ্টোগ্রাফিক প্রসঙ্গে র্যান্ডমনেস মূল্যায়নের জন্য ডি ফ্যাক্টো স্ট্যান্ডার্ড, যা ফলাফলগুলোর সাথে তাৎক্ষণিক বিশ্বাসযোগ্যতা প্রদান করে।
শক্তি ও ত্রুটি:
শক্তি: গবেষণাপত্রের সর্বশ্রেষ্ঠ শক্তি হল এর ব্যবহারিক যাচাইকরণ। অনেক প্রস্তাবনা ডিজাইন পর্যায়ে থেমে যায়। আউটপুটকে NIST-এর কঠোর পরীক্ষার অধীন করে, লেখকরা নিরাপত্তার কংক্রিট প্রমাণ প্রদান করেন, যা গ্রহণের জন্য অত্যন্ত গুরুত্বপূর্ণ। SHA-3 ভিত্তিক KMAC অন্তর্ভুক্তি, NIST-এর চলমান পোস্ট-কোয়ান্টাম ক্রিপ্টোগ্রাফি মানকীকরণ প্রক্রিয়ায় উল্লিখিত হিসাবে, পোস্ট-কোয়ান্টাম বিবেচনার বিষয়ে দূরদর্শিতা দেখায়।
ত্রুটি/অনুল্লেখ: বিশ্লেষণটি কিছুটা বিচ্ছিন্ন। একটি উল্লেখযোগ্য ত্রুটি হল বীজ ব্যবস্থাপনা নিয়ে আলোচনার অভাব। কোনো PRNG-এর নিরাপত্তা ভেঙে পড়ে যদি এর বীজ অনুমানযোগ্য বা ফাঁস হয়। সিস্টেমটি HMAC/CMAC/KMAC-এর জন্য প্রাথমিক ক্রিপ্টোগ্রাফিক কী কীভাবে তৈরি, সংরক্ষণ এবং সুরক্ষা করে? এটি অ্যালগরিদম নিজের মতোই সমালোচনামূলক। তদুপরি, AES-এর সাথে পাসওয়ার্ড শক্তি তুলনা করা কার্যকর হলেও, বিদ্যমান পাসওয়ার্ড জেনারেটরগুলোর (যেমন KeePass বা 1Password-এ) এবং তাদের অন্তর্নিহিত PRNG-এর (যেমন, ChaCha20 ব্যবহার করে) সাথে আরও সরাসরি তুলনা এর প্রতিযোগিতামূলক সুবিধার জন্য একটি ভাল প্রসঙ্গ প্রদান করবে।
কার্যকরী অন্তর্দৃষ্টি: নিরাপত্তা অনুশীলনকারীদের জন্য, এই গবেষণাপত্রটি একটি নীলনকশা হিসেবে কাজ করে। কার্যক্রম ১: নিরাপত্তা-সংবেদনশীল কাজের জন্য LCG বা অনুরূপ নন-ক্রিপ্টোগ্রাফিক RNG (যেমন `rand()`) এর যেকোনো ব্যবহার অবিলম্বে অপ্রচলিত ঘোষণা করুন। কার্যক্রম ২: একটি পাসওয়ার্ড জেনারেটর তৈরি বা নিরীক্ষা করার সময়, প্রাথমিক চেকলিস্ট আইটেমগুলি হওয়া উচিত: ১) একটি CSPRNG ব্যবহার করুন (NIST SP 800-90A থেকে HMAC_DRBG, CTR_DRBG, বা এখানে উল্লিখিত গঠন), ২) NIST SP 800-90B বা Dieharder এর মতো একটি স্যুট দিয়ে এর আউটপুট যাচাই করুন, এবং ৩) একটি উচ্চ-এনট্রপি উৎস থেকে (যেমন, Linux-এ `getrandom()`) শক্তিশালী বীজ জেনারেশন বাস্তবায়ন করুন। গবেষণাপত্রটি সফলভাবে পয়েন্ট ২-এ ফোকাস করে, কিন্তু পয়েন্ট ১ এবং ৩ সম্পূর্ণ চিত্রের সমান গুরুত্বপূর্ণ অংশ।
7. প্রযুক্তিগত বিবরণ ও গাণিতিক সূত্রায়ন
প্রস্তাবিত জেনারেটরের নিরাপত্তা অন্তর্নিহিত ক্রিপ্টোগ্রাফিক ফাংশনগুলোর উপর নির্ভর করে। প্রধান গাণিতিক অপারেশনগুলি হল:
- HMAC: $r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$
- CMAC (CBC-MAC): $c_{i+1} = E(k, c_i \oplus M_{i+1})$, যেখানে $E$ হল ব্লক সাইফার (AES)।
- পাসওয়ার্ড এনট্রপি: একটি উৎপন্ন পাসওয়ার্ডের এনট্রপি $H$ হল $H = L \cdot \log_2(N)$, যেখানে $L$ হল পাসওয়ার্ড দৈর্ঘ্য এবং $N$ হল অক্ষর সেটের আকার। একটি 94-অক্ষর সেট থেকে 16-অক্ষরের পাসওয়ার্ডের জন্য, $H \approx 16 \cdot \log_2(94) \approx 105$ বিট।
8. বিশ্লেষণ কাঠামো ও উদাহরণ কেস
উদাহরণ কেস: একটি ওয়েব অ্যাপ্লিকেশনের পাসওয়ার্ড রিসেট ফাংশন নিরীক্ষণ
পরিস্থিতি: একটি ওয়েব অ্যাপ "পাসওয়ার্ড ভুলে গেছেন" ক্লিক করা ব্যবহারকারীদের জন্য একটি অস্থায়ী পাসওয়ার্ড তৈরি করে।
কাঠামো প্রয়োগ:
- RNG চিহ্নিত করুন: সার্ভার-সাইড কোড পরিদর্শন করুন। `Math.random()` (JavaScript) বা PHP-তে একটি সাধারণ LCG খুঁজে পাওয়া একটি সমালোচনামূলক ব্যর্থতা হবে।
- এনট্রপি উৎস মূল্যায়ন করুন: PRNG কীভাবে বীজিত হয়? এটি সিস্টেম এনট্রপি (`/dev/urandom`, `CryptGenRandom`) ব্যবহার করছে?
- প্রস্তাবিত সমাধানে ম্যাপ করুন: ত্রুটিপূর্ণ RNG কে এই গবেষণাপত্রের ডিজাইন বাস্তবায়নকারী একটি মডিউল দিয়ে প্রতিস্থাপনের সুপারিশ করুন—উদাহরণস্বরূপ, `os.urandom(32)` থেকে একটি বীজ সহ SHA256 ব্যবহার করে `hmac.new` ব্যবহার করে একটি Python ফাংশন।
- আউটপুট যাচাই করুন (বাস্তবায়ন-পরবর্তী): 1,000,000 অস্থায়ী পাসওয়ার্ডের একটি নমুনা তৈরি করুন, বিটস্ট্রিমে রূপান্তর করুন এবং র্যান্ডমনেস নিশ্চিত করতে NIST STS স্যুট (একটি সম্পর্কিত টেস্ট স্যুট) চালান।
9. ভবিষ্যৎ প্রয়োগ ও দিকনির্দেশনা
মূল প্রযুক্তির ব্যবহারকারী পাসওয়ার্ড জেনারেশনের বাইরেও প্রয়োগ রয়েছে:
- API কী ও টোকেন জেনারেশন: মাইক্রোসার্ভিসেস আর্কিটেকচারের জন্য নিরাপদ, র্যান্ডম API কী এবং সেশন টোকেন তৈরি করা।
- নিরাপদ ডিফল্ট ক্রেডেনশিয়াল: IoT ডিভাইস ফার্মওয়্যারে এমন একটি জেনারেটর এম্বেড করে প্রতিটি ডিভাইসের জন্য অনন্য, শক্তিশালী ডিফল্ট পাসওয়ার্ড তৈরি করা, সাধারণ ডিফল্টের উপর ভিত্তি করে ব্যাপক আক্রমণ প্রশমিত করা।
- ক্রিপ্টোগ্রাফিক বীজ জেনারেশন: উচ্চ-গুণমানের আউটপুট অন্যান্য ক্রিপ্টোগ্রাফিক সিস্টেম বীজিত করতে বা ননস এবং ইনিশিয়ালাইজেশন ভেক্টর (IV) তৈরি করতে ব্যবহার করা যেতে পারে।
- পাসওয়ার্ড ম্যানেজারের সাথে একীকরণ: অ্যালগরিদমটি ওপেন-সোর্স পাসওয়ার্ড ম্যানেজারগুলোর জন্য কোর ইঞ্জিন হিসেবে একীভূত করা যেতে পারে, র্যান্ডমনেসের একটি স্বচ্ছ এবং নিরীক্ষণযোগ্য উৎস প্রদান করে।
- পোস্ট-কোয়ান্টাম প্রস্তুতি: একটি পোস্ট-কোয়ান্টাম কম্পিউটিং যুগের জন্য প্রস্তুত করতে, NIST-এর FIPS 202 এবং SP 800-185 মানদণ্ডের সাথে সামঞ্জস্য রেখে, KMAC-ভিত্তিক জেনারেটরের আরও অন্বেষণ এবং অপ্টিমাইজেশন।
10. তথ্যসূত্র
- M. Bishop, "Computer Security: Art and Science," Addison-Wesley, 2003.
- NIST, "Special Publication 800-63B: Digital Identity Guidelines," 2017.
- NIST, "Special Publication 800-90A: Recommendation for Random Number Generation Using Deterministic Random Bit Generators," 2015.
- NIST, "Special Publication 800-90B: Recommendation for the Entropy Sources Used for Random Bit Generation," 2018.
- J. Kelsey, B. Schneier, D. Wagner, "Secure Applications of Low-Entropy Keys," ISW '97.
- D. D. Hwang, B. B. Gupta, "A Study of Password Security and Its Implications," JIS, 2019.
- NIST, "FIPS 202: SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions," 2015.
- NIST, "SP 800-185: SHA-3 Derived Functions: cSHAKE, KMAC, TupleHash and ParallelHash," 2016.
- M. S. Turan, E. Barker, J. Kelsey, "Recommendation for Random Bit Generator (RBG) Constructions," NIST SP 800-90C, 2016.
- P. G. Neumann, "Illustrative Risks to the Public in the Use of Computer Systems and Related Technology," ACM SIGSOFT, 1995.