  We consider the problem of designing secure and private codes for distributed
matrix-matrix multiplication. A master server owns two private matrices and
hires worker nodes to help compute their product. The matrices should remain
information-theoretically private from the workers. Some of the workers are
malicious and return corrupted results to the master. We design a framework for
security against malicious workers in private matrix-matrix multiplication. The
main idea is a careful use of Freivalds' algorithm to detect erroneous matrix
multiplications. Our main goal is to apply this security framework to schemes
with adaptive rates. Adaptive schemes divide the workers into clusters and thus
provide flexibility in trading decoding complexity for efficiency. Our new
scheme, SRPM3, provides a computationally efficient security check per cluster
that detects the presence of one or more malicious workers with high
probability. An additional per worker check is used to identify the malicious
nodes. SRPM3 can tolerate the presence of an arbitrary number of malicious
workers. We provide theoretical guarantees on the complexity of the security
checks and simulation results on both, the missed detection rate as well as on
the time needed for the integrity check.
