1. A programmable reconfigurable security processor, comprising: a reconfigurable data router; and a set of programmable data processing kernels interconnected by said reconfigurable data router, such that each programmable data processing kernel is configured to process a subset of functions of a security algorithm.