Advanced Encryption Standard


"استاندارد رمزنگاری پیشرفته" که به اختصار AES نامیده می شود یک استاندارد و معیار برای رمزنگاری اطلاعات دیجیتال است. الگوریتم رمزنگاری AES (که ابتدا ریجیندل یا Rijndeal نامیده می شد) به وسیله ی دو دانشمند بلژیکی به نام های Vincent Rijmen و Joan Daemen طراحی شده است و به وسیله ی سازمان های دولتی برخی از کشور ها از جمله سازمان امنیت ملی آمریکا (NSA) تصدیق و استاندارد شده است و اکنون به صورت گسترده در نرم افزار های کاربردی استفاده می شود.
AES بر پایه ی یک قاعده ی طراحی که "شبکه جایگزینی-جایگشت" (Substitution-permutation network) نامیده می شود طراحی شده است. AES هم در نرم افزار و هم در سخت افزار سریع عمل می کند و برخلاف استاندارد پیشین خود یعنی DES از "شبکه فیستل" (Feistel network) استفاده نمی کند. حال این دو قاعده طراحی چیستند؟ برای ادامه دادن بحث استاندارد AES بایستی مقدمات علم رمز شناسی را بدانیم پس ابتدا به سراغ مفاهیم پایه آن میرویم. پس فعلا AES را فراموش کنید.

از دیرباز بشر به دنبال راهی بود تا اطلاعات سری و محرمانه خود را از دید نامحرمان به دور نگه دارد. بحث رمز نگاری قدمتی بسیار طولانی تر از عصر رایانه دارد و روش های این کار نیز از شروع تا به حال بسیار دچار تغییر و تحول شده اند. شاید بتوان گفت جنگ های تاریخ بشر از بزرگ ترین محرکه های پیشرفت علم رمز شناسی بوده اند. اکنون که ما در عصر رایانه به سر می بریم صد ها روش برای رمزنگاری وجود دارد و هر روز به دنبال راهی هستیم تا اطمینان خود را از اینکه اطلاعات در امنیت هستند، بیشتر کنیم. در بحش رمز شناسی یا کریپتوگرافی (cryptography) دو واژه ی معمول و کلی وجود دارد. رمز نگاری (encryption) و رمزگشایی (decryption) که همانگونه که از نامشان بر می آید "رمزنگاری" پروسه ای برای کد کردن و غیر قابل درک کردن اطلاعات برای افراد بیگانه و "رمز گشایی" پروسه ای برای تبدیل اطلاعات کد شد به اطلاعات قابل درک و فهم است. برای اطلاعات بیشتر میتونید مقاله کریپتوگرافی در سایت ویکیپدیا را مطالعه کنید.

Plaintext و Ciphertext :
منظور از plaintext همان محتوای اولیه یا ورودی برای رمزنگاری است که به صورت قابل درک و فهم برای انسان است و منظور از ciphertext محتوای رمزنگاری (امن) شده است که باید برای قابل فهم و استفاده بودن رمزگشایی شود.

کلید (key) :
"کلید" در رمز شناسی اطلاعاتی است خروجی تابعی یک الگوریتم رمز گذاری را مشخص می کند. بدون کلید الگوریتم ممکن است نتیجه مفید را ایجاد نکند در حقیقت کلید همان تبدیلات و عملیات هایی است که باید بر روی محتوا اولیه (ورودی) اعمال شوند تا ورودی رمزنگاری شود و از طرف دیگر عملیاتی که باید بر روی محتوای رمزنگاری شده اعمال شود تا از حالت رمز نگاری شده به حالت اولیه (قابل فهم) در آید.

الگوریتم های کلید متقارن - Symmetric-Key algorithm :
الگوریتم های کلید متقارن، کلاسی از الگوریتم ها در کریپتوگرافی هستند که از کلید های رمز یکسان (یا مرتبط) برای رمزگذاری و رمزگشایی استفاده می کنند.

الگوریتم های کلید نامتقارن - Asymmetric-Key algorithm :
برخلاف الگوریتم های متقارن اینگونه الگوریتم ها از دو کلید یکی برای رمز گذاری و یکی برای رمزگشایی محتوا استفاده می کنند و به کلید های "عمومی" (public) و "خصوصی" (private) معروف هستند.

Cipher :
Cipher یا Cypher الگوریتمی است که برای رمزنگاری یا رمزگشایی به کار می رود. پس اگر الگوریتم است باید شامل مراحل و قدم هایی تعریف شده و منظم باشد تا بتوان مانند یک رویه آن را دنبال کرد. دقت کنید که برخی از مفاهیم رمز شناسی تقریبا معانی مشابه دارند ولی ممکن است در برخی مواقع معانی تفاوت های کوچکی با هم داشته باشند. برای مثال code ، cipher و encipherment ممکن است به جای یکدیگر به کار روند.

سایفر می تواند به دو بخش block cipher و stream cipher تقسیم شود.
Block cipher :
block cipher یک الگوریتم کلید متقارن است که روی گروهی با طول ثابت از بیت ها که "بلوک" نامیده می شود، به صورت تبدیلات یکنواخت عمل می کند. یک اگلوریتم رمزگذاری بلاک سایفر برای مثال ممکن است یک بلوک 128 بیتی متن را به عنوان ورودی دریافت کند و یک خروجی متناظر 128 بیتی را تحویل دهد. تغییر روی ورودی به وسیله ی یک ورودی دوم که یک کلید مخفی است کنترل می شود. رمز گشایی نیز به صورت مشابه خواهد بود.
Affine Transformation تبدیلی که شامل ضرب در یک ماتریس همراه با جمع با یک بردار است.

Array مجموعه قابل شمارش از چیزهای مشابه ( مثلا آرایه ای از بیت ها).

Bit عددی باینری که دارای یکی از مقادیر 0 یا 1 است.

Block ترتیبی از بیت های باینری که شامل ورودی، خروجی ،حالت ،و کلید راند استپ طول ترتیب ، تعداد بیت هاییست که شامل می شود. به بلاک آرایه ای از بایت ها نیز گفته می شود.


Byte گروهی از هشت بیت که به هر دو صورت 1- آرایه ای از هشت بیت منفرد یا 2- یک واحد تک، رفتار می کند.


Cipher Key کلید سری و رمزنگارانه که به وسیله "جریان توسعه کلید" برای تولید مجموعه ای از کلید راند ها بکار می رود.

Ciphertext داده خروجی از Cipher یا ورودی Inverse Cipher.

Inverse Cipher سری هایی از تبدیلات که با استفاده از کلید رمز، متن رمزی را به متن اصلی تبدیل می کنند.
Key Expansion جریانی که برای تولید یک سری از کلید راند ها از کلید رمز بکار می رود.

Plaintext داده ورودی به Cipher یا خروجی Inverse Cipher .

Rijndael الگوریتم رمزنگاری که در استاندارد رمزگذاری پیشرفته (Advanced Encription Standard (AES)) بکار رفته است.

Round Key کلید راندها مقادیری هستند که از کلید رمز و با جریان توسعه کلید بوجود می آیند. در Cipher و Inverse Cipher آن ها به حالت (State) اعمال می شوند.

State متوسط ​​نتیجه رمزنگاری که می تواند مانند آرایه ای مستطیلی از بایت ها نمایش داده شود که دارای 4 سطر و Nb ستون است.( در ادامه به بیان Nb خواهیم پرداخت).

S-box جدول تعویض غیر خطی که در چندین تبدیل تعویض بایتی و در روال توسعه کلید برای ایجاد یک جانشینی یک به یک برای مقدار یک بایت بکار می رود.

Word گروهی از 32 بیت که می توانند به صورت یک آرایه چهار بیتی یا بصورت منفرد عمل کنند.

ادامه در قسمت دوم ...

ثبات در مرتب سازی (الگوریتم های پایدار)


ثبات در مرتب سازی یا مرتب سازی با ثبات، به الگوریتم هایی گفته می شود که نظم نسبی بین رکورد ها را با کلید های (ارزش) یکسان حفظ می کنند. اگر تمام کلید ها متفاوت هستند ، پس تمایز ضروری نیست ولی اگر کلید های یکسانی وجود دارند، پس یک الگوریتم مرتب سازی زمانی با ثبات یا پایدار است که هروقت که دو رکورد با یک کلید وجود داشت (به عنوان مثال R و S ) و R در لیست اصلی قبل از S آمده بود، آنگاه R در لیست مرتب شده هم قبل از S بیاید. هنگامی که عناصر یکسان، غیر قابل تمایز و تشخیص هستند، در داده هایی که کل عنصر، کلید است، "پایداری" مطرح نیست. به مثال زیر توجه کنید :

(6, 5) (1, 3) (7, 3) (2, 4)

در داده های بالا دو جواب محتمل است که یکی نظم نسبی رکورد در کلید های یکسان را حفظ می کند و دیگری که این چنین نیست :
(6, 5) (2, 4) (1, 3) (7, 3) حفظ نظم :
(6, 5) (2, 4) (7, 3) (1, 3) تغییر نظم : 
الگوریتم های نا پایدار ممکن است نظم نسبی عناصر را تغییر دهند ولی الگوریتم های پایدار اینگونه نیستند. الگوریتم های نا پایدار را میتوان با گسترش و دستکاری الگوریتم مقایسه به الگوریتم های پایدار تبدیل کرد. برای مثال الگوریتم "مرتب سازی حبابی" یک الگوریتم پایدار و الگوریتم "مرتب سازی انتخابی" نا پایدار است.

wikipedia.org

Intel Quick Sync Video



فناوری Quick Sync شرکت اینتل کار ساخت، ویرایش، تطابق و اشتراک ویدئو های شما را در خانه و به صورت آنلاین بدون به نیاز به صرف هزینه اضافی برای سخت افزار، تسریع می کند.
Quick Sync که در نسل دوم پردازنده های Core ارائه شده یک پیشرفت انقلابی در شتاب دهی سخت افزاری است که به شما امکان می دهد کاری که چند ساعت طول می کشد در چند دقیقه انجام دهید. ایجاد دیسک های DVD و Blu-ray ، ویرایش و تبدیل فایل های ویدئویی، آپلود فایل ها در اینترنت و .. همه با صرف کمترین زمان. کامپیوتر های شخصی دارای این فناوری می توانند با سرعت بسیار بیشتری نسبت به کامپیوتر های فاقد این فناوری فایل های ویدئویی را به یکدیگر تبدیل کنند. فایل های ویدئویی معمولا به صورت یک فرمت خاص فشرده و رمزنگاری و بر روی وسایل ذخیره سازی ذخیره می شوند. هنگامی که می خواهید ویدئوی خود را ببینید یا آن را به فرمت دیگری تبدیل کنید باید فایل ابتدا رمزگشایی و سپس دوباره رمزنگاری شود و این پروسه در بسیاری مواقع وقت گیر و سنگین است. فناوری Quick Sync رمزگذاری و رمزگشایی محتوای ویدئویی را سرعت می دهد و همچنین پردازنده را برای انجام کارهای دیگر نیز آزاد می گذارد و بنابراین عملکرد کلی سیستم را افزایش می دهد. این فناوری در حال حاضر به همراه پردازنده های sandy bridge اینتل عرضه می شود و برای استفاده از آن بایستی مادربورد شما قابلیت استفاده از گرافیک مجتمع را داشته باشد و نرم افزار های شما نیز این فناوری را پشتیبانی کند. 
منبع : intel.com