تحلیل توان
در علم رمزنگاری، تجزیه و تحلیل توان نوعی حمله کانال جانبی است که در آن مهاجم میزان مصرف توان از یک دستگاه رمزنگاری سخت‌افزاری (مانند کارت هوشمند، «» یا مدار مجتمع) را مورد مطالعه قرار می‌دهد. در این حمله مهاجم می‌تواند به‌طور غیر تهاجمی کلیدهای رمزنگاری و سایر اطلاعات مخفی را از دستگاه استخراج کند.
تجزیه و تحلیل توان ساده (SPA) شامل تفسیر بصری "آثار توانی" (power traces) یا نمودارهای فعالیت الکتریکی در زمان است. آثار توانی با استفاده از دادن ورودی‌های متفاوت به دستگاه و بررسی شکل موج مصرف توان از یکی از پایه‌های دستگاه بدست می‌آیند. تجزیه و تحلیل توان تفاضلی (DPA) یک شکل پیشرفته تر از تجزیه و تحلیل توان است که می‌تواند به یک مهاجم اجازه دهد مقادیر میانی و خاصی را در الگوریتم رمزگذاری و در محاسبات آن از طریق تجزیه و تحلیل آماری داده‌های جمع‌آوری شده از چندین عملیات رمزنگاری محاسبه کرده و بدست آورد. SPA و DPA در سال ۱۹۹۸ توسط پل کوچر، جوشوا جافه و بنجامین جون به جامعه رمزنگاری آزاد معرفی شدند.
تجزیه و تحلیل توان ساده (SPA) یک حمله کانال جانبی است که شامل بررسی بصری نمودارهای جریان مصرفی مورد استفاده یک وسیله در طول زمان است. هنگامی که دستگاه یک عملیات مختلفی (مانند ضرب یا توان رسانی پیمانه ای در الگوریتم‌های رمز گذاری) را انجام می‌دهد، تغییرات در مصرف توان رخ می‌دهد. به عنوان مثال، دستورالعمل‌های مختلفی که توسط یک ریز پردازنده انجام می‌شود، مشخصه‌های مصرف توان متفاوتی دارند. در نتیجه، در یک اثرِ توانی (power trace) از کارت هوشمند با استفاده از رمزگذاری DES، تمامی شانزده مرحله از این الگوریتم به وضوح قابل مشاهده خواهد بود. به‌طور مشابه، عملیات توان رسانی و ضرب در پیاده‌سازی‌های RSA غالباً قابل تفکیک است و یک مهاجم را قادر به محاسبه کلید مخفی می‌کند. حتی اگر میزان تغییرات در مصرف توان اندک باشد، موج نگارهای دیجیتالی استاندارد می‌توانند تغییرات ناشی از داده را به راحتی نشان دهند. فیلترهای فرکانس و توابع میانگین گیر (مانند نمونه‌هایی که در داخل موج نگارها تعبیه شده‌اند) اغلب برای فیلتر کردن ادوات با فرکانس بالا استفاده می‌شوند.
تجزیه و تحلیل توان تفاضلی (DPA) یک حمله کانال جانبی است که شامل تجزیه و تحلیل آماری اندازه‌گیری‌های مصرف توان از یک سیستم رمزنگاری است. این حمله رفتار مصرف توان در یک لحظه خاص از آثار توانی مختلف را بر اساس یک مقدار میانی (یک بیت فرضی در الگوریتم رمز که جریان الگوریتم را تغییر می‌دهد) را در دسته‌بندی‌های مجزا صورت داده و سپس الگوی مصرف توان ریزپردازنده‌ها یا سایر سخت‌افزارها را هنگام انجام عملیات با استفاده از کلیدهای مخفی به‌صورت میانگین‌گیری آماری و سپس تفاضل این مقادیر، افشا می‌کند. حملات DPA دارای ویژگی‌هایی از جمله "پردازش سیگنال" و "تصحیح خطا" می‌باشند که می‌توانند اطلاعات مخفی از اندازه‌گیری‌هایی که حاوی نویز بیش از حد هستند را برای استخراج بهره‌برداری نمایند. این در حالی است که در حمله تجزیه و تحلیل توان ساده، اطلاعات مخفی با نویز زیاد، قابلیت استخراج را نخواهد داشت. با استفاده از DPA، یک مهاجم می‌تواند با تجزیه و تحلیل اندازه‌گیری مصرف توان، کلیدهای مخفی ناشی از چندین عملیات رمزنگاری که توسط یک دستگاه یا کارت هوشمند آسیب‌پذیر صورت گرفته را بدست آورد.
البته حمله DPA دارای دو نوع تک بیتی و چند بیتی می‌باشد. در نوع تک بیتی آثار توانی اندازه‌گیری شده از دستگاه قربانی (کارت هوشمند یا دیگر ادوات) بر اساس یک مقدار میانی یک بیتی در الگوریتم رمزگذاری دسته‌بندی می‌شوند. هر کدام از این آثار توانی بر اساس تک بیت فرضی مقدار میانی در دستهٔ صفرها یا یک‌ها قرار می‌گیرند. سپس در مرحله آخر از هرکدام از این آثار توانی دسته‌بندی شده، میانگین گرفته شده سپس از همدیگر تفاضل خواهند شد. اگر در اثر توانی نهایی یک مقدار ناهنجاری(Spike) در شکل موج مشاهده شود بیت فرضی (مقدار میانی) حدس زده شده درست بوده در غیر این صورت بیت فرضی اشتباه مد نظر قرار گرفته‌است. در حمله چند بیتی به جای یک بیت فرضی میانی، یک بایت (و یا چند بیت) به عنوان مقدار میانی در نظر گرفته شده و بر اساس فاصله همینگ دسته‌بندی صورت می‌گیرد.
تجزیه و تحلیل توان تفاضلی با مرتبه بالا (HO-DPA) یک شکل پیشرفته از حمله DPA است. HO-DPA باعث می‌شود چندین منبع داده و در مدت زمانی مختلف در تجزیه و تحلیل گنجانیده شوند. HO-DPA نسبت به SPA و DPA بسیار کمتر مورد استفاده قرار می‌گیرد، چراکه این تجزیه و تحلیل بسیار پیچیده بوده و دستگاه‌های آسیب‌پذیر با حملات SPA یا DPA راحت تر قابل نفوذ هستند.
تجزیه و تحلیل توان راهی برای «دیدن داخل» سخت‌افزار و تراشه فراهم می‌کند در غیر اینصورت سخت‌افزار مدنظر «غیرقابل نفوذ» است. به عنوان مثال، زمانبندی کلیدی در الگوریتم DES شامل چرخش بیتی (rotate) ثبات‌های ۲۸ بیتی کلید است. در بسیاری از پیاده‌سازی‌های الگوریتم فوق، بیت کم ارزش (LSB) بررسی می‌شود و بر اساس ۰ یا ۱ بودن آن تصمیمات متناسب ادامه الگوریتم اتخاذ می‌گردد. همان‌طور که در قسمت‌های قبل ذکر گردید مقدار بیتی که بتواند جریان الگوریتم رمز را تغییر دهد نقطه عطفی برای نفوذ خواهد بود. اگر بیت LSB مذکور ۱ باشد مقدار ثبات یک بیت به سمت راست می‌چرخد و مقدار ۱ در پر ارزش‌ترین مکان ثبات(MSB) قرار می‌گیرد و اگر این بیت ۰ باید ثبات یک بیت به سمت راست شیفت داده شده و مقدار ۰ در پر ارزش‌ترین مکان ثبات(MSB) قرار می‌گیرد. تجزیه و تحلیل توان می‌تواند بین این فرایندها تمایز قائل شده و یک مهاجم را قادر می‌سازد تا بیت کلید مخفی را حدس زده و تعیین کند.
پیاده‌سازی الگوریتم‌هایی مانند AES و DES سه‌گانه -که اعتقاد بر این است که از لحاظ ریاضی قوی هستند- ممکن است با استفاده از حملات تجزیه و تحلیل توان، به شکلی ناچیزی قابلیت شکست داشته باشند (هر چند حمله‌های توانی بسیار موفقی به الگوریتم AES در آزمایشگاه سامانه‌های امن و هوشمند دانشکده مهندسی کامپیوتر دانشگاه شریف ثبت شده‌اند). در نتیجه، حملات تجزیه و تحلیل توان، ضعفِ در عناصر رمزنگاری الگوریتمی و امنیت پیاده‌سازی را با هم ترکیب می‌کنند.
برای کاربردهایی که ممکن است وسایل و ادوات در اختیار مهاجمین قرار بگیرند، محافظت در برابر حملات تجزیه و تحلیل توان به‌طور کلی یک نیاز اصلی و مبرم برای طراحی خواهد گردید. طبق گزارش‌ها، از حملات تحلیل توانی در برابر ماژول‌های دسترسی مشروط (مانند ماژول‌های دسترسی به شبکه‌های ماهواره ای که نیاز به پرداخت هزینه برای تماشا دارند) نیز استفاده شده‌است.
تجهیزات لازم برای انجام حملات تجزیه و تحلیل توان به‌طور گسترده‌ای در دسترس است. به عنوان مثال، بیشتر موج نگارهای دیجیتال، ذخیره‌سازی و قابلیت جمع‌آوری داده‌های لازم را فراهم می‌کنند و تجزیه و تحلیل داده‌ها معمولاً با استفاده از رایانه‌های شخصی معمولی انجام می‌شود. همچنین ابزارها و محصولات تجاری طراحی شده برای آزمایشگاه‌ها (مانند بُردهای SASEBO-G) نیز موجود است.
حملات تجزیه و تحلیل توان به‌طور کلی توسط یک دستگاه قابل شناسایی نیست زیرا نظارت، تحلیل و ارزیابی مهاجم به‌طور عادی یک حرکت منفعل محسوب می‌گردد. علاوه بر این، حملات فوق جزو حملات غیر تهاجمی می‌باشند. در نتیجه راهبردهای محافظتی همچون، سِپَر و پوشش ساختاری، قابلیت‌های ممیزی و آشکارسازهای حمله بی اثر هستند. درعوض، مهندسان رمزنگاری باید از این حیث اطمینان حاصل نمایند که تغییرات توانی دستگاه‌ها، اطلاعات قابل استفاده ای برای مهاجمان را نشر نمی‌دهد.
تجزیه و تحلیل توان ساده می‌تواند به راحتی پرش‌های شرطی یا همان conditional branch (شاخه‌هایی که جریان الگوریتم توسط آن عوض می‌شود) را در اجرای الگوریتم رمزنگاری متمایز کند. چرا که یک دستگاه بسته به اینکه پرش شرطی گرفته انجام بپذیرد یا خیر می‌توان کارهای مختلفی را انجام دهد (مصرف توان متفاوت در صورت پرش یا عدم پرش ایجاد می‌گردد). به همین دلیل، باید مراقب بود تا مقادیر پنهانی و اطلاعات رمزی در پرش‌های شرطی حین اجرای الگوریتم و نرم‌افزارهای رمزنگاری تأثیر نگذارند. یکی از راهکارهای محافظت در برابر حمله SPA در الگوریتم AES این است که هر دو عملیات توان رسانی و ضرب پیمانه ای صورت بگیرد و توان مصرف بنماید ولی بر اساس مقدار صحیح یا غلط بودن شرط، حاصل این عملیات به ثبات انتقال داده شود. به عبارتی در این روش محافظی عملیات انتقال بسیار کمتر از عملیات ضرب و توان رسانی توان مصرف می‌نماید و یک مهاجم نمی‌تواند آنالیز صحیحی از مصرف توان صورت دهد. راهبرد مشروح باعث اتلاف توان اضافی می‌گردد. منابع دیگر تغییر توان از جمله تفاوت‌های ریزکدها (میکروکدها در سطح ریز معماری)، پرش‌های ایجاد شده توسط کامپایلرها و تغییرات مصرف توان در ضرب‌کننده نیز معمولاً منجر به آسیب‌پذیری SPA می‌شوند.
پیشگیری از حمله تجزیه و تحلیل توان تفاضلی دشوارتر است زیرا حتی بایاس‌های ناچیز (Spikeهای توانی کوچک) در مصرف توان می‌تواند به نقاط ضعف قابل استفاده منجر شود. چرا که این بایاس‌ها در نهایت به‌صورت برآیندی از هزاران نمونه از اثر توانی نشان داده خواهند شد. پاره ای از اقدامات متقابل شامل تغییرات در الگوریتم را به گونه ای که عملیات رمزنگاری روی داده‌هایی واقعی اتفاق بیفتد، انجام می‌دهند؛ که اینکار توسط برخی از روابط ریاضی مشتق شده از عملیات رمزنگاری حاصل می‌شود. یک رویکرد این است که پارامترهای کورکننده برای تصادفی کردن مقادیر آنها استفاده شود. دیگر استراتژی‌های متقابله برای کاهش اثربخشی حملات DPA شامل تغییرات سخت‌افزاری به شرح ذیل است: تغییر فرکانس کلاک داخلی تراشه به جهت ناهمگام سازی سیگنال‌های الکتریکی که باعث بازگشت به بهبودهایی برای الگوریتم DPA سنتی می‌گردد.
روش‌های بسیاری برای جلوگیری از حمله SPA و DPA در تحقیقات دانشگاهی ارائه شده‌است. در حالی که سیستم‌های مبتنی بر کلید عمومی مانند RSA معمولاً با بهره‌برداری از خواص ساختارهای جبری زیرین محافظت می‌شوند (به عنوان نمونه خاصیت همومورفیک بودن عملیات ضرب در الگوریتم RSA)، ساختارهای دارای کلید متقارن مانند رمزکننده‌های بلوکی به روش‌های متفاوتی (به عنوان مثال روش "نقاب گذاری") احتیاج دارند.
برخی از شرکت‌ها، مانند RamBus، ادعاهای مالکیت معنوی (اختراع) در خصوص برخی مکانیزم‌های دفاعی در برابر حمله DPA را دارند.