حمله کانال جانبی
اقدامات متقابل

از آنجا که حملات کانال جانبی به رابطه اطلاعات فاش شده از طریق یک کانال جانبی و داده‌های مخفی متکی هستند، اقدامات متقابل به دو دسته عمده تقسیم می‌شوند: (۱) حذف یا کاهش انتشار این دست اطلاعات (۲) حذف ارتباط بین اطلاعات فاش شده و داده‌های مخفی، که به‌طور معمول از طریق نوعی تصادفی کردن متن رمز شده که داده‌ها را به گونه ای تبدیل می‌کند که پس از تکمیل فرایند رمزنگاری قابل خنثی شدن باشد
در دسته اول، نمایشگرهایی با محافظ مخصوص به منظور کاهش تشعشعات الکترومغناطیسی که حساسیت به حملات TEMPEST را کاهش می‌دهند، امروزه تجاری شده‌اند. بهبود و فیلترینگ توان خطوط انتقال قدرت می‌تواند به جلوگری از حملات مانیتورینگ نیرو کمک کند؛ هر چند چنین اقداماتی باید با احتیاط استفاده شوند چرا که حتی همبستگی‌های بسیار کوچک می‌توانند باقی بمانند و امینت را به چالش بکشاند. محفظه‌های فیزیکی می‌توانند خطر نصب پنهانی میکروفون‌ها (برای مقابله با حملات صوتی) و سایر دستگاه‌های مانیتورینگ خیلی کوچک (در مقابله با حمله رسم توان CPU یا حملات تصویربرداری حرارتی) را کاهش دهند.
یکی دیگر از اقدامات متقابل دسته اول، گمراه سازی کانال منتشر شده با نویز است. به عنوان مثال، یک تأخیر تصادفی می‌تواند برای جلوگیری از حملات زمان‌بندی اضافه شود؛ اگرچه مخالفان می‌توانند میانگین‌گیری از اندازه‌گیری‌های چندگانه این تاخیرها را جبران کنند (یا به‌طور کلی، اندازه‌گیری‌های بیشتری را در تحلیل استفاده کنند). با افزایش مقدار نویز در کانال جانبی، دشمن باید اندازه‌گیری‌های بیشتری را جمع‌آوری کند.
یکی دیگر از اقدامات متقابل در دسته اول، استفاده از نرم‌افزار آنالیز امنیتی برای شناسایی دسته‌های خاصی از حملات کانال جانبی است که می‌توان در طی مراحل اساسی طراحی سخت‌افزار پیدا شوند. حملات زمانبندی و حملات حافظه نهان هر دو از طریق بعضی نرم‌افزارهای تحلیل امنیتی تجاری که امکان تست آسیب‌پذیری را فراهم می‌کنند، قابل شناسایی هستند. جامع‌ترین روش برای استفاده از این اقدام متقابل، ایجاد یک چرخه عمر توسعه ایمن سخت‌افزاری شامل بهینه‌سازی پلتفرم‌های حلیل امنیتی در دسترس در مراحل مربوط به چرخه توسعه سخت‌افزار می‌باشد.
در مورد حملات زمانبندی علیه اهدافی که زمان محاسبه آنها به شمارش کلاک سایکل‌های گسسته تقسیم شده، یک اقدام متقابل مؤثر، طراحی نرم‌افزار به صورت هم‌زمان می‌باشد. این، حمله به زمانبندی را غیرممکن می‌سازد. چنین اقدامات متقابلی در عمل می‌تواند دشوار باشد؛ زیرا حتی هر دستور العمل می‌تواند در پردازنده‌های گوناگون، زمان اجرای متفاوتی داشته باشد.
یک راه مقابله نسبی در برابر حملات تحلیل توان ساده (نه تحلیل توان تفاضلی) این است که نرم‌افزاری را طراحی کنیم که program counter آن در امن‌ترین حالت ممکن قرار داشته باشد (PC-Secure). در یک برنامه PC-Secure، مسیر اجرا به مقادیر مخفی بستگی ندارد. به عبارت دیگر، انشعابات شرطی فقط به اطلاعات عمومی بستگی دارند. (این شرایط محدودیت بیشتری نسبت به کد isochronous، و محدودیت کمتری نسبت به کد بدون انشعاب دارد) اگرچه عملیات ضرب در پردازنده‌ها بیشتر از NOP توان مصرف می‌کند، استفاده از یک مسیر اجرای ثابت از بروز این دست اختلافات توان وابسته به عملیات (تفاوت در توان مصرفی بین شاخه‌های مختلف) و در نتییجه نشت هر گونه اطلاعات مخفی جلوگیری می‌کند.
دلیل دیگری که یک کد non-isochronous باشد، وجود حافظه پنهان در CPUهای مدرن است؛ دسترسی به اطلاعاتی که ندرتاً استفاده می‌شوند موجب بروز هزینه زمانی زیادی می‌شود و در نتیجه افشای برخی اطلاعات مربوط به دفعات استفاده از بلوک‌های حافظه را در پی دارد. کد رمزنگاری شده طوری طراحی می‌شود که با استفاده روش‌های قابل پیش‌بینی استفاده از حافظه، در مقابل حملات کَش مقاوم باشد (نظیر دسترسی به داده‌های ورودی، خروجی و انجام این کار بر اساس یک الگوی ثابت). به عنوان مثال، از جستجوی جداول جستجوی وابسته به داده باید احتراز کرد زیرا حافظه پنهان ممکن است حاوی بخشی از داده‌های این جداول باشد.
سایر اقدامات متقابل جزئی سعی در کاهش میزان اطلاعات به دست آمده از تفاضل توان وابسته به داده‌ها دارند. بعضی از عملیات‌ها از توانی استفاده می‌کنند که به تعداد بیت‌های ۱ در داده مخفی وابسته می‌باشد. استفاده از یک کد با وزن ثابت (مانند استفاده از گیت‌های Fredkin یا رمزگذاری دو ریلی) می‌تواند نشت اطلاعات مرتبط با وزن Hamming داده مخفی را کاهش دهد؛ اگرچه ارتباطات قابل بهره‌برداری ممکن است باقی بماند مگر اینکه تعادل کامل برقرار باشد. این «طراحی متعادل» می‌تواند به وسیله اثر متقابل داده و مکمل آن بر روی یکدیگر، تقریب زده شود.
چندین CPU امن به عنوان CPUهای غیر همزمان ساخته شده‌اند. آن‌ها هیچ مرجع جهانی زمانبندی ای ندارند؛ از آنجا که این پردازنده‌ها برای حملات زمانبندی و توان را دشوار کنند، تحقیقات دریافته اند که تغییرات زمان‌بندی در مدارهای ناهمگام برای حذف سخت‌تر است. [نیازمند منبع]
نمونه بارز دسته دوم تکنیکی است که با عنوان پرده کور شناخته می‌شود. در مورد رمزگشایی RSA با نمای مخفی  d و نمای رمزگذاری مربوطه  e و مدول  m، این روش به شرح زیر صورت می‌پذیرد (برای سادگی، کاهش مدولار m از فرمول‌ها حذف شده‌است): قبل از رمزگشایی، یعنی قبل از محاسبه نتیجه  y^{d} برای متن رمز شده  y ، سیستم یک عدد تصادفی  r را انتخاب می‌کند و آن را با نمای عمومی  e رمزگذاری کرده تا r^{e} بدست آید. سپس رمزگشایی روی y\cdot r^{e} انجام می‌شود تا عبارت  {(y\cdot r^{e})}^{d}=y^{d}\cdot r^{e\cdot d}=y^{d}\cdot r به دست آید. از آنجا که سیستم رمزگشایی  r را انتخاب کرده، می‌تواند مدول  m را محاسبه کند تا فاکتور  r را در نتیجه حذف نموده و  y^{d} (نتیجه واقعی رمزگشایی) را به دست آورد. برای حمله‌هایی که نیازمند جمع‌آوری اطلاعات کانال جانبی از عملیات‌هایی که مهاجم داده‌های آن را کنترل می‌کند، روش پرده کور یک اقدام متقابل مؤثر است چرا که عملیات واقعی بر روی نسخه تصادفی داده اجرا می‌شود که مهاجم کنترل و دانشی نسبت به آن ندارد.
یک اقدامات متقابل عمومی تر (که در مقابل همه جملات کانال جانبی مؤثر است) ماسک کردن است. اصل ماسک کردن جلوگیری از هرگونه اثرگذاری مستقیم بر روی داده‌های حساس  y و در عوض اثرگذاری بر روی به اشتراک گذاشته شدهٔ آن است: مجموعه ای از متغیرها (به نام "سهام")  y_{1},...,y_{d} به گونه ای که  y=y_{1}\oplus ...\oplus y_{d}  ( \oplus  عملیات XOR است). یک مهاجم باید تمام مقادیر به اشتارک گذاشته شده را بازیابی کرده تا بتواند اطلاعات معنی داری بدست آورد.
یکی دیگر از اقدامات متقابل اندازه‌گیری سطح کارآمد انرژی در برابر هر دو حمله کانال جانبی، یعنی توان و تشعشعات الکترومغناطیسی، که اثر میرایی بر سخت‌افزار دارند، نشان داده شده در ترکیب با مسیریابی محلی سطح پایین فلز، تا یک میلیارد جهش مقاومند. این تکنیک یک آنالیز جعبه سفید از رمزنگاری IC را انجام می‌دهد و قبل از رسیدن به لایه‌های فلزی سطوح بالاتر که به عنوان آنتن بهتر عمل می‌کنند، اطلاعات حیاتی را در قالب کانال‌های جانبی تشعشعات الکترومغناطیسی به‌طور قابل ملاحظه ای سرکوب می‌کنند.