A kernel is basically a function which transforms data from one dimension into another. The mentioned kernel trick is the computational reduction from O(d^2) to O(d) through the fact that one doesn't need to calculate the dot products of all the extended basis vectors but only a kernel matrix (so called Gram matrix) which is made from the dot products of the original vectors which is only linear in cost.
It seems almost everybody talking about SVMs and kernels is getting this wrong.