یعنی مثلا اگر حرف q داشته باشیم، احتمال اینکه حرف بعدی u باشه خیلی زیاده. چون اکثر کلماتی که q دارن، حرف بعدیشون u هست*:
technique, frequency, queen, question, quiet, quality, request, quarter
یعنی میشه موقع انتقال اطلاعات از u بدون کاهش معنا صرفنظر کرد چون توی این حالات معنای خاصی نمیده و تا q رو ببینیم، خودمون میدونیم که بعدیش u هست.[1]
اگر حروف انگلیسی در متن بامعنا رندوم بودن، Shannon میگه هر حرف انگلیسی 4.7 بیت اطلاعات جابهجا میکنه (log_2{26} = 4.7) [2]. اما در یک متنِ بامعنا هر حرف صرفا حدود 1.5 بیت اطلاعات به همراه داره. یعنی درواقع 4.7 - 1.5 = 3.2 بیت redundancy داریم! 📉
این برای ما خوب نیست چون میتونه به خیلی از حملهها در شکستن الگوریتم رمزکردن** اطلاعات -که کسی نفهمه چی گفتیم و فقط خودمون بفهمیم- کمک کنه. چرا؟ چون اگر الگوریتم ما اینها رو پنهون نکنه، حملهکننده میتونه از اطلاعات از پیشداشته مثل بالا یا تکرار بیشتر حروف (مثلا E بیشتر از Z تو انگلیسی تکرار میشه و تو حروف دوتایی th بیشتر از بقیه تکرار میشه) برای شکستن متن بهره ببره. 🔓
پ.نها:
* طبیعتا کلمات غیر انگلیسی مثل: Qatar, Iraqi, ... رو در نظر نگرفتیم.
** مثلا یه نمونه رمز، تبدیل
how are you
به
ipx bsf zpv
هست که به جای هر حرف، حرف بعدیش توی حروف الفبا رو گذاشتیم 🔁
[1] Communication Theory of Secrecy Systems, C. E. Shannon
[2] A Mathematical Theory of Communication, C. E. Shannon