The access privileges in many distributed systems can be effectively organized as a hierarchical tree. Distributing distinct cryptographic keys to distinct entities, according to their privileges, provides a good solution to the hierarchical access control problem. Many existing key assignment schemes use public key cryptography, which requires lots of costly public key operations and thus leads to a limited degree of deployment. In this paper, we shall propose a new key assignment protocol that employs only a low cost smart card with little memory to perform simple arithmetic operations. Our approach greatly reduces the computational load and the implementation cost. Compared with Lin’s scheme, which is a very efficient scheme without using any public key cryptography, our new scheme further reduces the computational cost by as much as 66% and the quantity of public data by 50%.