Java CardでSHA-3アルゴリズムを最適化したい。私は速いアルゴリズムがより少ないメモリを消費してbyte[]
をshort[]
(または短い[]
からbyte[]
)に簡単に変換できるようにする必要があります。私は現在、2.2VのJavaカードを使用Java Cardのbyte []をshort []に変換する速い方法
short[] temp_conv = JCSystem.makeTransientShortArray((short)255,JCSystem.CLEAR_ON_DESELECT); // used during conversion
byte[] aux = new byte[2];
:len
はb
アレイとaux
とtemp_conv
の実際のサイズは、プライベートととして割り当てのように定義されている
private short[] byteToShort(byte[] b,int len)
{
short len_conv = (short)(len/2);
for (short x = 0; x < len_conv;x++)
{
for (short j = 0 ; j < 2 ; j++)
aux[j] = b[2*x+j];
temp_conv[x] = (short)((((short)aux[1]) & 0xFF) | ((((short)(aux[0]) & 0xFF) << 8)));
}
return temp_conv;
}
:私の現在の実装では、このようになります。 2
あなたがループを少しアンロール試みる場合がありますがありません:https://en.wikipedia.org/wiki/Loop_unrolling – Bill