A5算法是一種常用於GSM系統中的流密碼算法,主要用於加密從手機到基站的連線,以保護語音通信。它最初是保密的,但通過洩漏和逆向工程公開。A5算法的特點是效率高,適合在硬體上高效實現。
A5算法的輸入為22bit長的幀序號Fn和64bit長的密鑰Kc,輸出為228bit的流密鑰序列。算法由3個m序列LFSR構成,這三個LFSR的級數分別為19、22、23。其特徵多項式分別為:LFSR1:g1(x)=x19+x18+x17+x14+1;LFSR2:g2(x)=x22+x21+x17+x13+1;LFSR3:g3(x)=x23+x22+x19+x18+1。
A5算法流密鑰序列的產生包含初始化和不規則動作兩個階段。在初始化階段,首先將3個LFSR的初始狀態全設為0,然後在64bit密鑰Kc的作用下,3個LFSR分別移位64次。在22bit幀序號Fn的作用下,3個LFSR分別移位22次。在不規則動作階段,需要時鐘脈衝來控制3個LFSR進行移位輸出。3個LFSR的移位是不規則的,採取的方法是,分別從LFSR1、LFSR2、LFSR3中選取第9位、第11位、第11位作為檢測位,進行鍾控移位。
A5算法已被套用於GSM通信系統中,用於加密從手機到基站的連線,以保護語音通信。然而,由於其安全性較低,已經被更安全的算法所替代。