AES算法java字节替代的代码应如何理解?

AES算法的java实现中的字节替代代码,没太看懂,请大佬赐教。

图片说明

将二维数据sub中的数值转换为索引,到sbox和rsbox中找到该索引对应的数值,赋值给新的二维数组

sub[][]是byte类型,占8位,0xf用二进制表示即00001111,&0xf表示和00001111作与运算,即使高4位置0.所以col表示sub的低四位,即s盒的例。>>4表示右移4位,再进行&运算,即表示sub的高4位,即s盒的行。