# SHA নির্দেশনা এক্সটেনশন

আর্কিটেকচার রেফারেন্স: Feex

OS Guard (SMAP) নামেও পরিচিত

মূল x86 SHA এক্সটেনশন SHA-1 এবং SHA-256-এ ব্যবহৃত নির্দিষ্ট কিছু অপারেশনকে ত্বরান্বিত করে। একটি সাধারণ SHA ফিচার লেবেল প্রতিটি SHA অ্যালগরিদমের জন্য হার্ডওয়্যার সাপোর্ট নিশ্চিত করে না।

## আপনার যা জানা প্রয়োজন

মূল x86 SHA এক্সটেনশন SHA-1 এবং SHA-256-এ ব্যবহৃত নির্দিষ্ট কিছু অপারেশনকে ত্বরান্বিত করে। একটি সাধারণ SHA ফিচার লেবেল প্রতিটি SHA অ্যালগরিদমের জন্য হার্ডওয়্যার সাপোর্ট নিশ্চিত করে না।

## এটি যেভাবে কাজ করে

মূল এক্সটেনশনটি SHA-1 এবং SHA-256-এর মেসেজ-শিডিউল এবং রাউন্ড প্রসেসিংয়ের জন্য ইন্সট্রাকশন সরবরাহ করে। সফটওয়্যার তবুও প্যাডিং, ব্লক ম্যানেজমেন্ট এবং সম্পূর্ণ হ্যাশ তৈরির কাজ সম্পন্ন করে। SHA-256 হলো SHA-2-এর অন্তর্ভুক্ত, কিন্তু SHA-512 এবং SHA-3-এর অ্যালগরিদম আলাদা এবং মূল ফিচার বিট থেকে এগুলো অনুমান করা যাবে না।

## যেখানে এটি কার্যকর

এক্সটেনশনটি ব্যবহারযোগ্য হলে একটি হ্যাশিং লাইব্রেরি বিশেষায়িত SHA-256 কম্প্রেশন রুটিন নির্বাচন করতে পারে। ছোট মেসেজগুলোর সেটআপ এবং আশেপাশের কোডে উল্লেখযোগ্য সময় ব্যয় হতে পারে, অন্যদিকে বড় ওয়ার্কলোডগুলো মেমোরি এবং প্যারালেলিজমের ওপরও নির্ভর করে।

## সাপোর্ট এবং সক্ষমতা কীভাবে পরীক্ষা করবেন

মূল SHA এক্সটেনশনের জন্য, লিফ সাপোর্ট যাচাই করার পর CPUID.07H.00H:EBX বিট 29 পরীক্ষা করুন। কোনো ইউটিলিটি দ্বারা প্রদর্শিত কেবল সাধারণ sha লেবেল নয়, বরং লাইব্রেরির অনুরোধ করা অ্যালগরিদম এবং সঠিক ইন্সট্রাকশন ফ্যামিলি যাচাই করুন।

একটি রক্ষণাবেক্ষণ করা ক্রিপ্টোগ্রাফিক বাস্তবায়ন ব্যবহার করুন যা বৈশিষ্ট্য নির্বাচন, ব্যর্থতার শর্তাবলী এবং সম্পূর্ণ অ্যালগরিদম পরিচালনা করে। হার্ডওয়্যার ত্বরণ আদিম (primitives) উপাদান সরবরাহ করে; কী পরিচালনা, প্রমাণীকরণ, ননস নিয়ম এবং প্রোটোকল পছন্দগুলি সফটওয়্যারের দায়িত্ব হিসেবে থাকে।

## এই বৈশিষ্ট্যটি যা নিশ্চিত করে না

কোনো ইন্সট্রাকশনের অস্তিত্বই কোনো নতুন নিরাপত্তা প্রোটোকলের জন্য SHA-1-কে উপযুক্ত করে তোলে না। হার্ডওয়্যার অ্যাকসিলারেশন কোনো অ্যালগরিদমের কলিশন রেজিস্ট্যান্স পরিবর্তন করে না বা অনিরাপদ প্রোটোকল ডিজাইন সংশোধন করে না। পরবর্তী SHA512 এক্সটেনশনগুলোর আলাদা এনুমারেশন রয়েছে।

## বাস্তবে সামঞ্জস্য এবং কর্মক্ষমতা

একটি বৈশিষ্ট্য ক্ষেত্র কোনো পণ্য শংসাপত্র বা একটি নির্দিষ্ট অ্যাপ্লিকেশন নিরাপদ হওয়ার প্রমাণ নয়। কর্মক্ষমতা বার্তার আকার, মোড, ব্যাচিং এবং প্রোটোকলের বাকি অংশের উপর নির্ভর করে। প্রকৃত প্রদানকারীকে পরীক্ষা করুন এবং এর নিরাপত্তা আপডেট বর্তমান রাখুন।

## একটি ব্যবহারিক যাচাইকরণ চেকলিস্ট

1. সংশ্লিষ্ট সুনির্দিষ্ট প্রসেসর বা প্ল্যাটফর্ম মডেল এবং অ্যাপ্লিকেশন, OS ও রানটাইম সংস্করণগুলি রেকর্ড করুন। প্রকৃত ত্রুটি বা প্রয়োজনীয়তার সঠিক শব্দচয়ন সংরক্ষণ করুন।
2. সেই নির্দিষ্ট মডেলের জন্য প্রস্তুতকারকের রেফারেন্স পরীক্ষা করুন, তারপর প্রোগ্রামটি যে পরিবেশে চলে সেখানে কার্যকর সক্ষমতা এবং সক্রিয় অবস্থা পর্যবেক্ষণ করুন।
3. নির্বাচিত বাইনারি বা ব্যাকএন্ডের প্রতিটি প্রয়োজনীয়তা তুলনা করুন। একই নামের কোনো বৈশিষ্ট্য, উপনাম বা বিস্তৃত প্রযুক্তির লেবেলই যথেষ্ট নয়।
4. অ্যাপ্লিকেশনটি কাঙ্ক্ষিত বাস্তবায়ন নির্বাচন করেছে কিনা তা নিশ্চিত করুন। প্রয়োজনীয়তা পূরণ না হলে এর নথিভুক্ত ডায়াগনস্টিকস এবং একটি সমর্থিত ফলব্যাক ব্যবহার করুন।
5. একবারে একটি সমর্থিত পরিবর্তন করুন এবং একই কাজের চাপ পুনরাবৃত্তি করুন। মূল কনফিগারেশন এবং পুনরুদ্ধারের পথ উপলব্ধ রাখুন।

## যদি বৈশিষ্ট্যটি তালিকাভুক্ত থাকে কিন্তু সফটওয়্যার এটি ব্যবহার করতে না পারে

নির্দিষ্ট ব্যর্থ উপাদানটি দিয়ে শুরু করুন। একটি হার্ডওয়্যার ডাটাবেস সংরক্ষিত সক্ষমতা বর্ণনা করে; অপারেটিং সিস্টেম বা হাইপারভাইজর একটি ভিন্ন কার্যকর পরিবেশ প্রকাশ করতে পারে। একটি অবৈধ-নির্দেশনা (illegal-instruction) ত্রুটির ক্ষেত্রেও প্রকৃত ত্রুটিপূর্ণ নির্দেশনা এবং বাইনারি বিল্ড তদন্ত করা প্রয়োজন, কারণ ডেটা ক্ষতি বা সম্পর্কহীন কোনো অসমর্থিত নির্দেশনাও একই রকম লক্ষণ তৈরি করতে পারে।

নির্দিষ্ট প্ল্যাটফর্মের জন্য সমর্থিত অ্যাপ্লিকেশন, ড্রাইভার বা রানটাইম সংস্করণ ইনস্টল করুন এবং প্রয়োজনে ভেন্ডরের নথিভুক্ত বেসলাইন বা ফলব্যাক বিল্ড ব্যবহার করুন। একটি সফটওয়্যার আপডেট এমন কোনো নির্দেশনা তৈরি করতে পারে না যা প্রসেসরে নেই। ফার্মওয়্যার এবং নিরাপত্তা-নীতি পরিবর্তনগুলি একটি সাধারণ অপ্টিমাইজেশন রেসিপির পরিবর্তে সিস্টেম প্রস্তুতকারকের পদ্ধতি এবং একটি পুনরুদ্ধার পরিকল্পনা অনুসরণ করা উচিত।

## সম্পর্কিত বৈশিষ্ট্য এবং দরকারী পার্থক্যসমূহ

[AES-NI](https://feex.it/wiki/l/bn/hardware/system/aes-ni/) · [PCLMULQDQ এবং CLMUL](https://feex.it/wiki/l/bn/hardware/system/pclmulqdq/) · [AVX2](https://feex.it/wiki/l/bn/hardware/system/avx2/)

## এই ব্যাখ্যার উৎস এবং পরিধি

[Intel 64 and IA-32 Architectures Software Developer's Manual](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html) · [NIST সিকিউর হ্যাশ স্ট্যান্ডার্ড, FIPS 180-4](https://csrc.nist.gov/pubs/fips/180-4/upd1/final)

এই রেফারেন্সগুলি আর্কিটেকচারাল আচরণ এবং সফটওয়্যার প্রয়োজনীয়তা স্থাপন করে। এগুলি একটি লিঙ্কযুক্ত হার্ডওয়্যার মডেল পৃষ্ঠার প্রতিটি বৈশিষ্ট্যের মান স্বাধীনভাবে যাচাই করে না। মডেল সাপোর্টের জন্য, সেই পৃষ্ঠার প্রস্তুতকারকের প্রমাণ ব্যবহার করুন এবং কার্যকর সিস্টেম কনফিগারেশন পরীক্ষা করুন। এই নিবন্ধটি কোনো বেঞ্চমার্ক, সার্টিফিকেশন বা স্বাধীন পর্যালোচনার তারিখ সরবরাহ করে না।

## সম্পর্কিত

এই সত্তাগুলো এই নিবন্ধের সাথে যুক্ত। প্রতিটি লিঙ্কে ধরন দেখানো হয়েছে।

[AES-NI: আর্কিটেকচার রেফারেন্স](https://feex.it/wiki/l/bn/hardware/system/aes-ni/)[PCLMULQDQ এবং CLMUL: আর্কিটেকচার রেফারেন্স](https://feex.it/wiki/l/bn/hardware/system/pclmulqdq/)[AVX2: আর্কিটেকচার রেফারেন্স](https://feex.it/wiki/l/bn/hardware/system/avx2/)

## উৎস এবং যাচাইকরণ

সম্পাদকীয় মালিকানা: Feex। কোনো স্বাধীন পর্যালোচনার তারিখ রেকর্ড করা নেই। [আমরা কীভাবে গবেষণা করি](https://feex.it/wiki/research/).

- [Intel 64 and IA-32 Architectures Software Developer's Manual ](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html)· ভলিউম 1 এবং 2 নামযুক্ত নির্দেশিকা পরিবার এবং CPUID বর্ণনা করে; ভলিউম 3 স্টেট, পেজিং, VMX এবং সুরক্ষা নিয়ন্ত্রণ বর্ণনা করে। আর্কিটেকচার ডকুমেন্টেশন কোনো নির্দিষ্ট মডেলের জন্য সাপোর্ট নিশ্চিত করে না।
- [NIST সিকিউর হ্যাশ স্ট্যান্ডার্ড, FIPS 180-4 ](https://csrc.nist.gov/pubs/fips/180-4/upd1/final)· নামকৃত SHA অ্যালগরিদমগুলোকে সংজ্ঞায়িত করে। অ্যালগরিদম সংজ্ঞাগুলো ইঙ্গিত করে না যে মূল x86 SHA এক্সটেনশন এর প্রতিটি সদস্যকে ত্বরান্বিত করে।

## এই নিবন্ধটি কি দরকারী ছিল?

একটি হ্যাঁ বা না-ই যথেষ্ট। আপনি চাইলে একটি কারণ বেছে নিন, বা একটি ছোট মন্তব্য যোগ করুন।

একনজরে তথ্য

এই পৃষ্ঠার সংক্ষিপ্ত পরিচয়। স্পেসিফিকেশন, উৎস এবং সম্পূর্ণ বিবরণ নিবন্ধে রয়েছে।

---

Source: [Canonical Feex Wiki page](https://feex.it/wiki/l/bn/hardware/system/sha/)

[Developer guide](https://feex.it/wiki/developers/) | [API policy](https://feex.it/developers/api-policy/) | [Agent guidance](https://feex.it/wiki/llms.txt)
