£¨1£©. LDPCÂëµÄÒëÂëËã·¨£¬ÊÇÒ»ÖÖ»ùÓÚÏ¡Êè¾ØÕóµÄ²¢Ðеü´úÒëÂëËã·¨£¬ÔËËãÁ¿ÒªµÍÓÚTurboÂëµÈµÄÒëÂëËã·¨£¬²¢ÇÒÓÉÓڽṹ²¢ÐеÄÌØµã£¬ÔÚÓ²¼þʵÏÖÉϱȽÏÈÝÒס£Òò´ËÔÚ´óÈÝÁ¿Í¨ÐÅÓ¦ÓÃÖУ¬LDPCÂë¾ßÓÐÓÅÊÆ¡£
£¨2£©. LDPCÂëµÄÂëÂÊ ¿ÉÒÔÈÎÒâ¹¹Ô죬Óиü´óµÄÁé»îÐÔ¡£
£¨3£©. LDPCÂë¾ßÓе͵ĴíÎóÆ½²ã£¬¿ÉÒÔÓ¦ÓÃÓÚÓÐÏßͨÐÅ¡¢Éî¿ÕͨÐÅÒÔ¼°´ÅÅÌ´æ´¢¹¤ÒµµÈ¶ÔÎóÂëÂÊÒªÇóºÜ¿Á¿ÌµÄ³¡ºÏ¡£
¶øLDPCÂëµÄÁÓÊÆÔÚÓÚÒÔϼ¸µã£º
£¨1£©. Ó²¼þ×ÊÔ´ÐèÇó±È½Ï´ó¡£È«²¢ÐеÄÒëÂë½á¹¹¶Ô¼ÆËãµ¥ÔªºÍ´æ´¢µ¥ÔªµÄÐèÇó¶¼ºÜ´ó¡£ £¨2£©. ±àÂë±È½Ï¸´ÔÓ£¬¸üºÃµÄ±àÂëËã·¨»¹ÓдýÑо¿¡£Í¬Ê±£¬ÓÉÓÚÐèÒªÔÚÂ볤±È½Ï³¤µÄÇé¿ö²ÅÄܳä·ÖÌåÏÖÐÔÄÜÉϵÄÓÅÊÆ£¬ËùÒÔ±àÂëʱÑÓÒ²±È½Ï´ó¡£ £¨3£©. Ïà¶Ô¶øÑÔ³öÏֱȽÏÍí£¬¹¤Òµ½çÖ§³Ö»¹²»¹»¡£
LDPCÂë¾ßÓо޴óµÄÓ¦ÓÃDZÁ¦£¬Ä¿Ç°Òѹ㷺ӦÓÃÓÚÉî¿ÕͨÐÅ¡¢¹âÏËͨÐÅ¡¢ÎÀÐÇÊý×ÖÊÓÆµ¡¢ÒôƵ¹ã²¥¡¢Êý×Öˮӡ¡¢´Å/¹â/ȫϢ´æ´¢¡¢Òƶ¯ºÍ¹Ì¶¨ÎÞÏßͨÐÅ¡¢µçÀµ÷ÖÆ/½âµ÷Æ÷ºÍÊý×ÖÓû§Ïߣ¨DSL£©µÈÁìÓò¡£LDPCÂëÒѳÉΪµÚËÄ´úͨÐÅϵͳ£¨4G£©Ç¿ÓÐÁ¦µÄ¾ºÕùÕߣ¬¶ø»ùÓÚLDPCÂëµÄ±àÂë·½°¸ÒѾ±»ÏÂÒ»´úÎÀÐÇÊý×ÖÊÓÆµ¹ã²¥±ê×¼DVB-S2²ÉÄÉ¡£LDPCÂëÓÉÓÚ¸ü½Ó½üÏãÅ©ÏÞµÄÎóÂëÂÊÐÔÄÜ£¬ÍêÈ«²¢Ðеĵü´úÒëÂëË㷨ʹÆä±ÈTurboÂëÔÚ²¿·Ö³¡ºÏµÄÓ¦ÓÃǰ¾°¸üΪ¹ãÀ«¡£ÔÚÐí¶àÐèÒª¸ß¿É¿¿ÐÔµÄͨÐÅϵͳÖУ¬LDPCÂë³ÉÁËTurboÂëµÄÓÐÁ¦¾ºÕùÕß¡£LDPCÂëĿǰÒѾ±»Ò»Ð©Í¨Ðź͹㲥±ê×¼Ëù²ÉÄÉ£¬·¢Õ¹ÊÆÍ·¸Ä¹ýÁËTurboÂë¡£
UWB£¨³¬¿í´ø£©ÐźŵÄÌØµãÊǵÍÐÅÔë±È¡¢¿¹¶à¾¶ÄÜÁ¦Ç¿¡¢¸ßÊý¾ÝËÙÂʺÍÐÅºÅµÄÆµÆ×¿í¡¢¹¦Âʵͣ¬Òò´ËÆäÐŵÀ±àÂëÓ¦¸Ã¾ßÓнÏÇ¿µÄ¾À´íÄÜÁ¦ºÍ½ÏµÍµÄ±àÒëÂ븴ÔÓ¶È¡£LDPCÂëͬʱ¾ßÓÐÒÔÉÏÁ½¸ö·½ÃæµÄÌØÐÔ¡£
½«LDPCÂëÓ¦ÓÃÓÚCDMA£¨Âë·Ö¶àÖ·£©ÏµÍ³½«´ó´óÌá¸ßͨÐÅϵͳÈÝÁ¿¡£ÓÉÏà¹Ø·ÂÕæ½á¹û¿É¼û£¬Ê¹ÓÃLDPCÂëµÄCDMAϵͳµÄÈÝÁ¿ÊÇʹÓÃÕý½»¾í»ýÂëµÄCDMAϵͳÈÝÁ¿µÄ2±¶£¬ÊÇδʹÓþÀ´íÂëµÄCDMAϵͳÈÝÁ¿µÄ5±¶¡£Ëæ×ÅÒÆ¶¯Í¨ÐÅÓû§µÄÈÕÒæÔö¶à£¬LDPCÂ뽫ÔÚδÀ´µÄÒÆ¶¯Í¨ÐŵÄÀ©ÈÝÖз¢»ÓÖØÒª×÷Óá£
°ÑLDPCÂëÓÃÔÚDSL£¨Êý×ÖÓû§Ïߣ©ÖУ¬ÓÉÏà¹Ø·ÂÕæ½á¹û¿É¼û£¬LDPCÂë»ñµÃ±àÂëÔöÒæÓëTurboÂëÏ൱£¬µ«ÊÇÆäÔËËãÁ¿´ó´óµÍÓÚTurboÂ룬ÇÒûÓÐTurboÂëÖгöÏֵIJî´íƽµ×ÏÖÏó¡£Ä£Äâ½á¹û»¹ÏÔʾ£¬ÔÚ0.5 ms 10 msÑÓʱÌõ¼þÏÞÖÆÏ£¬Æä»ñµÃµÄ±àÂëÔöÒæÔ¶¸ßÓÚG.922.1½¨ÒéÖÐʹÓõÄTCMËù»ñµÃµÄ±àÂëÔöÒæ¡£
FlarionËù¿ª·¢µÄ¼¯³ÉÁËV-LDPCµÄflash-OFDM£¨Õý½»Æµ·Ö¸´Óã©Òƶ¯ÎÞÏßоƬ×éÒÑÓÃÓÚ»ùÓÚIPµÄÒÆ¶¯¿í´øÍø£¬ÒÔÔö´ó´«Êä¾àÀëºÍÔÚÎÞÏßÐŵÀÖеļáÈÍÐÔ£¬¶øÇÒÓ²¼þʵÏֽϼòµ¥¡£flash-OFDMÓÃÓÚÒÆ¶¯É豸ÉÏ£¬Æä×î´óÊý¾ÝËÙÂÊ¿É´ï ¡£
´ËÍ⣬LDPCÂëÔÚÓмÇÒäË¥ÂäÐŵÀ¡¢Ñ¹ËõͼÏñ´«ÊäºÍ´Å¼Ç¼ÐŵÀµÈ·½ÃæÒ²ÓÐÖØÒªÓ¦ÓᣠM.Chiain µÈ¶Ô LDPC ÂëÓÃÓÚÓмÇÒäË¥ÂäÐŵÀʱµÄÐÔÄܽøÐÐÁËÆÀ¹À¡£B.Myher Ìá³öÒ»ÖÖËÙÂÊ×ÔÊÊÓ¦ LDPC ±àÂëµ÷ÖÆµÄ·½°¸ÓÃÓÚÂý±ä»¯Æ½Ì¹Ë¥ÂäÐŵÀ£¬¾Íƹ㻹¿ÉÓÃÓÚ FEC-ARQ ϵͳ¡£ VOCAL Technologies.Ltd Ìá³öÁËÒ»ÖÖÓÃÓÚ WLAN µÄLDPC/Turbo ²»¶Ô³Æ½â¾ö·½°¸£¬¼´ÏÂÐÐÁ´Â·²ÉÓà LDPC Â룬ÉÏÐÐÁ´Â·²ÉÓà TurboÂë¡£Ñо¿±íÃ÷²ÉÓø÷½°¸ºóÓÃÓÚIEEE802.11 a/b/g WLANÒÆ¶¯ÖÕ¶ËµÄµç³ØÊÙÃü¿ÉÑÓ³¤ÖÁÔÀ´µÄ4±¶¡£
¹¤Òµ½çÒ²¼º¾ÓÐ LDPC ±àÒëÂëоƬÎÊÊÀ¡£ÆäÖУ¬´¦ÓÚÁìÏȵØÎ»µÄ Flarion¹«Ë¾ ÍÆ³öµÄ»ùÓÚ ASIC µÄ Vector-LDPC ½â¾ö·½°¸Ê¹ÓÃÁËÔ¼ 260 ÍòÃÅ£¬×î¸ß¿ÉÒÔÖ§³Ö 50000µÄÂ볤£¬0.9 µÄÂëÂÊ£¬×î´óµü´ú´ÎÊýΪ 10£¬ÒëÂëÆ÷¿ÉÒÔ´ïµ½ 10Gbps µÄÍÌÍÂÁ¿£¬ÆäÐÔÄܼº¾·Ç³£½Ó½üÏãÅ©ÏÞ£¬¿ÉÒÔÂú×ãĿǰ´ó¶àÊýͨÐÅÒµÎñµÄÐèÇó¡£AHA ¹«Ë¾¡¢Digital Fountain¹«Ë¾Ò²¶¼ÍƳöÁË×Ô¼ºµÄ±àÒëÂë½â¾ö·½°¸¡£
LDPCÂë½Ó½üÏãÅ©ÏÞµÄÐÔÄÜÊÇÔÚÂ볤·Ç³£´ó£¬µü´ú´ÎÊýºÜ¶à£¬µÍÐÅÔë±ÈÌõ¼þϵóöµÄ¡£¶øÔÚÂ볤Ïà¶Ô¶Ì£¨ÀûÓÚ±àÂ룩£¬ÂëÂʽϸߣ¨ £©Çé¿öϵÄLDPCÂ뻹ÔÚÑо¿¡£LDPCÂëÈçºÎÓÃÓÚMIMOϵͳ£¬OFDMϵͳҲÔÚ½øÒ»²½µÄÑо¿ÖС£
×ÛÉÏËùÊö£¬LDPCµÄÑо¿´ÓÀíÂÛµ½ÊµÏÖ£¬´ÓʵÏÖµ½Ó¦Ó㬼º¾ÉîÈëµ½ÁËÐŵÀ¾À´í±àÂëµÄÏà¹Ø¸÷ÁìÓò£¬¼ÌÐøÑо¿Ó뿪·¢ÐµÄLDPCʵÏÖºÍÓ¦ÓþßÓкÜÖØÒªµÄÀíÂÛºÍʵ¼ùÒâÒå¡£»ùÓÚLDPCµÄÓ¦Óý«»áÔ½À´Ô½¶à£¬¶ÔÆäµÄÑо¿Ò²½«»áÔ½À´Ô½ÉîÈë¡£ 1.3 ¿ª·¢¹¤¾ßÓë»·¾³
ÃÀ¹úAT&T±´¶ûʵÑéÊÒµÄBjarne Stroustrup²©Ê¿ÔÚ20ÊÀ¼Í80Äê´ú³õÆÚ·¢Ã÷²¢ÊµÏÖÁËC++£¬1998Äê¹ú¼Ê±ê×¼×éÖ¯£¨ISO£©°ä²¼ÁËC++³ÌÐòÉè¼ÆÓïÑԵĹú¼Ê±ê×¼ISO/IEC 1488-1998¡£C++ÊǾßÓйú¼Ê±ê×¼µÄ±à³ÌÓïÑÔ£¬Í¨³£³Æ×÷ANSI/ISO C++¡£C++Éè¼Æ³É¾²Ì¬ÀàÐÍ¡¢ºÍCͬÑù¸ßЧÇÒ¿ÉÒÆÖ²µÄ¶àÓÃ;³ÌÐòÉè¼ÆÓïÑÔ¡£
C++ÊÇÒ»ÖÖʹÓ÷dz£¹ã·ºµÄ¼ÆËã»ú±à³ÌÓïÑÔ£¬ÊÇÒ»ÖÖ¾²Ì¬Êý¾ÝÀàÐͼì²éµÄ£¬Ö§³Ö¶àÖØ±à³Ì·¶Ê½µÄͨÓóÌÐòÉè¼ÆÓïÑÔ¡£ËüÖ§³Ö¹ý³Ì»¯³ÌÐòÉè¼Æ¡¢Êý¾Ý³éÏó¡¢ÃæÏò¶ÔÏó³ÌÐòÉè¼Æ¡¢·ºÐͳÌÐòÉè¼ÆµÈ¶àÖÖ³ÌÐòÉè¼Æ·ç¸ñ¡£C++±»Éè¼Æ³É¸ø³ÌÐòÉè¼ÆÕ߸ü¶àµÄÑ¡ÔñµÄÓïÑÔ¡£C++Éè¼Æ³É¾¡¿ÉÄÜÓëC¼æÈÝ£¬½è´ËÌṩһ¸ö´ÓCµ½C++µÄƽ»¬¹ý¶É¡£C++±ÜÃâÆ½Ì¨ÏÞ¶¨»òûÓÐÆÕ±éÓÃ;µÄÌØÐÔ¡£C++²»Ê¹ÓÃ»á´øÀ´¶îÍ⿪ÏúµÄÌØÐÔ¡£C++±»Éè¼Æ³ÉÎÞÐ踴ÔӵijÌÐòÉè¼Æ»·¾³¡£
Ïà±ÈÓëÆäËûµÄ¿ª·¢¹¤¾ß£¬Ê¹ÓÃVC++µÄÏòµ¼£¨Wizard£©¿ÉÒÔÉú³É´óÁ¿µÄ´úÂ룬¶ø²»±ØÈ˹¤µØ´óÁ¿±àд´úÂë¡£´Ó±àд³ÌÐòµÄÄÑÒ׳̶ȺͳÌÐòµÄÐÔÄÜ×ۺϿ¼ÂÇ£¬C++ÊÇ×î¼ÑµÄÑ¡Ôñ¡£C++ÐÔÄÜÁ¼ºÃ£¬Òò
ΪËü±»±àÒëºóÉú³É»úÆ÷´úÂë¡£¶ÔÓÚVBºÍJavaµÈÓïÑÔ£¬´úÂëÔÚÔËÐÐʱÓɶÔÓ¦µÄ½âÊͳÌÐò½âÊÍ£¬¶øÇÒÿ´ÎÔËÐгÌÐòʱ¶¼Òª½«´úÂëת»»Îª¿ÉÖ±½ÓÓÉ»úÆ÷Ö´ÐеĻúÆ÷Â룬ÕâÑù×öЧÂÊÆ«µÍ£¬²»½ö½öÊÇÒѱàÒë¹ýµÄC++³ÌÐòÔËÐеýϿ죬¶øÇÒ΢ÈíC++±àÒëÆ÷ÒÑ´æÔÚ¶àÄ꣬ÕâÒ»ÊÂʵÒâζ×Å΢ÈíµÄ±àÒëÆ÷³ÌÐòÔ±ÒѾ°ÑÐí¶àÓŵãºÍ¾Ñ鼯Öе½±àÒëÆ÷ÉÏ£¬ÒÔÖÁÓÚËüÄܲúÉú·Ç³£¸ßЧµÄ»úÆ÷Âë¡£ÒòΪC++ÊDZàÒëÓïÑÔ£¬¶øÇҷdz£×ÔÈ»£¬±ÈÆäËûÓïÑÔ¸ü½Ó½ü»úÆ÷´úÂ룬ËùÒÔÓÉC++±àÒëÆ÷²úÉúµÄ´úÂë±ÈÆäËûµÄ±àÒë´úÂëЧÂʸü¸ß¡£
MatlabÊǵ±½ñ×îÓÅÐãµÄ¿Æ¼¼Ó¦ÓÃÈí¼þÖ®Ò»£¬¾ßÓÐÇ¿´óµÄ¿ÆÑ§¼ÆËãÄÜÁ¦£¬¿ÉÊÓ»¯¹¦ÄÜ£¬¿ª·Åʽ¿ÉÀ©Õ¹»·¾³£¬Ðí¶à¿ÆÑ§ÁìÓòÖÐMatlab³ÉΪ¼ÆËã»ú¸¨Öú·ÖÎöºÍÉè¼Æ£¬Ëã·¨Ñо¿¼°Ó¦Óÿª·¢µÄ»ù±¾¹¤¾ßºÍÊ×ѡƽ̨¡£Í¬Ê±£¬Matlab¾ßÓÐÆäËû¸ß¼¶ÓïÑÔÄÑÒÔ±ÈÄâµÄһЩÓŵ㣺±àд¼òµ¥£¬Ð§Âʸߣ¬Ò×ѧÒ×¶®¡£MatlabÔÚÐźŴ¦Àí£¬Í¨ÐÅ£¬×Ô¶¯¿ØÖƼ°¿ÆÑ§¼ÆËãµÈÁìÓòÖб»¹ã·ºÓ¦Óá£MatlabµÄÄں˲ÉÓÃCÓïÑÔ±àд£¬²¢ÇÒÔöÇ¿ÁËÊý¾ÝµÄ¿ÉÊÓ»¯¹¦ÄÜ£¬ÏÖÔÚ£¬Matlab²»¶ÏÌṩ¹¦Äܸü¼ÓÇ¿´óµÄÈí¼þ°ü£¬²¢ÅäÒÔÏèʵ·á¸»µÄ°ïÖúϵͳ£¬Ô½À´Ô½¶àµØµÃµ½¸÷¸öרҵӦÓÃÁìÓòµÄÈϿɺÍÇàíù¡£ÏÖ½ñ£¬MatlabÒѾ·¢Õ¹Îª×ۺϸßÐÔÄܵÄÊýÖµ¼ÆËãÈí¼þ¡£
µÚ¶þÕ AES¼ÓÃÜËã·¨µÄÀíÂÛÓëʵÏÖ
1.1 AES¼ÓÃÜËã·¨¸ÅÊö£º 1.1.1 RijndaelËã·¨¸ÅÊö£º
RijndaelËã·¨ÊÇÒ»¸ö·Ö×鳤¶ÈºÍÃÜÔ¿³¤¶È¶¼¿É±äµÄ·Ö×éµü´ú¼ÓÃÜËã·¨£¬·Ö×鳤¶ÈºÍÃÜÔ¿³¤¶È·Ö±ð¿ÉÒÔΪ128bits£¬192bitsºÍ256bits¡£ÔÚ¼ÓÃܹý³ÌÖУ¬Ã¿¸öÊý¾Ý·Ö×é¶¼Òª½øÐжà´Î±ä»»²Ù×÷£¬Ã¿´Î²Ù×÷ºóµÄÖмä½á¹û³ÆÎª×´Ì¬£¨State£©£¬Ëü¿ÉÒÔÓÃÒ»¸ö4ÐÐ ÁеľØÕóÀ´±íʾ״̬£¬¾ØÕóÖеÄÿ¸öÔªËØÎªÒ»¸ö×Ö½Ú£¨ µÄÖµÓÉ·Ö×éµÄ³¤¶È¾ö¶¨£¬ =·Ö×鳤¶È/32£©¡£½«Êý¾Ý·Ö×éÖеÄÿ¸ö×Ö½Ú°´ÁеÄ˳ÐòÖÃÈ룬¾Í¹¹³ÉÁËÒ»¸ö״̬¾ØÕ󣬯ä³õÖµÊÇÒ»¸öÏàÓ¦´óСµÄ°´¹æ¶¨Ë³Ðò×°ÈëµÄÃ÷ÎÄÇø¿é¡£RijndaelËã·¨¼ÓÃÜÍê³Éºó£¬°Ñ×îÖÕ״̬¾ØÕóÖеÄÿËĸö×Ö½ÚÔªËØÔÙ°´ÁеÄ˳ÐòÈ¡³ö£¬ÒÀ´Ë·½·¨²Ù×÷¾Í¿ÉÒԵõ½ÃÜÎÄ¡£
ÃÜÔ¿Ò²¿ÉÀàËÆµØ±íʾΪ4ÐÐ ÁеľØÕó( µÄÖµÓÉ·Ö×éµÄ³¤¶È¾ö¶¨£¬ =·Ö×鳤¶È/32)¡£RijndaelËã·¨½øÐÐÂֱ任µÄÂÖÊýN£¬ÔòÓÉ ºÍ µÄÖµ¹²Í¬¾ö¶¨¡£Èô·Ö×鳤¶ÈºÍÃÜÔ¿³¤¶È¾ùΪ128bits£¬Ôò¼ÓÃÜʱҪ×ö10´ÎÂֱ任¡£ÒÔϵıí1¸ø³öÁË Óë ºÍ µÄ¹ØÏµ¡£
=4 =6 =8 =4 10 12 14 =6 12 12 14 =8 14 14 14 ±í1 µü´úÂÖÊýNr Ϊ Nb ºÍ Nk µÄº¯Êý
ÔÚRijndaelËã·¨µÄÂֱ任ÖУ¬S-ºÐÓÃÓÚ¶Ô״̬¾ØÕó½øÐзÇÏßÐÔ»ìºÏ£¬ÒÔÆðµ½»ìÏýµÄ×÷Óá£Õâ¸ö·ÇÏßÐÔ»ìºÏµÄ¹ý³Ì¾ÍÊÇÒ»¸ö¿ÉÄæµÄ×Ö½ÚÌæ»»ÔËËã(Substitute Byte)£¬ÀûÓÃÒ»ÕÅ×Ö½ÚÌæ»»±í£¬·Ö±ð¶Ô״̬¾ØÕóÖеÄÿ¸ö×Ö½Ú½øÐвé±íÌæ»»£¬ÕâÕÅ×Ö½ÚÌæ»»±í¾Í³ÆÎªS-ºÐ¡£S-ºÐÓÃÓÚ¼ÓÃܹý³Ì£¬ÔÚ½âÃܹý³ÌÖÐÔòÐè񻀾S-ºÐ¡£S-ºÐÊÇÓÉÔÚ ÓòÉϳ˷¨ÇóÄæÔËËãºÍÔÚ ÓòÉϵÄÒ»¸ö·ÂÉäÔËËã¶Ô×Ö½ÚÔËËãºóµÃµ½µÄ¡£ÆäÖУ¬³Ë·¨È¡ÄæÔËËãΪ£º ÆäÖÐ £¬µ± ʱ£¬ÆäÄæÔªËØÒ²Îª0¡£RijndaelË㷨ʹÓÃÁË»ùÓÚÓÐÏÞÓò µÄ¼ÈÔ¼¶àÏîʽ ¡£
½«´Ó00µ½FFµÄÊ®Áù½øÖÆÊý¾¹ýÉÏÊöÔËËã¾Í¿ÉÒԵõ½Ò»¸ö16 16µÄ×Ö½ÚÌæ»»±í¾ØÕó£¬Ò²¾ÍÊÇÓÃÓÚ¼ÓÃܵÄS-ºÐ¡£¶ÔÓÚÓÃÓÚ½âÃܵÄÄæS-ºÐ£¬ÐèҪͨ¹ýÔÚ ÓòÉϵÄÄæ·ÂÉäÔËËãÉú³É¡£¾¹ý¼ò»¯ºó£¬Ö»Ðè¶ÔS-ºÐ½øÐÐÑ»·ÒÆÎ»ºÍÒì»òÔËËã¾Í¿ÉÒÔʵÏÖ¸ÃÄæ·ÂÉä±ä»»£¬Éú³ÉÄæS-ºÐ¡£S-ºÐÊDZØÐëÊÇ¿ÉÄæµÄ£¬S-ºÐ²»ÊÇ×ÔÄæµÄ¡£ÀûÓ÷ÇÏßÐԱ任¿ÉÒÔÌá¸ßËã·¨¶Ô²î·Ö¹¥»÷ºÍÏßÐÔ¹¥»÷µÄµÖ¿¹Ç¿¶È¡£
ÔÚ½øÐÐÂֱ任ǰ£¬Ò»°ãÒª½øÐÐÃÜÔ¿À©Õ¹£¬À´²úÉúÂÖÃÜÔ¿(Round Key)¡£Èç²»Ëã³õʼÃÜÔ¿£¬ÔÚÕâÒ»¹ý³ÌÖÐÐèÀ©Õ¹³ö ¸öÂÖÃÜÔ¿£¬ÓÃÓÚÿÂֱ任µÄ×îºóµÄÂÖÃÜÔ¿¼ÓÔËËã(AddRoundKey)£¬¼´°Ñ״̬¾ØÕóºÍÂÖÃÜÔ¿½øÐÐÒì»ò£¬ÊµÏÖ¶Ô״̬¾ØÕóµÄÒ»´ÎÐÔÑڸǡ£ 2. AESËã·¨ÃèÊö£º
AES¼ÓÃܹý³ÌÊÇÔÚÒ»¸ö µÄ×Ö½Ú¾ØÕó£¨state£©ÉÏÔË×÷£¬Æä³õÖµ¾ÍÊÇÒ»¸öÃ÷ÎÄÇø¿é£¨¾ØÕóÖÐÒ»¸öÔªËØ´óС¾ÍÊÇÃ÷ÎÄÇø¿éÖеÄÒ»¸öByte£©¡££¨Rijndael¼ÓÃÜ·¨ÒòÖ§³Ö¸ü´óµÄÇø¿é£¬Æä¾ØÕóÁÐÊý¿ÉÊÓÇé¿öÔö¼Ó£©¼ÓÃÜʱ£¬¸÷ÂÖAES¼ÓÃÜÑ»·£¨³ý×îºóÒ»ÂÖÍ⣩¾ù°üº¬4¸ö²½Ö裺
£¨1£© AddRoundKey£¨ÂÖÃÜÔ¿¼Ó±ä»»£©¡ª¾ØÕóÖеÄÿ¸ö×Ö½Ú¶¼Óë¸ÃÂÖÂÖÃÜÔ¿×öÒì»ò£»Ã¿¸öÂÖÃÜÔ¿ÓÉÃÜÔ¿Éú³É·½°¸²úÉú¡£
£¨2£© SubBytes£¨×Ö½Ú´úÌæ±ä»»£©¡ªÍ¨¹ýÒ»¸ö·ÇÏßÐÔµÄÌæ»»º¯Êý£¬ÓòéÕÒ±íµÄ·½Ê½°Ñÿ¸ö×Ö½ÚÌæ»»³É¶ÔÓ¦µÄ×Ö½Ú¡£
£¨3£© ShiftRows£¨ÐÐÒÆÎ»±ä»»£©¡ª½«¾ØÕóÖеÄÿÐнøÐÐÑ»·ÒÆÎ»¡£
£¨4£© MixColumns£¨ÁлìÏý±ä»»£©¡ªÎªÁ˳ä·Ö»ìÏý¾ØÕóÖи÷ÁеIJÙ×÷¡£Õâ¸ö²½ÖèʹÓÃÏßÐÔת»»À´»ìÏýÿÁеÄËĸö×Ö½Ú¡£
×¢Ò⣺¼ÓÃÜʱ£¬×îºóÒ»¸ö¼ÓÃÜÑ»·ÖÐÊ¡ÂÔMixColumns²½Ö裬¶øÒÔÁíÒ»¸öAddRoundKeyÈ¡´ú¡£ ÏÂÃæ¼òÒªÃèÊöAESµÄËã·¨²½Ö裺
£¨1£©SubBytes²½Ö裺¾ØÕóÖеĸ÷×Ö½Úͨ¹ý8λµÄS-ºÐ½øÐÐת»»¡£S-ºÐÊÇAES¶¨ÒåµÄ ¸ö×Ö½Ú×é³ÉµÄ¾ØÕó¡£°ÑstateÖÐÿ¸ö×ֽڵĸß4λ×÷ΪÐÐÖµ£¬µÍ4λ×÷ΪÁÐÖµ£¬È»ºóÈ¡³öS-ºÐÖжÔÓ¦ÐÐÁеÄÔªËØ×÷ΪÊä³ö¡£Õâ¸ö²½ÖèÌṩÁËAES¼ÓÃܵķÇÏßÐԱ任ÄÜÁ¦¡£S-ºÐÓëÓÐÏÞÓò Éϵij˷¨ÄæÔªÓйأ¬¾ßÓÐÁ¼ºÃµÄ·ÇÏßÐÔÌØÐÔ¡£ÎªÁ˱ÜÃâ¼òµ¥´úÊý¹¥»÷£¬S-ºÐ½áºÏÁ˳˷¨ÄæÔª¼°¿ÉÄæµÄ·ÂÉä±ä»»